1<html> 2<head> 3<script> 4var urls = [ 5 "file:///does not exist oh noes/test.mp4", 6 "/LayoutTests/media/content/test-25fps.mp4" 7]; 8var kickoffFunctions = [ 9 "load", 10 "play" 11]; 12 13var mediaElementHolder = []; 14 15function releaseAndAddMediaElements() { 16 for (var i = 0; i < mediaElementHolder.length; ++i) 17 mediaElementHolder[i].src = ""; 18 mediaElementHolder = []; 19 20 for (var i = 0; i < 5; ++i) { 21 for (var url in urls) { 22 for (var kickoffFunction in kickoffFunctions) { 23 var a = document.createElement('video'); 24 a.controls = "controls"; 25 a.src = urls[url]; 26 eval("a." + kickoffFunctions[kickoffFunction] + "();"); 27 mediaElementHolder.push(a); 28 } 29 } 30 } 31} 32</script> 33</head> 34<body onload="setInterval('releaseAndAddMediaElements()', 100)"> 35 Test that media players aren't leaked on error. 36 Load this page and verify the number of threads used by the browser doesn't 37 seem unreasonable (e.g. chrome uses 4-5 threads per video tag so staying 38 under 100 threads is "success", since this instantiates 20 <video> elements). 39</body> 40</html> 41