diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:47:29 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:47:29 +0000 |
commit | 0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d (patch) | |
tree | a31f07c9bcca9d56ce61e9a1ffd30ef350d513aa /testing/web-platform/tests/fullscreen/model/move-to-fullscreen-iframe.html | |
parent | Initial commit. (diff) | |
download | firefox-esr-0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d.tar.xz firefox-esr-0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d.zip |
Adding upstream version 115.8.0esr.upstream/115.8.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/fullscreen/model/move-to-fullscreen-iframe.html')
-rw-r--r-- | testing/web-platform/tests/fullscreen/model/move-to-fullscreen-iframe.html | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/testing/web-platform/tests/fullscreen/model/move-to-fullscreen-iframe.html b/testing/web-platform/tests/fullscreen/model/move-to-fullscreen-iframe.html new file mode 100644 index 0000000000..0103b2979f --- /dev/null +++ b/testing/web-platform/tests/fullscreen/model/move-to-fullscreen-iframe.html @@ -0,0 +1,65 @@ +<!DOCTYPE html> +<title>Moving fullscreen document's body into a fullscreen iframe</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-vendor.js"></script> +<script src="../trusted-click.js"></script> +<iframe allowfullscreen></iframe> +<script> + promise_test(async (t) => { + t.add_cleanup(() => { + if (document.fullscreenElement) { + return document.exitFullscreen(); + } + }); + const iframe = document.querySelector("iframe"); + await new Promise((resolve) => { + iframe.onload = resolve; + iframe.src = "about:blank"; + }); + const iframeDoc = iframe.contentDocument; + + // Enter fullscreen for the iframe's body element. + await Promise.all([ + trusted_request(iframeDoc.body, iframeDoc.body), + fullScreenChange(), + ]); + + assert_equals( + document.fullscreenElement, + iframe, + "document's initial fullscreen element" + ); + assert_equals( + iframeDoc.fullscreenElement, + iframeDoc.body, + "iframe's initial fullscreen element" + ); + + // Then, move the outer document's body into the iframe. This is an unusual + // thing to do, but means that the iframe is removed from its document and + // should trigger fullscreen exit. + iframeDoc.documentElement.appendChild(document.body); + + // If we exit in an orderly fashion, that's all one can ask for. + await fullScreenChange(); + assert_equals( + document.fullscreenElement, + null, + "document's final fullscreen element" + ); + + // Because the iframe was removed, its browsing context was discarded and + // its contentDocument has become null. Because that browsing context was + // neither a descendant browsing context nor had an active document, + // nothing at all was done with it in the exit fullscreen algorithm, so + // its fullscreenElement is unchanged. + assert_equals(iframe.contentDocument, null, "iframe's content document"); + assert_equals( + iframeDoc.fullscreenElement, + iframeDoc.body, + "iframe's final fullscreen element" + ); + }); +</script> |