blob: bf54dd62a23f6455ddb9754e7f4ba690e5efcd3d [file] [log] [blame]
<html>
<head>
<script src="../resources/cross-frame-access.js"></script>
<script>
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.dumpChildFrames();
testRunner.waitUntilDone();
}
function loaded() {
var innerURL = 'data:text/html,<html>'
+ "<head>"
+ "<scr" + "ipt>"
+ "function fireSentinel() {"
+ "window.top.postMessage(\"perform test\", \"*\");"
+ "}"
+ "</scr" + "ipt>"
+ "</head>"
+ "<body onload=\"fireSentinel();\">"
+ "<p id=\"accessMe\">PASS: Cross frame access to a data: URL 2 levels deep was denied.</p>"
+ "<p>Inner-inner iframe.</p>"
+ "</body>"
+ '</html>';
var url = "data:text/html,<html>"
+ "<body>"
+ "<p>Inner iframe.</p>"
+ "<iframe src='" + innerURL + "'></iframe>"
+ "</body>"
+ "</html>";
window.addEventListener('message', performTest);
var iframe = document.getElementById("aFrame");
iframe.src = url;
}
function performTest() {
try {
var innerInnerFrame = window.frames[0].frames[0];
if (innerInnerFrame.document.getElementById('accessMe')) {
innerInnerFrame.document.getElementById('accessMe').innerHTML = 'FAIL: Cross frame access to a data: URL 2 levels deep was allowed.';
log('FAIL: Cross frame access to a data: URL 2 levels deep was allowed.');
if (window.testRunner)
testRunner.notifyDone();
return;
}
} catch (e) {
}
log('PASS: Cross frame access to a data: URL 2 levels deep was denied.');
if (window.testRunner)
testRunner.notifyDone();
}
</script>
</head>
<body onload="loaded();">
<p>This tests that the main frame doesn't have access to a data: URL loaded in an iframe inside another data: URL loaded iframe.</p>
<iframe id="aFrame" name="aFrame" style="width: 500px; height: 300px;"></iframe>
<pre id='console'></pre>
</body>
</html>