mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-06 15:58:39 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
143
testing/web-platform/tests/media-source/interfaces.html
Normal file
143
testing/web-platform/tests/media-source/interfaces.html
Normal file
|
|
@ -0,0 +1,143 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<title>Media Source Extensions IDL tests</title>
|
||||
<div id=log></div>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src=/resources/WebIDLParser.js></script>
|
||||
<script src=/resources/idlharness.js></script>
|
||||
<script type=text/plain class=untested>
|
||||
interface EventTarget {
|
||||
void addEventListener(DOMString type, EventListener? callback, optional boolean capture /* = false */);
|
||||
void removeEventListener(DOMString type, EventListener? callback, optional boolean capture /* = false */);
|
||||
boolean dispatchEvent(Event event);
|
||||
};
|
||||
interface EventHandler {};
|
||||
interface URL {};
|
||||
interface HTMLVideoElement {};
|
||||
interface AudioTrack {};
|
||||
interface AudioTrackList {};
|
||||
interface VideoTrack {};
|
||||
interface VideoTrackList {};
|
||||
interface TextTrack {};
|
||||
interface TextTrackList {};
|
||||
interface TimeRanges {};
|
||||
typedef double DOMHighResTimeStamp;
|
||||
</script>
|
||||
<script type=text/plain>
|
||||
[Constructor]
|
||||
interface MediaSource : EventTarget {
|
||||
readonly attribute SourceBufferList sourceBuffers;
|
||||
readonly attribute SourceBufferList activeSourceBuffers;
|
||||
readonly attribute ReadyState readyState;
|
||||
attribute unrestricted double duration;
|
||||
attribute EventHandler onsourceopen;
|
||||
attribute EventHandler onsourceended;
|
||||
attribute EventHandler onsourceclose;
|
||||
SourceBuffer addSourceBuffer(DOMString type);
|
||||
void removeSourceBuffer(SourceBuffer sourceBuffer);
|
||||
void endOfStream(optional EndOfStreamError error);
|
||||
void setLiveSeekableRange(double start, double end);
|
||||
void clearLiveSeekableRange();
|
||||
static boolean isTypeSupported(DOMString type);
|
||||
};
|
||||
|
||||
interface SourceBuffer : EventTarget {
|
||||
attribute AppendMode mode;
|
||||
readonly attribute boolean updating;
|
||||
readonly attribute TimeRanges buffered;
|
||||
attribute double timestampOffset;
|
||||
readonly attribute AudioTrackList audioTracks;
|
||||
readonly attribute VideoTrackList videoTracks;
|
||||
readonly attribute TextTrackList textTracks;
|
||||
attribute double appendWindowStart;
|
||||
attribute unrestricted double appendWindowEnd;
|
||||
attribute EventHandler onupdatestart;
|
||||
attribute EventHandler onupdate;
|
||||
attribute EventHandler onupdateend;
|
||||
attribute EventHandler onerror;
|
||||
attribute EventHandler onabort;
|
||||
void appendBuffer(BufferSource data);
|
||||
void abort();
|
||||
void remove(double start, unrestricted double end);
|
||||
};
|
||||
|
||||
interface SourceBufferList : EventTarget {
|
||||
readonly attribute unsigned long length;
|
||||
attribute EventHandler onaddsourcebuffer;
|
||||
attribute EventHandler onremovesourcebuffer;
|
||||
getter SourceBuffer (unsigned long index);
|
||||
};
|
||||
|
||||
[Exposed=Window,DedicatedWorker,SharedWorker]
|
||||
partial interface URL {
|
||||
static DOMString createObjectURL(MediaSource mediaSource);
|
||||
};
|
||||
|
||||
partial interface AudioTrack {
|
||||
readonly attribute SourceBuffer? sourceBuffer;
|
||||
};
|
||||
|
||||
partial interface VideoTrack {
|
||||
readonly attribute SourceBuffer? sourceBuffer;
|
||||
};
|
||||
|
||||
partial interface TextTrack {
|
||||
readonly attribute SourceBuffer? sourceBuffer;
|
||||
};
|
||||
|
||||
enum EndOfStreamError {
|
||||
"network",
|
||||
"decode"
|
||||
};
|
||||
|
||||
enum AppendMode {
|
||||
"segments",
|
||||
"sequence"
|
||||
};
|
||||
|
||||
enum ReadyState {
|
||||
"closed",
|
||||
"open",
|
||||
"ended"
|
||||
};
|
||||
</script>
|
||||
<script>
|
||||
"use strict";
|
||||
setup({ explicit_done: true });
|
||||
var mediaSource;
|
||||
var sourceBuffer;
|
||||
var video = document.createElement("video");
|
||||
var idlCheck = function() {
|
||||
var idlArray = new IdlArray();
|
||||
[].forEach.call(document.querySelectorAll("script[type=text\\/plain]"), function(node) {
|
||||
if (node.className == "untested") {
|
||||
idlArray.add_untested_idls(node.textContent);
|
||||
} else {
|
||||
idlArray.add_idls(node.textContent);
|
||||
}
|
||||
});
|
||||
idlArray.add_objects({
|
||||
MediaSource: ['mediaSource'],
|
||||
SourceBuffer: ['sourceBuffer'],
|
||||
SourceBufferList: ['mediaSource.sourceBuffers']
|
||||
});
|
||||
idlArray.test();
|
||||
done();
|
||||
}
|
||||
mediaSource = new MediaSource();
|
||||
video.src = URL.createObjectURL(mediaSource);
|
||||
mediaSource.addEventListener("sourceopen", function () {
|
||||
var defaultType ='video/webm;codecs="vp8,vorbis"';
|
||||
if (video.canPlayType(defaultType)) {
|
||||
sourceBuffer = mediaSource.addSourceBuffer(defaultType);
|
||||
} else {
|
||||
sourceBuffer = mediaSource.addSourceBuffer('video/mp4');
|
||||
}
|
||||
sourceBuffer.addEventListener("updateend", function (e) {
|
||||
mediaSource.endOfStream();
|
||||
idlCheck();
|
||||
});
|
||||
sourceBuffer.appendBuffer(new ArrayBuffer());
|
||||
});
|
||||
</script>
|
||||
Loading…
Add table
Add a link
Reference in a new issue