reactivate_helper.html (1318B)
1 <!DOCTYPE HTML> 2 <html> 3 <body> 4 <script> 5 var loadsWaiting = 0; 6 var elements = []; 7 8 function checkAllLoaded() { 9 --loadsWaiting; 10 if (loadsWaiting == 0) { 11 parent.loadedAll(elements); 12 } 13 } 14 15 function loadedData(event) { 16 var e = event.target; 17 parent.ok(!elements.includes(e), "Element already loaded: " + e._name); 18 parent.info("Loaded " + e._name); 19 elements.push(e); 20 // Reset "onerror" handler to avoid triggering another error in removeNodeAndSource(). 21 e.onerror = null; 22 checkAllLoaded(); 23 24 } 25 26 function error(event) { 27 var e = event.target; 28 parent.info("Error " + e._name); 29 // Don't wait for the element encounting errors. 30 checkAllLoaded(); 31 } 32 33 for (var i = 0; i < parent.gSmallTests.length; ++i) { 34 var test = parent.gSmallTests[i]; 35 var elemType = /^audio/.test(test.type) ? "audio" : "video"; 36 // Associate these elements with the subframe's document 37 var e = document.createElement(elemType); 38 e.preload = "metadata"; 39 if (e.canPlayType(test.type)) { 40 e.src = test.name; 41 e._name = test.name; 42 e.onloadeddata = loadedData; 43 e.onerror = error; 44 e.load(); 45 ++loadsWaiting; 46 parent.info("Loading " + e._name); 47 } 48 } 49 50 if (loadsWaiting == 0) { 51 parent.todo(false, "Can't play anything"); 52 } else { 53 parent.SimpleTest.waitForExplicitFinish(); 54 } 55 </script> 56 </body> 57 </html>