blob: 14f64a6c35a588f5c78e5321f9903d27aa76412e [file] [log] [blame]
<html>
<head>
<script>
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.setDumpConsoleMessages(false);
testRunner.waitUntilDone();
testRunner.setCanOpenWindows();
}
function log(msg) {
var div = document.createElement("div");
div.appendChild(document.createTextNode(msg));
document.getElementById("console").appendChild(div);
}
var readyCount = 0;
window.addEventListener("message", function(e) {
if (e.data == "ready") {
++readyCount;
if (readyCount == 2) {
helper.postMessage("set", "*");
}
} else if (e.data == "pass") {
target.document.body.innerHTML = "Should have navigated this window. It should still be same-origin.";
log("PASS");
// We expect the following windows to be counted here:
// 1. The main test window (this window).
// 2. The |target| window, which is same site.
// 3. The |helper| window opened |win| within this site.
// In site-per-process, the |helper| window itself is cross-site so not counted.
// In not-site-per-process, all windows share the same renderer, so:
// 4. The |helper| cross-site window.
log("There are currently " + testRunner.windowCount() + " windows opened.");
target.close();
helper.postMessage("cleanup", "*");
} else if (e.data == "done") {
helper.close();
if (window.testRunner)
testRunner.notifyDone();
}
}, false);
window.onload = function() {
target = window.open("resources/ready.html", "targetWindow");
helper = window.open("http://localhost:8000/security/frameNavigation/resources/not-opener-helper.html");
}
</script>
</head>
<body>
<div id="console"></div>
</body>
</html>