diff options
Diffstat (limited to '')
-rw-r--r-- | dom/media/test/reactivate_helper.html | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/dom/media/test/reactivate_helper.html b/dom/media/test/reactivate_helper.html new file mode 100644 index 0000000000..1834131559 --- /dev/null +++ b/dom/media/test/reactivate_helper.html @@ -0,0 +1,57 @@ +<!DOCTYPE HTML> +<html> +<body> +<script> +var loadsWaiting = 0; +var elements = []; + +function checkAllLoaded() { + --loadsWaiting; + if (loadsWaiting == 0) { + parent.loadedAll(elements); + } +} + +function loadedData(event) { + var e = event.target; + parent.ok(!elements.includes(e), "Element already loaded: " + e._name); + parent.info("Loaded " + e._name); + elements.push(e); + // Reset "onerror" handler to avoid triggering another error in removeNodeAndSource(). + e.onerror = null; + checkAllLoaded(); + +} + +function error(event) { + var e = event.target; + parent.info("Error " + e._name); + // Don't wait for the element encounting errors. + checkAllLoaded(); +} + +for (var i = 0; i < parent.gSmallTests.length; ++i) { + var test = parent.gSmallTests[i]; + var elemType = /^audio/.test(test.type) ? "audio" : "video"; + // Associate these elements with the subframe's document + var e = document.createElement(elemType); + e.preload = "metadata"; + if (e.canPlayType(test.type)) { + e.src = test.name; + e._name = test.name; + e.onloadeddata = loadedData; + e.onerror = error; + e.load(); + ++loadsWaiting; + parent.info("Loading " + e._name); + } +} + +if (loadsWaiting == 0) { + parent.todo(false, "Can't play anything"); +} else { + parent.SimpleTest.waitForExplicitFinish(); +} +</script> +</body> +</html> |