<!DOCTYPE html>
<html>
<head>
<script src="http://localhost:8000/security/xssAuditor/resources/utilities.js"></script>
<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.dumpChildFramesAsText();
    testRunner.waitUntilDone();
    testRunner.setXSSAuditorEnabled(true);
}

function checkframe()
{
    try {
        var referrer = document.getElementById("frame").contentDocument.referrer;
        if (referrer === "") {
            console.log('PASS: Referrer is the empty string.');
        } else {
            console.log('FAIL: Referrer should be empty string. Was "' + referrer + '".');
        }
    } catch (e) {
        console.log('FAIL: same-origin access threw: \'' + e.toString() + '\'.');
    }
    checkIfFrameLocationMatchesSrcAndCallDone('frame');
}
</script>
</head>
<body>
<p>There should be no content in the iframe below:</p>
<iframe id="frame" name="frame" onload="checkframe()" src="http://127.0.0.1:8000/security/xssAuditor/resources/echo-intertag.pl?test=/security/xssAuditor/full-block-script-tag.html&enable-full-block=1&q=<script>alert(String.fromCharCode(0x58,0x53,0x53))</script>">
</iframe>
</body>
</html>
