blob: cf9223e7ae34f4e030b3fefaa591acab74c20083 (
plain)
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
<!DOCTYPE HTML>
<html class="reftest-wait">
<head>
<meta charset='utf-8'>
</head>
<body>
<video id="e_video" style="position:absolute; left:0; top:0; max-width:100%">
<script>
const TIMEOUT_MS = 2000;
// -
function sleepPromise(ms) {
return new Promise(go => {
setTimeout(go, ms);
});
}
(async () => {
await sleepPromise(TIMEOUT_MS);
if (!document.documentElement.hasAttribute('class')) return;
const div = document.body.appendChild(document.createElement('div'));
div.textContent = `Timed out after ${TIMEOUT_MS}ms`;
console.log(div.textContent);
document.documentElement.removeAttribute('class');
})();
// -
// Test
(async () => {
const params = new URLSearchParams(window.location.search);
const src = params.get('src');
src.defined;
if (src == 'none') {
console.log('Show blank.');
document.documentElement.removeAttribute('class');
return;
}
if (src == 'timeout') {
console.log('Deliberate timeout.');
return;
}
e_video.src = src;
e_video.muted = true;
const p = e_video.play();
p.defined;
try {
await p;
console.log('e_video.play() accepted');
} catch (e) {
const div = document.body.appendChild(document.createElement('div'));
div.textContent = `Error: ${JSON.stringify(e)}`;
console.log(div.textContent);
}
document.documentElement.removeAttribute('class');
})();
</script>
</body>
</html>
|