summaryrefslogtreecommitdiffstats
path: root/dom/media/test/reactivate_helper.html
diff options
context:
space:
mode:
Diffstat (limited to 'dom/media/test/reactivate_helper.html')
-rw-r--r--dom/media/test/reactivate_helper.html57
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>