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

Unified Diff: LayoutTests/navigatorcontentutils/unregister-protocol-handler.html

Issue 392993005: Custom handlers should throw SecurityError exception if the URL's origin differs from the document'… (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Done Created 6 years, 3 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/navigatorcontentutils/unregister-protocol-handler.html
diff --git a/LayoutTests/navigatorcontentutils/unregister-protocol-handler.html b/LayoutTests/navigatorcontentutils/unregister-protocol-handler.html
deleted file mode 100644
index f18e11d50cbfed3a96154b8f00c3fb50964915e8..0000000000000000000000000000000000000000
--- a/LayoutTests/navigatorcontentutils/unregister-protocol-handler.html
+++ /dev/null
@@ -1,126 +0,0 @@
-<html>
-<head>
-<script src="../resources/js-test.js"></script>
-</head>
-<body>
-<p>This test makes sure that navigator.unregisterProtocolHandler throws the proper exceptions and has no-op default implementation.</p>
-<pre id="console"></pre>
-<script>
-if (window.testRunner)
- testRunner.dumpAsText();
-
-if (window.internals)
- internals.setNavigatorContentUtilsClientMock(document);
-
-if (window.navigator.unregisterProtocolHandler)
- debug('PASS window.navigator.unregisterProtocolHandler is defined.');
-else
- debug('FAIL window.navigator.unregisterProtocolHandler is not defined.');
-
-var invalid_schemes = ['http', 'https', 'file', 'web+'];
-invalid_schemes.forEach(function (scheme) {
- var succeeded = false;
- try {
- window.navigator.unregisterProtocolHandler(scheme, "invalid scheme %s", "title");
- } catch (e) {
- succeeded = 'SecurityError' == e.name;
- errorMessage = e.message;
- }
-
- if (succeeded)
- debug('PASS Invalid scheme "' + scheme + '" threw SecurityError exception: "' + errorMessage + '".');
- else
- debug('FAIL Invalid scheme "' + scheme + '" allowed.');
-});
-
-var valid_schemes = ['bitcoin', 'BitcoIn', 'geo', 'im', 'irc', 'Irc', 'ircs', 'magnet', 'MagneT', 'mailto', 'mms', 'news', 'nntp', 'sip', 'sms', 'smsto', 'SmsTo', 'ssh', 'tel', 'urn', 'webcal', 'WebCAL', 'wtai', 'WTAI', 'xmpp'];
-valid_schemes.forEach(function (scheme) {
- var succeeded = false;
- try {
- window.navigator.unregisterProtocolHandler(scheme, "valid scheme %s", "title");
- succeeded = true;
- } catch (e) {
- succeeded = false;
- }
-
- if (succeeded)
- debug('PASS Valid scheme "' + scheme + '" allowed.');
- else
- debug('FAIL Valid scheme "' + scheme + '" failed.');
-});
-
-var invalid_schemes = ['mailto:', 'ssh:/', 'magnet:+', 'tel:sip'];
-invalid_schemes.forEach(function (scheme) {
- var succeeded = false;
- try {
- window.navigator.unregisterProtocolHandler(scheme, 'invalid scheme uri=%s', 'title');
- } catch (e) {
- succeeded = 'SecurityError' == e.name;
- errorMessage = e.message;
- }
-
- if (succeeded)
- debug('PASS Invalid scheme "' + scheme + '" falied.');
- else
- debug('Fail: Invalid scheme "' + scheme + '" allowed. Threw exception: "' + errorMessage + '".');
-});
-
-var invalid_urls = ["", "%S"];
-invalid_urls.forEach(function (url) {
- var succeeded = false;
- try {
- window.navigator.unregisterProtocolHandler('web+myscheme', url, 'title');
- } catch (e) {
- succeeded = 'SyntaxError' == e.name;
- errorMessage = e.message;
- }
-
- if (succeeded)
- debug('PASS Invalid url "' + url + '" threw SyntaxError exception.' + errorMessage + '".');
- else
- debug('FAIL Invalid url "' + url + '" allowed.');
-});
-
-// Test that the API has default no-op implementation.
-var succeeded = true;
-try {
- window.navigator.unregisterProtocolHandler('web+myscheme', "%s", "title");
-} catch (e) {
- succeeded = false;
-}
-
-if (succeeded)
- debug('PASS Valid call succeeded.');
-else
- debug('FAIL Invalid call did not succeed.');
-
-// Check if unregisterProtocolHandler can unregister scheme.
-debug("\nCheck if unregisterProtocolHandler can unregister scheme correctly. If isProtocolHandlerRegistered() returns 'new' state, unregisterProtoclHandler() works well.");
-debug("'bitcoin' scheme will be registered and unregistered for testing.\n");
-try {
- // Register 'bitcoin' scheme for testing.
- window.navigator.registerProtocolHandler('bitcoin', 'invalid scheme uri=%s', 'title');
- var state = window.navigator.isProtocolHandlerRegistered('bitcoin', 'valid scheme %s');
- if (state == "registered")
- debug("PASS window.navigator.isProtocolHandlerRegistered returns 'registered' state. 'bitcoin' is registered successfully.");
- else if (state == "new")
- debug("FAIL window.navigator.isProtocolHandlerRegistered returns 'new' state. Fail to register 'bitcoin' scheme.");
- else if (state == "declined")
- debug("FAIL window.navigator.isProtocolHandlerRegistered returns 'declined' state. Fail to register 'bitcoin' scheme.");
-
- window.navigator.unregisterProtocolHandler('bitcoin', 'invalid scheme uri=%s');
- var state = window.navigator.isProtocolHandlerRegistered('bitcoin', 'valid scheme %s');
- if (state == "new")
- debug("PASS window.navigator.isProtocolHandlerRegistered returns 'new' state. 'bitcoin' is unregistered successfully.");
- else if (state == "registered")
- debug("FAIL window.navigator.isProtocolHandlerRegistered returns 'registered' state. Fail to unregister 'bitcoin' scheme.");
- else if (state == "declined")
- debug("FAIL window.navigator.isProtocolHandlerRegistered returns 'declined' state. Fail to unregister 'bitcoin' scheme.");
-} catch (e) {
- debug('FAIL window.navigator.isProtocolHandlerRegistered call is failed: "' + e.message + '".');
-}
-debug("\n");
-
-</script>
-</body>
-</html>

Powered by Google App Engine
This is Rietveld 408576698