blob: 08acb405c211e4cf84ae6565a84120ad45b0271b [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<title>Referrer Policy: iframes srdoc child correctly inherit the ancestor's referrer policy</title>
<link rel="help" href="https://www.w3.org/TR/referrer-policy/#referrer-policy-delivery-nested">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<!-- Common global functions for referrer-policy tests. -->
<script src="/common/security-features/resources/common.js"></script>
<script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
<meta name="referrer" content="origin">
</head>
<body onload="runTest()">
<h1>Referrer Policy: iframes srcdoc child correctly inherit the ancestor's referrer policy</h1>
<script>
var test = async_test("iframes srcdoc child correctly inherit the ancestor's referrer policy");
window.addEventListener("message", test.step_func((msg) => {
assert_equals(msg.data.referrer, document.location.origin + "/");
test.done();
}));
const BASE = location.protocol + "//www1." + location.hostname + ":" + location.port;
function runTest() {
var iframe = document.createElement("iframe");
iframe.srcdoc = `<body><h1>Outer iframe</h1></body>`;
iframe.onload = function() {
iframe.onload = null;
var iframeChild = iframe.contentDocument.createElement("iframe");
iframeChild.srcdoc =
`<script src = "${BASE}/common/security-features/resources/common.js"></sc` + `ript>
<script src = "${BASE}/referrer-policy/generic/referrer-policy-test-case.js"></sc` + `ript>
<script>
var urlPath = "/common/security-features/subresource/xhr.py";
var url = "${BASE}" + urlPath;
requestViaXhr(url).then((msg) => {
window.top.postMessage({referrer: msg.referrer}, "*")})
.catch((e) => {
window.top.postMessage({referrer: "FAILURE"}, "*");
});
</sc` + "ript>";
iframe.contentDocument.body.appendChild(iframeChild);
};
document.body.appendChild(iframe);
}
</script>
<div id="log"></div>
</body>
</html>