| <html> |
| <head> |
| <script src="/js-test-resources/js-test.js"></script> |
| </head> |
| <body> |
| <iframe src="http://localhost:8000/" style=""></iframe> |
| <pre id="console"></pre> |
| <script> |
| window.jsTestIsAsync = true; |
| |
| description("Tests that making other frame window a prototype doesn't expose that window methods"); |
| |
| targetWindow = frames[0]; |
| |
| wasInvoked = false; |
| |
| function callback(global) { |
| global.wasInvoked = true; |
| } |
| |
| function check() { |
| shouldBeFalse('this.wasInvoked'); |
| finishJSTest(); |
| } |
| |
| var originalSetTimeout = setTimeout; |
| window.onload = function() { |
| __proto__ = targetWindow; |
| |
| shouldThrow('targetWindow.setTimeout(callback, 0, this);', '"SecurityError: Blocked a frame with origin \\"http://127.0.0.1:8000\\" from accessing a cross-origin frame."'); |
| shouldThrow('setTimeout.call(targetWindow, callback, 0, this);', '"SecurityError: Failed to execute \'setTimeout\' on \'Window\': Blocked a frame with origin \\"http://127.0.0.1:8000\\" from accessing a cross-origin frame."'); |
| shouldThrow('originalSetTimeout.call(targetWindow, callback, 0, this);', '"SecurityError: Failed to execute \'setTimeout\' on \'Window\': Blocked a frame with origin \\"http://127.0.0.1:8000\\" from accessing a cross-origin frame."'); |
| |
| originalSetTimeout(check, 10); |
| } |
| </script> |
| </body> |
| </html> |