summaryrefslogtreecommitdiffstats
path: root/dom/media/test/reftest/reftest_video.html
diff options
context:
space:
mode:
Diffstat (limited to 'dom/media/test/reftest/reftest_video.html')
-rw-r--r--dom/media/test/reftest/reftest_video.html64
1 files changed, 64 insertions, 0 deletions
diff --git a/dom/media/test/reftest/reftest_video.html b/dom/media/test/reftest/reftest_video.html
new file mode 100644
index 0000000000..cf9223e7ae
--- /dev/null
+++ b/dom/media/test/reftest/reftest_video.html
@@ -0,0 +1,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>