| OLD | NEW |
| 1 <html> | 1 <html> |
| 2 <head> | 2 <head> |
| 3 <script src="../resources/cross-frame-access.js"></script> | 3 <script src="../resources/cross-frame-access.js"></script> |
| 4 <script> | 4 <script> |
| 5 if (window.testRunner) { | 5 if (window.testRunner) { |
| 6 testRunner.dumpAsText(); | 6 testRunner.dumpAsText(); |
| 7 testRunner.dumpChildFramesAsText(); | 7 testRunner.dumpChildFramesAsText(); |
| 8 testRunner.waitUntilDone(); | 8 testRunner.waitUntilDone(); |
| 9 } | 9 } |
| 10 | 10 |
| 11 function loaded() { | 11 function loaded() { |
| 12 var innerURL = 'data:text/html,<html>' | 12 var innerURL = 'data:text/html,<html>' |
| 13 + "<head>" | 13 + "<head>" |
| 14 + "<scr" + "ipt>" | 14 + "<scr" + "ipt>" |
| 15 + "function fireSentinel() {" | 15 + "function fireSentinel() {" |
| 16 + "if (window.testRunner)" | 16 + "window.top.postMessage(\"perform test\", \"*\");" |
| 17 + "testRunner.globalFlag = true;" | |
| 18 + "}" | 17 + "}" |
| 19 + "</scr" + "ipt>" | 18 + "</scr" + "ipt>" |
| 20 + "</head>" | 19 + "</head>" |
| 21 + "<body onload=\"fireSentinel();\">" | 20 + "<body onload=\"fireSentinel();\">" |
| 22 + "<p id=\"accessMe\">PASS: Cross frame access to a data: UR
L 2 levels deep was denied.</p>" | 21 + "<p id=\"accessMe\">PASS: Cross frame access to a data: UR
L 2 levels deep was denied.</p>" |
| 23 + "<p>Inner-inner iframe.</p>" | 22 + "<p>Inner-inner iframe.</p>" |
| 24 + "</body>" | 23 + "</body>" |
| 25 + '</html>'; | 24 + '</html>'; |
| 26 | 25 |
| 27 var url = "data:text/html,<html>" | 26 var url = "data:text/html,<html>" |
| 28 + "<body>" | 27 + "<body>" |
| 29 + "<p>Inner iframe.</p>" | 28 + "<p>Inner iframe.</p>" |
| 30 + "<iframe src='" + innerURL + "'></iframe>" | 29 + "<iframe src='" + innerURL + "'></iframe>" |
| 31 + "</body>" | 30 + "</body>" |
| 32 + "</html>"; | 31 + "</html>"; |
| 33 | 32 |
| 33 window.addEventListener('message', performTest); |
| 34 var iframe = document.getElementById("aFrame"); | 34 var iframe = document.getElementById("aFrame"); |
| 35 iframe.src = url; | 35 iframe.src = url; |
| 36 | |
| 37 if (window.testRunner) { | |
| 38 setTimeout(waitForFlag, 1); | |
| 39 function waitForFlag() { | |
| 40 if (!testRunner.globalFlag) { | |
| 41 setTimeout(waitForFlag, 1); | |
| 42 return; | |
| 43 } | |
| 44 performTest(); | |
| 45 } | |
| 46 } else { | |
| 47 log("Click the button when all the subframes have finished loadi
ng."); | |
| 48 } | |
| 49 } | 36 } |
| 50 | 37 |
| 51 function performTest() { | 38 function performTest() { |
| 52 try { | 39 try { |
| 53 var innerInnerFrame = window.frames[0].frames[0]; | 40 var innerInnerFrame = window.frames[0].frames[0]; |
| 54 if (innerInnerFrame.document.getElementById('accessMe')) { | 41 if (innerInnerFrame.document.getElementById('accessMe')) { |
| 55 innerInnerFrame.document.getElementById('accessMe').innerHTM
L = 'FAIL: Cross frame access to a data: URL 2 levels deep was allowed.'; | 42 innerInnerFrame.document.getElementById('accessMe').innerHTM
L = '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 w
as allowed.'); | 43 log('FAIL: Cross frame access to a data: URL 2 levels deep w
as allowed.'); |
| 57 if (window.testRunner) | 44 if (window.testRunner) |
| 58 testRunner.notifyDone(); | 45 testRunner.notifyDone(); |
| 59 return; | 46 return; |
| 60 } | 47 } |
| 61 } catch (e) { | 48 } catch (e) { |
| 62 } | 49 } |
| 63 | 50 |
| 64 log('PASS: Cross frame access to a data: URL 2 levels deep was denie
d.'); | 51 log('PASS: Cross frame access to a data: URL 2 levels deep was denie
d.'); |
| 65 if (window.testRunner) | 52 if (window.testRunner) |
| 66 testRunner.notifyDone(); | 53 testRunner.notifyDone(); |
| 67 } | 54 } |
| 68 | 55 |
| 69 </script> | 56 </script> |
| 70 </head> | 57 </head> |
| 71 <body onload="loaded();"> | 58 <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> | 59 <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;"></ifr
ame> | 60 <iframe id="aFrame" name="aFrame" style="width: 500px; height: 300px;"></ifr
ame> |
| 75 <pre id='console'></pre> | 61 <pre id='console'></pre> |
| 76 </body> | 62 </body> |
| 77 </html> | 63 </html> |
| OLD | NEW |