diff options
Diffstat (limited to 'testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-base-url-2.html')
-rw-r--r-- | testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-base-url-2.html | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-base-url-2.html b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-base-url-2.html new file mode 100644 index 0000000000..8782f3d315 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-base-url-2.html @@ -0,0 +1,49 @@ +<!DOCTYPE html> +<head> + <title>Deferred loading=lazy iframes load relative to the document's base URL + at parse-time</title> + <link rel="author" title="Dom Farolino" href="mailto:dom@chromium.org"> + <link rel="author" title="Raj T" href="mailto:rajendrant@chromium.org"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="../resources/common.js"></script> +</head> + +<script> + const below_viewport_iframe = new ElementLoadPromise("below-viewport"); + + let has_window_loaded = false; + + async_test(t => { + // Change the document's base URL to a bogus one, and scroll the + // below-viewport iframe into view. When it loads, it should load relative + // to the old base URL computed at parse-time. + window.addEventListener("load", t.step_func(() => { + window.history.pushState(2, document.title, + '/invalid-url-where-no-subresources-exist/') + has_window_loaded = true; + below_viewport_iframe.element().scrollIntoView(); + })); + + below_viewport_iframe.promise.then(t.step_func_done(() => { + assert_true(has_window_loaded, + "Below-viewport loading=lazy iframes do not block the " + + "window load event"); + assert_true(below_viewport_iframe.element() + .contentDocument.body.innerHTML.includes("<p>Subframe</p>")); + })); + + }, "When a loading=lazy iframe is loaded, it loads relative to the " + + "document's base URL computed at parse-time."); +</script> + +<body> + <div style="height:1000vh;"></div> + <script> + // Change the document's base URL so that the iframe request parses relative + // to it when it sets up the request at parse-time. + window.history.pushState(1, document.title, 'resources/') + </script> + <iframe id="below-viewport" src="subframe.html" loading="lazy" width="200px" + height="100px" onload="below_viewport_iframe.resolve()"</iframe> +</body> |