Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(103)

Unified Diff: LayoutTests/http/tests/security/javascriptURL/javascriptURL-execution-context-frame-location-htmldom-uncaught.html

Issue 22985006: Throw an exception when denying access to 'Frame's 'location' setter. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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>

Powered by Google App Engine
This is Rietveld 408576698