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