blob: 8414d4d545179d6249162ce58fbcf88d50359392 [file] [log] [blame]
<html>
<head>
<script src="../resources/cross-frame-access.js"></script>
</head>
<body>
<pre id="console"></pre>
<script>
if (window.layoutTestController) {
layoutTestController.dumpAsText();
layoutTestController.waitUntilDone();
layoutTestController.setCanOpenWindows();
}
var openedWindow = window.open("http://localhost:8000/security/dataURL/resources/foreign-domain-data-url-accessee-opened-frame.html");
var testDone = false;
setTimeout(test, 1);
setTimeout(function() {
if (!testDone) {
log("FAIL: Test timed out");
closeWindowAndNotifyDone(openedWindow);
}
}, 2000);
function test() {
var innerFrameInOpenedWindow = openedWindow.frames[0];
if (!innerFrameInOpenedWindow) {
setTimeout(test, 1);
return;
}
// When the flag frame is not undefined, we know that the inner-inner frame has loaded.
var flagFrame = innerFrameInOpenedWindow.frames[0];
if (!flagFrame) {
setTimeout(test, 1);
return;
}
try {
if (innerFrameInOpenedWindow.document.getElementById('accessMe')) {
innerFrameInOpenedWindow.document.getElementById('accessMe').innerHTML = "FAIL: Cross frame access to a data: URL embed in a frame window.open'ed on foreign domain allowed.";
log("FAIL: Cross frame access to a data: URL embed in a frame window.open'ed on foreign domain allowed.");
testDone = true;
closeWindowAndNotifyDone(openedWindow);
return;
}
} catch (e) {
}
log("PASS: Cross frame access to a data: URL embed in a frame window.open'ed on foreign domain denied!");
testDone = true;
closeWindowAndNotifyDone(openedWindow);
}
</script>
</body>
</html>