Source code

Revision control

Copy as Markdown

Other Tools

<!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>