| <html> |
| <head> |
| <script src="../resources/cross-frame-access.js"></script> |
| <script> |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| testRunner.waitUntilDone(); |
| testRunner.setCanOpenWindows(); |
| } |
| |
| var openedWindow; |
| |
| function loaded() { |
| var url = "data:text/html,<html>" |
| + "<head>" |
| + "<scr" + "ipt>" |
| + "function fireSentinel() {" |
| + "if (window.testRunner)" |
| + "testRunner.globalFlag = true;" |
| + "}" |
| + "</scr" + "ipt>" |
| + "</head>" |
| + "<body onload=\"fireSentinel();\">" |
| + "<p>Opened Frame</p>" |
| + "<p id='accessMe'>PASS: Cross frame access from an opener frame was denied</p>" |
| + "</body>" |
| + "</html>"; |
| |
| openedWindow = window.open(url); |
| |
| if (window.testRunner) { |
| setTimeout(waitForFlag, 1); |
| function waitForFlag() { |
| if (!testRunner.globalFlag) { |
| setTimeout(waitForFlag, 1); |
| return; |
| } |
| performTest(); |
| } |
| } else { |
| log("Click the button when all the subframes have finished loading."); |
| } |
| } |
| |
| function performTest() { |
| try { |
| openedWindow.document.getElementById('accessMe').innerHTML = 'FAIL: Access to a window opened with a data: URL was allowed.'; |
| } catch (e) { |
| console.log(e); |
| } |
| |
| if (window.testRunner) |
| closeWindowAndNotifyDone(openedWindow); |
| } |
| </script> |
| </head> |
| <body onload="loaded();"> |
| <p>Opener Frame</p> |
| <button onclick="performTest()">Test</button> |
| <pre id="console"></pre> |
| </body> |
| </html> |