| <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> |
| |