74 lines
1.9 KiB
JavaScript
74 lines
1.9 KiB
JavaScript
function waitForMultipleEvents(name, times, func) {
|
|
var count = 0;
|
|
document.addEventListener(name, function() {
|
|
if (++count == times) {
|
|
func();
|
|
}
|
|
}, true);
|
|
}
|
|
|
|
function init()
|
|
{
|
|
var videos = document.getElementsByTagName('video');
|
|
|
|
waitForMultipleEvents("canplaythrough", videos.length, function() {
|
|
for (var i = 0; i < videos.length; ++i) {
|
|
handlePromise(videos[i].play());
|
|
videos[i].addEventListener("playing", function(event) {
|
|
event.target.pause();
|
|
event.target.currentTime = 0;
|
|
});
|
|
}
|
|
|
|
waitForMultipleEvents("seeked", videos.length, function() {
|
|
if (window.testRunner)
|
|
testRunner.notifyDone();
|
|
});
|
|
});
|
|
}
|
|
|
|
if (window.testRunner) {
|
|
testRunner.waitUntilDone();
|
|
setTimeout(function() {
|
|
document.body.appendChild(document.createTextNode('FAIL'));
|
|
if (window.testRunner)
|
|
testRunner.notifyDone();
|
|
} , 8000);
|
|
}
|
|
|
|
function initAndPause()
|
|
{
|
|
var videos = document.getElementsByTagName('video');
|
|
|
|
waitForMultipleEvents("canplaythrough", videos.length, function() {
|
|
for (var i = 0; i < videos.length; ++i) {
|
|
handlePromise(videos[i].play());
|
|
videos[i].addEventListener("playing", function(event) {
|
|
event.target.pause();
|
|
});
|
|
}
|
|
|
|
waitForMultipleEvents("pause", videos.length, function() {
|
|
if (window.testRunner)
|
|
testRunner.notifyDone();
|
|
});
|
|
});
|
|
|
|
}
|
|
|
|
function initAndSeeked()
|
|
{
|
|
var videos = document.getElementsByTagName('video');
|
|
|
|
waitForMultipleEvents("seeked", videos.length, function() {
|
|
if (window.testRunner)
|
|
testRunner.notifyDone();
|
|
});
|
|
}
|
|
|
|
function handlePromise(promise)
|
|
{
|
|
function handle() { }
|
|
return promise.then(handle, handle);
|
|
}
|