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

    function checkIfDone() {
        try {
            var url = document.querySelector('iframe').contentWindow.location.href;
            if (url)
                console.log("PASS: Could read contentWindow.location.href");
            else
                throw null;
        } catch (e) {
            if (e)
                console.log(e);
            console.log("FAIL: Could not read contentWindow.location.href");
        }
        testRunner.notifyDone();
    }
</script>

<p>There should be content in the iframe below</p>
<iframe style="width:500px; height:500px" src="http://localhost:8000/security/XFrameOptions/resources/x-frame-options-deny-meta-tag-subframe-parent-same-origin-deny.html" onload="checkIfDone()"></iframe>
