<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}

function finish()
{
    if (location.nonstandardProperty != "hax0red")
        document.getElementById("console").innerHTML = "PASS: cross-site assignment of location.nonstandardProperty not allowed";
    else
        document.getElementById("console").innerHTML = "FAIL: cross-site assignment of location.nonstandardProperty was allowed!";

    if (window.testRunner)
        testRunner.notifyDone();
}
</script>

<body onload="finish()">

    <iframe src="http://localhost:8000/security/resources/xss-DENIED-assign-location-nonstandardProperty-attacker.html"></iframe>

<div id="console"></div>
</body>
</html>
