test_reactivate.html (1673B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <title>Test reactivation of a media element from a dead document</title> 5 <script src="/tests/SimpleTest/SimpleTest.js"></script> 6 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> 7 <script type="text/javascript" src="manifest.js"></script> 8 </head> 9 <body> 10 11 <iframe id="frame" src="reactivate_helper.html"></iframe> 12 13 <pre id="test"> 14 <script class="testbody" type="text/javascript"> 15 16 var elements; 17 18 function playElement(e) { 19 // All elements played out, finish the test case. 20 if (!e) { 21 SimpleTest.finish(); 22 return; 23 } 24 25 e.play(); 26 info("Element play: " + e._name); 27 var reviveElement = function() { 28 document.body.appendChild(e); 29 e.onended = function() { 30 info("Element ended: " + e._name); 31 removeNodeAndSource(e); 32 // Play next element. 33 playElement(elements.pop()); 34 } 35 } 36 setTimeout(reviveElement, 2000); 37 } 38 39 function loadedAll(elementList) { 40 elements = elementList; 41 42 // Log events for debugging. 43 var events = ["suspend", "play", "canplay", "canplaythrough", "loadstart", "loadedmetadata", 44 "loadeddata", "playing", "ended", "error", "stalled", "emptied", "abort", 45 "waiting", "pause"]; 46 function logEvent(e) { 47 info(e.target._name + ": got " + e.type); 48 } 49 elementList.forEach(function(element) { 50 events.forEach(function(evt) { 51 element.addEventListener(evt, logEvent); 52 }); 53 }); 54 55 // Blow away the subframe 56 document.body.removeChild(document.getElementById("frame")); 57 58 // Play elements one by one to avoid hitting bug 847903 on MacOSX. 59 playElement(elements.pop()); 60 } 61 </script> 62 </pre> 63 </body> 64 </html>