<html>
<head>
<meta name="referrer" content="origin" />
<script>
window.addEventListener("message", receiveMessage, false);

function receiveMessage(evt) {
    if (evt.data == "done") {
        if (window.testRunner)
            testRunner.notifyDone();
    } else if (typeof(evt.data) == "object" && evt.data.action == "click")  {
        var link = document.getElementById("link");
        eventSender.mouseMoveTo(link.offsetLeft + evt.data.offsetLeft + 2,
                                link.offsetTop + evt.data.offsetTop + 2);
        eventSender.mouseDown();
        eventSender.mouseUp();
    } else {
        document.getElementById("log").innerHTML += evt.data + "<br>";
    }
}
</script>
</head>
<body>
<a id="link" target="_blank" href="https://127.0.0.1:8443/resources/redirect.php?url=http://127.0.0.1:8000/security/resources/referrer-policy-postmessage.php" rel="opener">If not running in DumpRenderTree, click this link</a>
<div id="log"></div>
</body>
</html>
