| <!DOCTYPE html> |
| <html> |
| <body> |
| <script src="/js-test-resources/js-test-pre.js"></script> |
| <iframe id="crossOriginFrame" src="http://localhost:8000/security/resources/blank.html"></iframe> |
| <script> |
| description("Tests that symbols can be accessed on cross origin Window / Location objects"); |
| jsTestIsAsync = true; |
| |
| window.onload = function() { |
| crossOriginWindow = document.getElementById("crossOriginFrame").contentWindow; |
| debug("* Window"); |
| try { |
| shouldBeEqualToString("(new Object).toString.call(crossOriginWindow)", "[object Object]"); |
| } catch (e) { |
| testFailed("toString threw an exception: " + e); |
| } |
| |
| try { |
| shouldBeFalse("crossOriginWindow instanceof Window"); |
| } catch (e) { |
| testFailed("hasInstance threw an exception: " + e); |
| } |
| |
| try { |
| shouldBe("Array.prototype.concat.call(crossOriginWindow, ['A'])", "[crossOriginWindow, 'A']"); |
| } catch (e) { |
| testFailed("concat threw an exception: " + e); |
| } |
| |
| shouldThrowErrorName("crossOriginWindow.toString()", "SecurityError"); |
| shouldThrowErrorName("'' + crossOriginWindow", "SecurityError"); |
| shouldThrowErrorName("crossOriginWindow.concat(['A'])", "SecurityError"); |
| |
| debug(""); |
| debug("* Location"); |
| try { |
| shouldBeEqualToString("(new Object).toString.call(crossOriginWindow.location)", "[object Object]"); |
| } catch (e) { |
| testFailed("toString threw an exception: " + e); |
| } |
| |
| try { |
| shouldBeFalse("crossOriginWindow.location instanceof Location"); |
| } catch (e) { |
| testFailed("hasInstance threw an exception: " + e); |
| } |
| |
| try { |
| shouldBe("Array.prototype.concat.call(crossOriginWindow.location, ['A'])", "[crossOriginWindow.location, 'A']"); |
| } catch (e) { |
| testFailed("concat threw an exception: " + e); |
| } |
| |
| shouldThrowErrorName("crossOriginWindow.location.toString()", "SecurityError"); |
| shouldThrowErrorName("'' + crossOriginWindow.location", "SecurityError"); |
| shouldThrowErrorName("crossOriginWindow.location.concat(['A'])", "SecurityError"); |
| |
| finishJSTest(); |
| } |
| </script> |
| <script src="/js-test-resources/js-test-post.js"></script> |
| </body> |
| </html> |