blob: 03b0d0e4ff63930560e28bdd7cbefafb2ab286a9 [file] [log] [blame]
<html>
<head>
<script src="../resources/cross-frame-access.js"></script>
<script>
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.dumpChildFramesAsText();
testRunner.waitUntilDone();
}
function loaded() {
var firstURL = "data:text/html,<html>"
+ "<head>"
+ "<scr" + "ipt>"
+ "function fireSentinel() {"
+ "if (window.testRunner)"
+ "testRunner.globalFlag = true;"
+ "}"
+ "</scr" + "ipt>"
+ "</head>"
+ "<body onload=\"fireSentinel();\">"
+ "<p>Inner iframe.</p>"
+ "<p id='accessMe'>Pass: Cross frame access from a sibling data: URL was denied.</p>"
+ "</body>"
+ "</html>";
var iframe = document.getElementById("firstSubFrame");
iframe.src = firstURL;
var secondURL = "data:text/html,<html>"
+ "<head>"
+ "<scr" + "ipt>"
+ "function loaded() {"
+ "if (window.testRunner) {"
+ "setTimeout(waitForFlag, 1);"
+ "function waitForFlag() {"
+ "if (!testRunner.globalFlag) {"
+ "setTimeout(waitForFlag, 1);"
+ "return;"
+ "}"
+ "performTest();"
+ "}"
+ "} else {"
+ "document.getElementById('console').innerHTML = 'Click the button when all the subframes have finished loading.';"
+ "}"
+ "}"
+ "function performTest() {"
+ "try {"
+ "parent.frames['firstSubFrame'].document.getElementById('accessMe').innerHTML = 'FAIL: Cross frame access from a sibling data: URL was allowed.';"
+ "} catch (e) {"
+ "console.log(e);"
+ "}"
+ "if (window.testRunner)"
+ "testRunner.notifyDone();"
+ "}"
+ "</scr" + "ipt>"
+ "</head>"
+ "<body onload=\"loaded();\">"
+ "<p>Inner iframe.</p>"
+ "<button onclick='performTest();'>Test</button>"
+ "<pre id='console'></pre>"
+ "</body>"
+ "</html>";
iframe = document.getElementById("secondSubFrame");
iframe.src = secondURL;
}
</script>
</head>
<body onload="loaded();">
<p>This tests that a data: URL subframe can't access a sibling data: URL subframe.</p>
<iframe id="firstSubFrame" name="firstSubFrame"></iframe>
<iframe id="secondSubFrame" name="secondSubFrame"></iframe>
</body>
</html>