<html>
<head>
<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.dumpChildFramesAsText();
    testRunner.waitUntilDone();
    testRunner.setCanOpenWindows();
    testRunner.setCloseRemainingWindowsWhenComplete(true);
}

function runTest() {
    var iframe = document.getElementById("iframe");
    iframe.contentWindow.postMessage({"action": "click", "offsetLeft": iframe.offsetLeft, "offsetTop": iframe.offsetTop}, "*");
}
</script>
</head>
<body>
<p>
This test checks the referrer policy is obeyed along the redirect chain.  The
test passes if the referrer is https://127.0.0.1:8443
</p>
<iframe id="iframe" name="iframe" onload="runTest()" src="https://127.0.0.1:8443/security/resources/referrer-policy-redirect-link.html"></iframe>
</body>
</html>
