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

var a=document.createElement("iframe");
a.src="javascript:''";
document.body.appendChild(a);
a.contentWindow.location.replace('resources/back-to-javascript-url-iframe-iframe.html')

function test() {
    if (sessionStorage.getItem("javascript-url-iframe") == null) {
        sessionStorage.setItem("javascript-url-iframe", "1");
        location.href = "back.html";
    } else {
        sessionStorage.removeItem("javascript-url-iframe");
        if (window.testRunner)
            testRunner.notifyDone();
    }
}
</script>
</body>

