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

Side by Side Diff: LayoutTests/dart/security/cross-frame-access.html

Issue 9188009: Things to unfork. (Closed) Base URL: svn://svn.chromium.org/multivm/trunk/webkit
Patch Set: Created 8 years, 11 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
(Empty)
1 <html>
2 <body>
3 <script type='application/javascript' src='../../../../../dart/client/testing/un ittest/test_controller.js'></script>
4 <script type=application/dart>
5 #import('../../../../../dart/client/testing/unittest/unittest.dart');
6 #import('dart:dom');
7
8 main() {
9 forLayoutTests();
10
11 final sameOriginIFrame = document.createElement('iframe');
12 sameOriginIFrame.src = 'resources/cross-frame-access-iframe.html';
13
14 final crossOriginIFrame = document.createElement('iframe');
15 crossOriginIFrame.src = 'data:text/html, <p>test iframe</p>';
16
17 asyncTest('WaitForFramesLoad', 2, () {
18 frameLoaded(Event e) { callbackDone(); }
19 sameOriginIFrame.addEventListener('load', frameLoaded, true);
20 document.body.appendChild(sameOriginIFrame);
21 crossOriginIFrame.addEventListener('load', frameLoaded, true);
22 document.body.appendChild(crossOriginIFrame);
23 });
24
25 test('DOMWindow', () {
26 testDOMWindow(sameOriginIFrame.contentWindow);
27 testDOMWindow(crossOriginIFrame.contentWindow);
28 });
29
30 test('History', () {
31 testHistory(sameOriginIFrame.contentWindow.history);
32 testHistory(crossOriginIFrame.contentWindow.history);
33 });
34
35 asyncTest('Location', 2, () {
36 testLocation(sameOriginIFrame.contentWindow.location);
37 testLocation(crossOriginIFrame.contentWindow.location);
38 });
39 }
40
41 testDOMWindow(DOMWindow targetWindow) {
42 // Not allowed methods.
43 expectThrow(() => targetWindow.alert('test'));
44 expectThrow(() => targetWindow.addEventListener('load', (Event e) {}, true));
45 expectThrow(() => targetWindow.find('test', true, true, true, true, true, true ));
46
47 // Not allowed properties.
48 expectThrow(() => targetWindow.contentDocument);
49 expectThrow(() => targetWindow.localStorage);
50 expectThrow(() => targetWindow.console);
51
52 // Allowed methods.
53 targetWindow.focus();
54 targetWindow.blur();
55 targetWindow.close();
56
57 // Allowed properties.
58 expect(targetWindow.location).isNotNull();
59 expect(targetWindow.history).isNotNull();
60 expect(targetWindow.parent).isNotNull();
61 }
62
63 testHistory(History history) {
64 // Not allowed properties.
65 expectThrow(() => history.length);
66
67 // Not allowed methods.
68 window.history.pushState('test', 'test', 'test');
69 expectThrow(() => history.pushState('test', 'test', 'test'));
70 window.history.replaceState('test', 'test', 'test');
71 expectThrow(() => history.replaceState('test', 'test', 'test'));
72
73 // Allowed method.
74 history.back();
75 history.forward();
76 history.go(-1);
77 }
78
79 testLocation(Location location) {
80 // Not allowed properties.
81 expectThrow(() => location.href);
82 expectThrow(() => location.protocol);
83 expectThrow(() => location.host = 'test');
84 expectThrow(() => location.origin);
85
86 // Not allowed methods.
87 expectThrow(() => location.assign('http://www.webkit.org'));
88 expectThrow(() => location.reload());
89 expectThrow(() => location.getParameter('test'));
90
91 // Allowed properties.
92 window.addEventListener('message', (Event e) {
93 expect(e.data).equals('navigated');
94 window.setTimeout(callbackDone, 0);
95 });
96 location.href = 'data:text/html, <script>parent.postMessage("navigated", "*")< ' + '/script>';
97 }
98 </script>
99
100 </body>
101 </html>
OLDNEW
« no previous file with comments | « LayoutTests/dart/resources/pong.html ('k') | LayoutTests/dart/security/cross-frame-access-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698