64 lines
1.4 KiB
HTML
64 lines
1.4 KiB
HTML
<!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>
|