<!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.indexOf(e) == -1, "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>