diff options
Diffstat (limited to 'testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-referrerpolicy-change.sub.html')
-rw-r--r-- | testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-referrerpolicy-change.sub.html | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-referrerpolicy-change.sub.html b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-referrerpolicy-change.sub.html new file mode 100644 index 0000000000..68734d5708 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-referrerpolicy-change.sub.html @@ -0,0 +1,45 @@ +<!DOCTYPE html> +<head> + <title>Deferred loading=lazy iframes are fetched with the parse-time + `referrerpolicy` attribute</title> + <link rel="author" title="Dom Farolino" href="mailto:dom@chromium.org"> + <link rel="author" title="Raj T" href="mailto:rajendrant@chromium.org"> + <link rel="help" href="https://github.com/scott-little/lazyload"> + <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_iframe"); + + async_test(function(t) { + // Change the referrer-policy and scroll down to load the deferred elements. + window.addEventListener("load", t.step_func(() => { + below_viewport_iframe.element().referrerPolicy = "no-referrer"; + below_viewport_iframe.element().scrollIntoView(); + })); + + below_viewport_iframe.promise.then( + t.step_func_done(function() { + // The `Referer` header should be the full URL, as specified by the + // iframe's `referrerpolicy` attribute at parse-time, and not the origin + // (as specified in meta referrer tag) or null (as overridden + // referrerpolicy=no-referrer after load deferral). + assert_true(below_viewport_iframe.element().contentDocument.body.innerHTML + .includes("Referer: http://{{location[host]}}{{location[path]}}"), + "The iframe's `Referer` should be the referrer's full URL"); + })); + }, "Test that when a deferred iframe is fetched, it uses the " + + "`referrerpolicy` specified at parse-time"); +</script> + +<body> + <meta name="referrer" content="origin"> + <div style="height:1000vh;"></div> + <iframe id="below_viewport_iframe" src="/xhr/resources/echo-headers.py" + loading="lazy" width="200px" height="100px" + referrerpolicy="unsafe-url" + onload="below_viewport_iframe.resolve();"> + </iframe> +</body> |