diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe-first-load-canceled-second-load-blank.html | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe-first-load-canceled-second-load-blank.html')
-rw-r--r-- | testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe-first-load-canceled-second-load-blank.html | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe-first-load-canceled-second-load-blank.html b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe-first-load-canceled-second-load-blank.html new file mode 100644 index 0000000000..bed3b6477f --- /dev/null +++ b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe-first-load-canceled-second-load-blank.html @@ -0,0 +1,38 @@ +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> + +// Check about:blank navigation is asynchronous, even if the initial navigation +// is canceled. +promise_test(async test => { + // Wait for document.body to exist, before appending the <iframe>. + await new Promise(resolve => window.onload = resolve); + + // The initial navigation in this new iframe will result in a 204 No Content. + // As a result the navigation will be canceled. The <iframe> will stay on the + // initial empty document. + const iframe = document.createElement("iframe"); + iframe.src = "/common/blank.html?pipe=status(204)" + document.body.appendChild(iframe); + + // The navigation in the iframe will be canceled. There are no good ways to + // detect when it will happen. Anyway, any additional navigation must be + // asynchronous. To test what happens when there are no pending navigation, + // waiting one second should be enough, most of the time. + await new Promise(resolve => test.step_timeout(resolve, 1000)); + + let load_event_fired = false; + const load_event_promise = new Promise(resolve => { + iframe.onload = () => { + load_event_fired = true; + resolve(); + }; + }); + iframe.src = "about:blank"; + assert_equals(load_event_fired, false, + "about:blank must not commit synchronously"); + await load_event_promise; +}, "about:blank navigation is asynchronous, even if the initial one is " + + "canceled."); + +</script> |