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); }