<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>
