mirror of
https://github.com/servo/servo.git
synced 2025-10-04 02:29:12 +01:00
Update web-platform-tests to revision 3f9178031eec5374c9a7d5709a7e11ba4a1955ed
This commit is contained in:
parent
4997ec26c2
commit
a5af9a106a
192 changed files with 3943 additions and 1927 deletions
59
tests/wpt/web-platform-tests/media-source/idlharness.any.js
Normal file
59
tests/wpt/web-platform-tests/media-source/idlharness.any.js
Normal file
|
@ -0,0 +1,59 @@
|
|||
// META: script=/resources/WebIDLParser.js
|
||||
// META: script=/resources/idlharness.js
|
||||
|
||||
// https://w3c.github.io/media-source/
|
||||
|
||||
'use strict';
|
||||
|
||||
var mediaSource;
|
||||
var sourceBuffer;
|
||||
var video = document.createElement("video");
|
||||
|
||||
promise_test(async t => {
|
||||
const srcs = ['media-source', 'dom', 'html', 'url'];
|
||||
const [idl, dom, html, url] = await Promise.all(
|
||||
srcs.map(i => fetch(`/interfaces/${i}.idl`).then(r => r.text())));
|
||||
|
||||
var idlArray = new IdlArray();
|
||||
idlArray.add_idls(idl);
|
||||
idlArray.add_dependency_idls(dom);
|
||||
idlArray.add_dependency_idls(html);
|
||||
idlArray.add_dependency_idls(url);
|
||||
|
||||
const testIdls = new Promise(resolve => {
|
||||
try {
|
||||
mediaSource = new MediaSource();
|
||||
video.src = URL.createObjectURL(mediaSource);
|
||||
mediaSource.addEventListener("sourceopen", function () {
|
||||
var defaultType ='video/webm;codecs="vp8,vorbis"';
|
||||
if (MediaSource.isTypeSupported(defaultType)) {
|
||||
sourceBuffer = mediaSource.addSourceBuffer(defaultType);
|
||||
} else {
|
||||
sourceBuffer = mediaSource.addSourceBuffer('video/mp4');
|
||||
}
|
||||
sourceBuffer.addEventListener("updateend", function (e) {
|
||||
mediaSource.endOfStream();
|
||||
resolve();
|
||||
});
|
||||
sourceBuffer.appendBuffer(new ArrayBuffer());
|
||||
});
|
||||
} catch (e) {
|
||||
// Will be surfaced in idlharness.js's test_object below.
|
||||
}
|
||||
})
|
||||
|
||||
idlArray.add_objects({
|
||||
MediaSource: ['mediaSource'],
|
||||
SourceBuffer: ['sourceBuffer'],
|
||||
SourceBufferList: ['mediaSource.sourceBuffers']
|
||||
});
|
||||
|
||||
const timeout = new Promise((_, reject) => t.step_timeout(reject, 3000));
|
||||
return Promise
|
||||
.race([testIdls, timeout])
|
||||
.then(() => { idlArray.test(); })
|
||||
.catch(() => {
|
||||
idlArray.test();
|
||||
return Promise.reject('Failed to create media-source objects')
|
||||
});
|
||||
}, 'media-source interfaces');
|
|
@ -1,144 +0,0 @@
|
|||
<!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 changeType(DOMString type);
|
||||
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 (MediaSource.isTypeSupported(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