Tests that reification does not bypass cross-origin checks.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


PASS crossOriginWindow.document threw exception SecurityError: Blocked a frame with origin "http://127.0.0.1:8000" from accessing a cross-origin frame. Protocols, domains, and ports must match..
PASS crossOriginWindow.name threw exception SecurityError: Blocked a frame with origin "http://127.0.0.1:8000" from accessing a cross-origin frame. Protocols, domains, and ports must match..
PASS crossOriginWindow.menubar threw exception SecurityError: Blocked a frame with origin "http://127.0.0.1:8000" from accessing a cross-origin frame. Protocols, domains, and ports must match..
PASS crossOriginWindow.scrollbars") threw exception SyntaxError: Unexpected EOF.
PASS crossOriginWindow.navigator") threw exception SyntaxError: Unexpected EOF.
PASS crossOriginWindow.screenX") threw exception SyntaxError: Unexpected EOF.
PASS crossOriginWindow.location is not undefined
PASS crossOriginWindow.self is crossOriginWindow.window
PASS sameOriginWindow.self is "secret"
PASS crossOriginWindow.parent is window
PASS sameOriginWindow.parent is sameOriginWindow.document.getElementById("parent")
PASS successfullyParsed is true

TEST COMPLETE
 
