Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(117)

Side by Side Diff: LayoutTests/http/tests/security/aboutBlank/xss-DENIED-navigate-opener-document-write.html

Issue 19932002: Throw exceptions on all failed cross-origin access checks. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: test. Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 <html> 1 <html>
2 <head> 2 <head>
3 <script src="../resources/libwrapjs.js"></script> 3 <script src="../resources/libwrapjs.js"></script>
4 <script src="../resources/cross-frame-access.js"></script> 4 <script src="../resources/cross-frame-access.js"></script>
5 <script> 5 <script>
6 var code; 6 var code;
7 var openedWindow; 7 var openedWindow;
8 8
9 window.onload = function() 9 window.onload = function()
10 { 10 {
(...skipping 21 matching lines...) Expand all
32 code = libwrapjs.in_script_tag(payload); 32 code = libwrapjs.in_script_tag(payload);
33 log("Code injected into window:"); 33 log("Code injected into window:");
34 log(code); 34 log(code);
35 35
36 if (window.testRunner) { 36 if (window.testRunner) {
37 setTimeout(pollForTest1, 1); 37 setTimeout(pollForTest1, 1);
38 } else { 38 } else {
39 log("To run the test, click the button below when the frames finish loading."); 39 log("To run the test, click the button below when the frames finish loading.");
40 var button = document.createElement("button"); 40 var button = document.createElement("button");
41 button.appendChild(document.createTextNode("Run Test")); 41 button.appendChild(document.createTextNode("Run Test"));
42 button.onclick = runTest; 42 button.onclick = runTest1;
43 document.body.appendChild(button); 43 document.body.appendChild(button);
44 } 44 }
45 } 45 }
46 46
47 pollForTest1 = function() 47 pollForTest1 = function()
48 { 48 {
49 if (!testRunner.globalFlag) { 49 if (window.testRunner && !testRunner.globalFlag) {
50 setTimeout(pollForTest1, 1); 50 setTimeout(pollForTest1, 1);
51 return; 51 return;
52 } 52 }
53 runTest1(); 53 runTest1();
54 } 54 }
55 55
56 runTest1 = function() { 56 runTest1 = function() {
57 frames[0].openWindow(); 57 frames[0].openWindow();
58 openedWindow = frames[0].openedWindow; 58 openedWindow = frames[0].openedWindow;
59 59
60 if (window.testRunner) 60 if (window.testRunner)
61 testRunner.globalFlag = false; 61 testRunner.globalFlag = false;
62 62
63 frames[0].location = 'http://localhost:8000/security/resources/innocent- victim-with-notify.html'; 63 frames[0].location = 'http://localhost:8000/security/resources/innocent- victim-with-notify.html';
64 64
65 setTimeout(pollForTest2, 1); 65 setTimeout(pollForTest2, 1);
66 } 66 }
67 67
68 pollForTest2 = function() 68 pollForTest2 = function()
69 { 69 {
70 if (!testRunner.globalFlag) { 70 if (window.testRunner && !testRunner.globalFlag) {
71 setTimeout(pollForTest2, 1); 71 setTimeout(pollForTest2, 1);
72 return; 72 return;
73 } 73 }
74 runTest2(); 74 runTest2();
75 } 75 }
76 76
77 runTest2 = function() 77 runTest2 = function()
78 { 78 {
79 openedWindow.document.write(code); 79 openedWindow.document.write(code);
80 openedWindow.document.close(); 80 openedWindow.document.close();
81 if (window.testRunner) { 81 if (window.testRunner) {
82 testRunner.globalFlag = false; 82 testRunner.globalFlag = false;
83 setTimeout(pollForDone, 1); 83 setTimeout(pollForDone, 1);
84 } 84 }
85 } 85 }
86 86
87 pollForDone = function() 87 pollForDone = function()
88 { 88 {
89 if (!testRunner.globalFlag) { 89 if (window.testRunner && !testRunner.globalFlag) {
90 setTimeout(pollForDone, 1); 90 setTimeout(pollForDone, 1);
91 return; 91 return;
92 } 92 }
93 closeWindowAndNotifyDone(openedWindow); 93 closeWindowAndNotifyDone(openedWindow);
94 } 94 }
95 </script> 95 </script>
96 </head> 96 </head>
97 <body> 97 <body>
98 <div>This page opens a window to &quot;&quot;, injects malicious code, and 98 <div>This page opens a window to &quot;&quot;, injects malicious code, and
99 then navigates its opener to the victim. The opened window then tries to 99 then navigates its opener to the victim. The opened window then tries to
100 scripts its opener after <code>document.write</code>ing a new document.</div> 100 scripts its opener after <code>document.write</code>ing a new document.</div>
101 <pre id="console"></pre> 101 <pre id="console"></pre>
102 <iframe style="border: solid 3px red;" src="../resources/open-window.html"></ifr ame> 102 <iframe style="border: solid 3px red;" src="../resources/open-window.html"></ifr ame>
103 <iframe style="border: solid 3px green;" src="../resources/innocent-victim.html" ></iframe> 103 <iframe style="border: solid 3px green;" src="../resources/innocent-victim.html" ></iframe>
104 </body> 104 </body>
105 </html> 105 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698