diff options
Diffstat (limited to 'testing/web-platform/tests/fullscreen/api/element-request-fullscreen-active-document.html')
-rw-r--r-- | testing/web-platform/tests/fullscreen/api/element-request-fullscreen-active-document.html | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/testing/web-platform/tests/fullscreen/api/element-request-fullscreen-active-document.html b/testing/web-platform/tests/fullscreen/api/element-request-fullscreen-active-document.html new file mode 100644 index 0000000000..bac8631059 --- /dev/null +++ b/testing/web-platform/tests/fullscreen/api/element-request-fullscreen-active-document.html @@ -0,0 +1,43 @@ +<!DOCTYPE html> +<title> + Element#requestFullscreen() when the document is not the active document +</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<div id="log"></div> +<iframe allowfullscreen></iframe> +<script> + promise_test(async (t) => { + const iframe = document.querySelector("iframe"); + const typeErrorConstructor = iframe.contentWindow.TypeError; + const documentBeforeNav = iframe.contentDocument; + + documentBeforeNav.onfullscreenchange = t.unreached_func( + "fullscreenchange event" + ); + documentBeforeNav.onfullscreenerror = t.unreached_func( + "fullscreenerror event" + ); + + await new Promise((r) => { + iframe.src = "/common/blank.html"; + iframe.onload = r; + }); + + await promise_rejects_js( + t, + typeErrorConstructor, + documentBeforeNav.documentElement.requestFullscreen() + ); + + // Per spec the fullscreenerror event should be fired at the next animation + // frame, but at least Gecko and WebKit will instead effectively do "queue a + // task to fire ...". Use both rAF and setTimeout to fail even if the timing + // of the (unexpected) event isn't as expected. + await new Promise((resolve) => { + requestAnimationFrame(() => { + t.step_timeout(resolve); + }); + }); + }); +</script> |