Index: LayoutTests/http/tests/security/javascriptURL/javascriptURL-execution-context-frame-location-htmldom-uncaught.html |
diff --git a/LayoutTests/http/tests/security/javascriptURL/javascriptURL-execution-context-frame-location-htmldom-uncaught.html b/LayoutTests/http/tests/security/javascriptURL/javascriptURL-execution-context-frame-location-htmldom-uncaught.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a53a068bd530899115a8e3f5ad2736f2b953fc22 |
--- /dev/null |
+++ b/LayoutTests/http/tests/security/javascriptURL/javascriptURL-execution-context-frame-location-htmldom-uncaught.html |
@@ -0,0 +1,39 @@ |
+<html> |
+<head> |
+ <script> |
+ if (window.testRunner) { |
+ testRunner.dumpAsText(); |
+ testRunner.dumpChildFramesAsText(); |
+ testRunner.waitUntilDone(); |
+ } |
+ |
+ window.addEventListener('message', function() { |
+ runTest(); |
+ if (window.testRunner) |
+ testRunner.notifyDone(); |
+ }); |
+ |
+ window.onerror = function (msg) { |
+ var jsErrorMessage = 'Uncaught SecurityError: Blocked a frame with origin "http://127.0.0.1:8000" from accessing a cross-origin frame.'; |
+ if (msg == jsErrorMessage) |
+ console.log("PASS: Exception was '" + msg + "'."); |
+ else |
+ console.log("FAIL: Exception should have been '" + jsErrorMessage + "', was '" + msg + "'."); |
+ |
+ if (window.testRunner) |
+ setTimeout(testRunner.notifyDone.bind(testRunner), 0); |
+ |
+ return false; // Don't handle the exception to ensure it shows up in the console. |
+ }; |
+ |
+ function runTest() { |
+ var frame = document.getElementById('aFrame'); |
+ frame.location = 'javascript:"FAIL: this should not have been loaded."'; |
+ } |
+ </script> |
+</head> |
+<frameset rows="10%,*"> |
+ <frame id='main' src="data:text/html,<p>This test passes as long as the onerror handler logs PASS to the console, and the uncaught exception reported to the console has unsanitized detail.</p>"> |
+ <frame id='aFrame' src='http://localhost:8000/security/resources/cross-frame-iframe.html'> |
+</frameset> |
+</html> |