media-players-are-dropped-on-error.html 1.2 KB

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