3 <script src="../resources/cross-frame-access.js"></script>
5 if (window.testRunner) {
6 testRunner.dumpAsText();
7 testRunner.dumpChildFramesAsText();
8 testRunner.waitUntilDone();
12 var innerURL = 'data:text/html,<html>'
15 + "function fireSentinel() {"
16 + "if (window.testRunner)"
17 + "testRunner.globalFlag = true;"
21 + "<body onload=\"fireSentinel();\">"
22 + "<p id=\"accessMe\">PASS: Cross frame access to a data: URL 2 levels deep was denied.</p>"
23 + "<p>Inner-inner iframe.</p>"
27 var url = "data:text/html,<html>"
29 + "<p>Inner iframe.</p>"
30 + "<iframe src='" + innerURL + "'></iframe>"
34 var iframe = document.getElementById("aFrame");
37 if (window.testRunner) {
38 setTimeout(waitForFlag, 1);
39 function waitForFlag() {
40 if (!testRunner.globalFlag) {
41 setTimeout(waitForFlag, 1);
47 log("Click the button when all the subframes have finished loading.");
51 function performTest() {
53 var innerInnerFrame = window.frames[0].frames[0];
54 if (innerInnerFrame.document.getElementById('accessMe')) {
55 innerInnerFrame.document.getElementById('accessMe').innerHTML = 'FAIL: Cross frame access to a data: URL 2 levels deep was allowed.';
56 log('FAIL: Cross frame access to a data: URL 2 levels deep was allowed.');
57 if (window.testRunner)
58 testRunner.notifyDone();
64 log('PASS: Cross frame access to a data: URL 2 levels deep was denied.');
65 if (window.testRunner)
66 testRunner.notifyDone();
71 <body onload="loaded();">
72 <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>
73 <button onclick="performTest()">Test</button>
74 <iframe id="aFrame" name="aFrame" style="width: 500px; height: 300px;"></iframe>
75 <pre id='console'></pre>