<html><body>
This tests the basic functionality of the "noreferrer" link relation on anchor tags. The link below should not
send an http referrer, and the resulting window should have its opener attribute set to null.  The values
of the referrer and window.opener should be empty below.
<br/>
<a id="link" href="resources/no-referrer-same-window-helper.php" rel="noreferrer">Start no referrer test</a>
<script>
    window.name = "consoleWindow";
    if (window.testRunner) {
        testRunner.dumpAsText();
        testRunner.waitUntilDone();
    }

    var target = document.getElementById("link");
    eventSender.mouseMoveTo(target.offsetLeft + 2, target.offsetTop + 2);
    eventSender.mouseDown();
    eventSender.mouseUp();
    
function log(msg)
{
    var line = document.createElement('div');
    line.appendChild(document.createTextNode(msg));
    document.getElementById('console').appendChild(line);
}
</script>
<div id="console"></div>
</body></html>
