blob: 60e45bd555a63eec47a7d15fb5fdb66bac1ad653 [file] [log] [blame]
<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>