diff options
Diffstat (limited to 'testing/web-platform/tests/navigation-api/navigation-history-entry/no-referrer-dynamic-url-censored.html')
-rw-r--r-- | testing/web-platform/tests/navigation-api/navigation-history-entry/no-referrer-dynamic-url-censored.html | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/testing/web-platform/tests/navigation-api/navigation-history-entry/no-referrer-dynamic-url-censored.html b/testing/web-platform/tests/navigation-api/navigation-history-entry/no-referrer-dynamic-url-censored.html new file mode 100644 index 0000000000..7a5544c419 --- /dev/null +++ b/testing/web-platform/tests/navigation-api/navigation-history-entry/no-referrer-dynamic-url-censored.html @@ -0,0 +1,33 @@ +<!doctype html> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<iframe id="i" src="/common/blank.html"></iframe> +<script> +promise_test(async (t) => { + // Wait for after the load event so that the navigation doesn't get converted + // into a replace navigation. + await new Promise(r => window.onload = () => t.step_timeout(r, 0)); + + // The entry for the first document has a visible url. + i.contentWindow.navigation.navigate("/common/blank.html?2"); + await new Promise(r => i.onload = () => t.step_timeout(r, 0)); + assert_not_equals(i.contentWindow.navigation.entries()[0].url, null); + + // Apply no-referrer, the url should now be censored when no longer on that document. + i.contentWindow.navigation.back(); + await new Promise(r => i.onload = () => t.step_timeout(r, 0)); + i.contentDocument.head.innerHTML = `<meta name="referrer" content="no-referrer">`; + assert_not_equals(i.contentWindow.navigation.entries()[0].url, null); + i.contentWindow.navigation.forward(); + await new Promise(r => i.onload = () => t.step_timeout(r, 0)); + assert_equals(i.contentWindow.navigation.entries()[0].url, null); + + // Overwrite the referrer policy, the url should be visible again. + i.contentWindow.navigation.back(); + await new Promise(r => i.onload = () => t.step_timeout(r, 0)); + i.contentDocument.head.innerHTML = `<meta name="referrer" content="same-origin">`; + i.contentWindow.navigation.forward(); + await new Promise(r => i.onload = () => t.step_timeout(r, 0)); + assert_not_equals(i.contentWindow.navigation.entries()[0].url, null); +}, "The url of a document is censored by a no-referrer policy dynamically"); +</script> |