[Custom Scheme] Remove isProtocolHandlerRegistered in the NavigatorContentUtils of blink

isProtocolHandlerRegistered has been existed in blink. However, latest custom scheme whatwg
specfication removed it.

- whatwg: https://html.spec.whatwg.org/multipage/system-state.html#custom-handlers
- whatwg issue: https://github.com/whatwg/html/issues/630
- commit to remove it: https://github.com/whatwg/html/commit/b143dbc2d16f3473fcadee377d838070718549d3

The reason to remove it was that no browsers have supported the function. So it would be good
if we remove it from blink in order to reduce our maintanance overhead.

Bug: 121825
Change-Id: I3e99dd5996e55dedcd8b5d47a7103410acfd24eb
Reviewed-on: https://chromium-review.googlesource.com/784653
Commit-Queue: Gyuyoung Kim <gyuyoung.kim@lge.com>
Reviewed-by: Mike Lawther <mikelawther@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#518981}
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/webappapis/system-state-and-capabilities/the-navigator-object/historical.window-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/html/webappapis/system-state-and-capabilities/the-navigator-object/historical.window-expected.txt
deleted file mode 100644
index 03ac4aa..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/html/webappapis/system-state-and-capabilities/the-navigator-object/historical.window-expected.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-This is a testharness.js-based test.
-PASS registerContentHandler() is removed
-FAIL isProtocolHandlerRegistered() is removed assert_false: expected false got true
-PASS isContentHandlerRegistered() is removed
-PASS unregisterContentHandler() is removed
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/webappapis/system-state-and-capabilities/the-navigator-object/historical.window.js b/third_party/WebKit/LayoutTests/external/wpt/html/webappapis/system-state-and-capabilities/the-navigator-object/historical.window.js
index c27845e6..358ddff 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/html/webappapis/system-state-and-capabilities/the-navigator-object/historical.window.js
+++ b/third_party/WebKit/LayoutTests/external/wpt/html/webappapis/system-state-and-capabilities/the-navigator-object/historical.window.js
@@ -1,6 +1,5 @@
 [
   "registerContentHandler",
-  "isProtocolHandlerRegistered",
   "isContentHandlerRegistered",
   "unregisterContentHandler"
 ].forEach(method => {
diff --git a/third_party/WebKit/LayoutTests/http/tests/navigatorcontentutils/is-protocol-handler-registered-expected.txt b/third_party/WebKit/LayoutTests/http/tests/navigatorcontentutils/is-protocol-handler-registered-expected.txt
deleted file mode 100644
index 73832f8..0000000
--- a/third_party/WebKit/LayoutTests/http/tests/navigatorcontentutils/is-protocol-handler-registered-expected.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-This test makes sure that navigator.isProtocolHandlerRegistered throws the proper exceptions and returns the default state of handler.
-
-PASS window.navigator.isProtocolHandlerRegistered is defined.
-PASS Invalid url "%S" threw SyntaxError exception.
-PASS Invalid scheme "mailto:" falied.
-PASS Invalid scheme "ssh:/" falied.
-PASS Invalid scheme "magnet:+" falied.
-PASS Invalid scheme "tel:sip" falied.
-PASS URL with origin different than document origin threw SecurityError exception: "Failed to execute 'isProtocolHandlerRegistered' on 'Navigator': Can only register custom handler in the document's origin.".
-
-Check if isProtocolHandlerRegistered() works correctly. If isProtocolHandlerRegistered() returns 'new' state, it works well.
-'bitcoin' scheme will be registered, and then checks if the 'bitcoin' scheme is registered by isProtocolHandlerRegistered().
-
-PASS window.navigator.isProtocolHandlerRegistered returns 'registered' state. isProtocolHandlerRegistered() works correctly.
-
-
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/third_party/WebKit/LayoutTests/http/tests/navigatorcontentutils/is-protocol-handler-registered.html b/third_party/WebKit/LayoutTests/http/tests/navigatorcontentutils/is-protocol-handler-registered.html
deleted file mode 100644
index efa54f3..0000000
--- a/third_party/WebKit/LayoutTests/http/tests/navigatorcontentutils/is-protocol-handler-registered.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="/js-test-resources/js-test.js"></script>
-</head>
-<body>
-<p>This test makes sure that navigator.isProtocolHandlerRegistered throws the proper exceptions and returns the default state of handler.</p>
-<pre id="console"></pre>
-<script>
-if (window.internals)
-    internals.setNavigatorContentUtilsClientMock(document);
-
-if (window.navigator.isProtocolHandlerRegistered)
-    debug('PASS window.navigator.isProtocolHandlerRegistered is defined.');
-else
-    debug('FAIL window.navigator.isProtocolHandlerRegistered is not defined.');
-
-var invalidUrl = "%S";
-var succeeded = false;
-try {
-    window.navigator.isProtocolHandlerRegistered(scheme, invalidUrl);
-    succeeded = false;
-} catch (e) {
-    succeeded = true;
-}
-if (succeeded)
-    debug('PASS Invalid url "' + invalidUrl + '" threw SyntaxError exception.');
-else
-    debug('FAIL Invalid url "' + invalidUrl + '" allowed.');
-
-var invalid_schemes = ['mailto:', 'ssh:/', 'magnet:+', 'tel:sip'];
-invalid_schemes.forEach(function (scheme) {
-    var succeeded = false;
-    try {
-        window.navigator.isProtocolHandlerRegistered(scheme, 'invalid scheme uri=%s');
-    } 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 + '".');
-});
-
-// Test that the API throws SecurityError exception if the URL's origin differs from the document's origin.
-succeeded = false;
-var errorMessage;
-try {
-    window.navigator.isProtocolHandlerRegistered('web+myprotocol', "http://www.example.com/soup?url=%s");
-} catch (e) {
-    succeeded = true;
-    errorMessage = e.message;
-}
-
-if (succeeded)
-    debug('PASS URL with origin different than document origin threw SecurityError exception: "' + errorMessage + '".');
-else
-    debug('FAIL URL with origin different than document origin is allowed.');
-
-debug("\nCheck if isProtocolHandlerRegistered() works correctly. If isProtocolHandlerRegistered() returns 'new' state, it works well.");
-debug("'bitcoin' scheme will be registered, and then checks if the 'bitcoin' scheme is registered by isProtocolHandlerRegistered().\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. isProtocolHandlerRegistered() works correctly.");
-    else if (state == "new")
-        debug("FAIL window.navigator.isProtocolHandlerRegistered returns 'new' state.");
-    else if (state == "declined")
-        debug("FAIL window.navigator.isProtocolHandlerRegistered returns 'declined' state.");
-} catch (e) {
-    debug('FAIL window.navigator.isProtocolHandlerRegistered call is failed: "' + e.message + '".');
-}
-debug("\n");
-
-</script>
-</body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/http/tests/navigatorcontentutils/register-protocol-handler-expected.txt b/third_party/WebKit/LayoutTests/http/tests/navigatorcontentutils/register-protocol-handler-expected.txt
index eb44ca9..5bfa015 100644
--- a/third_party/WebKit/LayoutTests/http/tests/navigatorcontentutils/register-protocol-handler-expected.txt
+++ b/third_party/WebKit/LayoutTests/http/tests/navigatorcontentutils/register-protocol-handler-expected.txt
@@ -41,11 +41,6 @@
 PASS URL with origin different than document origin threw SecurityError exception: "Failed to execute 'registerProtocolHandler' on 'Navigator': Can only register custom handler in the document's origin.".
 PASS Valid call succeeded.
 
-Check if registerProtocolHandler can register scheme correctly. If isProtocolHandlerRegistered() returns 'registered' state, registerProtoclHandler() works well.
-'bitcoin' scheme will be registered for testing.
-
-PASS window.navigator.isProtocolHandlerRegistered returns 'registered' state. 'bitcoin' is registered successfully.
-
 
 PASS successfullyParsed is true
 
diff --git a/third_party/WebKit/LayoutTests/http/tests/navigatorcontentutils/register-protocol-handler.html b/third_party/WebKit/LayoutTests/http/tests/navigatorcontentutils/register-protocol-handler.html
index d1d78cc..ec1432b 100644
--- a/third_party/WebKit/LayoutTests/http/tests/navigatorcontentutils/register-protocol-handler.html
+++ b/third_party/WebKit/LayoutTests/http/tests/navigatorcontentutils/register-protocol-handler.html
@@ -122,23 +122,6 @@
 else
     debug('FAIL Invalid call did not succeed.');
 
-// Check if registerProtocolHandler can register custom scheme.
-debug("\nCheck if registerProtocolHandler can register scheme correctly. If isProtocolHandlerRegistered() returns 'registered' state, registerProtoclHandler() works well.");
-debug("'bitcoin' scheme will be registered 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");
-} catch (e) {
-    debug('FAIL window.navigator.isProtocolHandlerRegistered call is failed: "' + e.message + '".');
-}
 debug("\n");
 
 </script>
diff --git a/third_party/WebKit/LayoutTests/http/tests/navigatorcontentutils/unregister-protocol-handler-expected.txt b/third_party/WebKit/LayoutTests/http/tests/navigatorcontentutils/unregister-protocol-handler-expected.txt
index d452973..b8fa7e5 100644
--- a/third_party/WebKit/LayoutTests/http/tests/navigatorcontentutils/unregister-protocol-handler-expected.txt
+++ b/third_party/WebKit/LayoutTests/http/tests/navigatorcontentutils/unregister-protocol-handler-expected.txt
@@ -40,12 +40,6 @@
 PASS URL with origin different than document origin threw SecurityError exception: "Failed to execute 'unregisterProtocolHandler' on 'Navigator': Can only register custom handler in the document's origin.".
 PASS Valid call succeeded.
 
-Check if unregisterProtocolHandler can unregister scheme correctly. If isProtocolHandlerRegistered() returns 'new' state, unregisterProtoclHandler() works well.
-'bitcoin' scheme will be registered and unregistered for testing.
-
-PASS window.navigator.isProtocolHandlerRegistered returns 'registered' state. 'bitcoin' is registered successfully.
-PASS window.navigator.isProtocolHandlerRegistered returns 'new' state. 'bitcoin' is unregistered successfully.
-
 
 PASS successfullyParsed is true
 
diff --git a/third_party/WebKit/LayoutTests/http/tests/navigatorcontentutils/unregister-protocol-handler.html b/third_party/WebKit/LayoutTests/http/tests/navigatorcontentutils/unregister-protocol-handler.html
index 3510963..6c0d7ee 100644
--- a/third_party/WebKit/LayoutTests/http/tests/navigatorcontentutils/unregister-protocol-handler.html
+++ b/third_party/WebKit/LayoutTests/http/tests/navigatorcontentutils/unregister-protocol-handler.html
@@ -106,31 +106,6 @@
 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>
diff --git a/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
index ad9fece..8463304 100644
--- a/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
+++ b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
@@ -4483,7 +4483,6 @@
     method getInstalledRelatedApps
     method getUserMedia
     method getVRDisplays
-    method isProtocolHandlerRegistered
     method javaEnabled
     method registerProtocolHandler
     method requestKeyboardLock
diff --git a/third_party/WebKit/Source/modules/navigatorcontentutils/NavigatorContentUtils.cpp b/third_party/WebKit/Source/modules/navigatorcontentutils/NavigatorContentUtils.cpp
index dcef4a2..af04f6d 100644
--- a/third_party/WebKit/Source/modules/navigatorcontentutils/NavigatorContentUtils.cpp
+++ b/third_party/WebKit/Source/modules/navigatorcontentutils/NavigatorContentUtils.cpp
@@ -161,58 +161,6 @@
       scheme, document->CompleteURL(url), title);
 }
 
-static String CustomHandlersStateString(
-    const NavigatorContentUtilsClient::CustomHandlersState state) {
-  DEFINE_STATIC_LOCAL(const String, new_handler, ("new"));
-  DEFINE_STATIC_LOCAL(const String, registered_handler, ("registered"));
-  DEFINE_STATIC_LOCAL(const String, declined_handler, ("declined"));
-
-  switch (state) {
-    case NavigatorContentUtilsClient::kCustomHandlersNew:
-      return new_handler;
-    case NavigatorContentUtilsClient::kCustomHandlersRegistered:
-      return registered_handler;
-    case NavigatorContentUtilsClient::kCustomHandlersDeclined:
-      return declined_handler;
-  }
-
-  NOTREACHED();
-  return String();
-}
-
-String NavigatorContentUtils::isProtocolHandlerRegistered(
-    Navigator& navigator,
-    const String& scheme,
-    const String& url,
-    ExceptionState& exception_state) {
-  if (!navigator.GetFrame()) {
-    return CustomHandlersStateString(
-        NavigatorContentUtilsClient::kCustomHandlersDeclined);
-  }
-
-  Document* document = navigator.GetFrame()->GetDocument();
-  DCHECK(document);
-  if (document->IsContextDestroyed()) {
-    return CustomHandlersStateString(
-        NavigatorContentUtilsClient::kCustomHandlersDeclined);
-  }
-
-  if (!VerifyCustomHandlerURL(*document, url, exception_state)) {
-    return CustomHandlersStateString(
-        NavigatorContentUtilsClient::kCustomHandlersDeclined);
-  }
-
-  if (!VerifyCustomHandlerScheme(scheme, exception_state)) {
-    return CustomHandlersStateString(
-        NavigatorContentUtilsClient::kCustomHandlersDeclined);
-  }
-
-  return CustomHandlersStateString(
-      NavigatorContentUtils::From(navigator)
-          ->Client()
-          ->IsProtocolHandlerRegistered(scheme, document->CompleteURL(url)));
-}
-
 void NavigatorContentUtils::unregisterProtocolHandler(
     Navigator& navigator,
     const String& scheme,
diff --git a/third_party/WebKit/Source/modules/navigatorcontentutils/NavigatorContentUtils.h b/third_party/WebKit/Source/modules/navigatorcontentutils/NavigatorContentUtils.h
index 9f9254c..cdaf7338c 100644
--- a/third_party/WebKit/Source/modules/navigatorcontentutils/NavigatorContentUtils.h
+++ b/third_party/WebKit/Source/modules/navigatorcontentutils/NavigatorContentUtils.h
@@ -54,10 +54,6 @@
                                       const String& url,
                                       const String& title,
                                       ExceptionState&);
-  static String isProtocolHandlerRegistered(Navigator&,
-                                            const String& scheme,
-                                            const String& url,
-                                            ExceptionState&);
   static void unregisterProtocolHandler(Navigator&,
                                         const String& scheme,
                                         const String& url,
diff --git a/third_party/WebKit/Source/modules/navigatorcontentutils/NavigatorContentUtils.idl b/third_party/WebKit/Source/modules/navigatorcontentutils/NavigatorContentUtils.idl
index 8bf44a1c..2df7b59 100644
--- a/third_party/WebKit/Source/modules/navigatorcontentutils/NavigatorContentUtils.idl
+++ b/third_party/WebKit/Source/modules/navigatorcontentutils/NavigatorContentUtils.idl
@@ -24,6 +24,5 @@
     ImplementedAs=NavigatorContentUtils
 ] partial interface Navigator {
     [RuntimeEnabled=NavigatorContentUtils, RaisesException] void registerProtocolHandler(DOMString scheme, DOMString url, DOMString title);
-    [RuntimeEnabled=CustomSchemeHandler, RaisesException] DOMString isProtocolHandlerRegistered(DOMString scheme, DOMString url);
     [RuntimeEnabled=NavigatorContentUtils, RaisesException] void unregisterProtocolHandler(DOMString scheme, DOMString url);
 };
diff --git a/third_party/WebKit/Source/modules/navigatorcontentutils/NavigatorContentUtilsClient.cpp b/third_party/WebKit/Source/modules/navigatorcontentutils/NavigatorContentUtilsClient.cpp
index 52ce32a..b83bd34 100644
--- a/third_party/WebKit/Source/modules/navigatorcontentutils/NavigatorContentUtilsClient.cpp
+++ b/third_party/WebKit/Source/modules/navigatorcontentutils/NavigatorContentUtilsClient.cpp
@@ -29,24 +29,10 @@
   web_frame_->Client()->RegisterProtocolHandler(scheme, url, title);
 }
 
-NavigatorContentUtilsClient::CustomHandlersState
-NavigatorContentUtilsClient::IsProtocolHandlerRegistered(const String& scheme,
-                                                         const KURL& url) {
-  return static_cast<NavigatorContentUtilsClient::CustomHandlersState>(
-      web_frame_->Client()->IsProtocolHandlerRegistered(scheme, url));
-}
-
 void NavigatorContentUtilsClient::UnregisterProtocolHandler(
     const String& scheme,
     const KURL& url) {
   web_frame_->Client()->UnregisterProtocolHandler(scheme, url);
 }
 
-STATIC_ASSERT_ENUM(kWebCustomHandlersNew,
-                   NavigatorContentUtilsClient::kCustomHandlersNew);
-STATIC_ASSERT_ENUM(kWebCustomHandlersRegistered,
-                   NavigatorContentUtilsClient::kCustomHandlersRegistered);
-STATIC_ASSERT_ENUM(kWebCustomHandlersDeclined,
-                   NavigatorContentUtilsClient::kCustomHandlersDeclined);
-
 }  // namespace blink
diff --git a/third_party/WebKit/Source/modules/navigatorcontentutils/NavigatorContentUtilsClient.h b/third_party/WebKit/Source/modules/navigatorcontentutils/NavigatorContentUtilsClient.h
index 95704a3..d4c5be4 100644
--- a/third_party/WebKit/Source/modules/navigatorcontentutils/NavigatorContentUtilsClient.h
+++ b/third_party/WebKit/Source/modules/navigatorcontentutils/NavigatorContentUtilsClient.h
@@ -24,14 +24,6 @@
                                        const KURL&,
                                        const String& title);
 
-  enum CustomHandlersState {
-    kCustomHandlersNew,
-    kCustomHandlersRegistered,
-    kCustomHandlersDeclined
-  };
-
-  virtual CustomHandlersState IsProtocolHandlerRegistered(const String& scheme,
-                                                          const KURL&);
   virtual void UnregisterProtocolHandler(const String& scheme, const KURL&);
 
   virtual void Trace(blink::Visitor*);
diff --git a/third_party/WebKit/Source/modules/navigatorcontentutils/testing/NavigatorContentUtilsClientMock.cpp b/third_party/WebKit/Source/modules/navigatorcontentutils/testing/NavigatorContentUtilsClientMock.cpp
index f4d7432..4ae662e 100644
--- a/third_party/WebKit/Source/modules/navigatorcontentutils/testing/NavigatorContentUtilsClientMock.cpp
+++ b/third_party/WebKit/Source/modules/navigatorcontentutils/testing/NavigatorContentUtilsClientMock.cpp
@@ -21,19 +21,6 @@
   protocol_map_.Set(scheme, info);
 }
 
-NavigatorContentUtilsClient::CustomHandlersState
-NavigatorContentUtilsClientMock::IsProtocolHandlerRegistered(
-    const String& scheme,
-    const KURL& url) {
-  // "declined" state is checked by
-  // NavigatorContentUtils::isProtocolHandlerRegistered() before calling this
-  // function.
-  if (protocol_map_.Contains(scheme))
-    return NavigatorContentUtilsClient::kCustomHandlersRegistered;
-
-  return NavigatorContentUtilsClient::kCustomHandlersNew;
-}
-
 void NavigatorContentUtilsClientMock::UnregisterProtocolHandler(
     const String& scheme,
     const KURL& url) {
diff --git a/third_party/WebKit/Source/modules/navigatorcontentutils/testing/NavigatorContentUtilsClientMock.h b/third_party/WebKit/Source/modules/navigatorcontentutils/testing/NavigatorContentUtilsClientMock.h
index 17400f5..d90238b 100644
--- a/third_party/WebKit/Source/modules/navigatorcontentutils/testing/NavigatorContentUtilsClientMock.h
+++ b/third_party/WebKit/Source/modules/navigatorcontentutils/testing/NavigatorContentUtilsClientMock.h
@@ -27,8 +27,6 @@
                                        const KURL&,
                                        const String& title);
 
-  virtual CustomHandlersState IsProtocolHandlerRegistered(const String& scheme,
-                                                          const KURL&);
   virtual void UnregisterProtocolHandler(const String& scheme, const KURL&);
 
  private:
diff --git a/third_party/WebKit/Source/platform/runtime_enabled_features.json5 b/third_party/WebKit/Source/platform/runtime_enabled_features.json5
index e0b20f91..630686e 100644
--- a/third_party/WebKit/Source/platform/runtime_enabled_features.json5
+++ b/third_party/WebKit/Source/platform/runtime_enabled_features.json5
@@ -308,11 +308,6 @@
       status: "test",
     },
     {
-      name: "CustomSchemeHandler",
-      depends_on: ["NavigatorContentUtils"],
-      status: "experimental",
-    },
-    {
       name: "Database",
       status: "stable",
     },
diff --git a/third_party/WebKit/public/BUILD.gn b/third_party/WebKit/public/BUILD.gn
index 7a6128b..efdd1eb 100644
--- a/third_party/WebKit/public/BUILD.gn
+++ b/third_party/WebKit/public/BUILD.gn
@@ -547,7 +547,6 @@
     "web/WebMetaElement.h",
     "web/WebNavigationPolicy.h",
     "web/WebNavigationType.h",
-    "web/WebNavigatorContentUtilsClient.h",
     "web/WebNode.h",
     "web/WebOptionElement.h",
     "web/WebPageImportanceSignals.h",
diff --git a/third_party/WebKit/public/web/WebFrameClient.h b/third_party/WebKit/public/web/WebFrameClient.h
index ed72e75..b622b53 100644
--- a/third_party/WebKit/public/web/WebFrameClient.h
+++ b/third_party/WebKit/public/web/WebFrameClient.h
@@ -45,7 +45,6 @@
 #include "WebIconURL.h"
 #include "WebNavigationPolicy.h"
 #include "WebNavigationType.h"
-#include "WebNavigatorContentUtilsClient.h"
 #include "WebTextDirection.h"
 #include "WebTriggeringEventInfo.h"
 #include "public/platform/BlameContext.h"
@@ -816,13 +815,6 @@
   virtual void UnregisterProtocolHandler(const WebString& scheme,
                                          const WebURL& url) {}
 
-  // Check if a given URL handler is registered for the given protocol.
-  virtual WebCustomHandlersState IsProtocolHandlerRegistered(
-      const WebString& scheme,
-      const WebURL& url) {
-    return kWebCustomHandlersNew;
-  }
-
   // Audio Output Devices API --------------------------------------------
 
   // Checks that the given audio sink exists and is authorized. The result is
diff --git a/third_party/WebKit/public/web/WebNavigatorContentUtilsClient.h b/third_party/WebKit/public/web/WebNavigatorContentUtilsClient.h
deleted file mode 100644
index f30985d..0000000
--- a/third_party/WebKit/public/web/WebNavigatorContentUtilsClient.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2014, Samsung Electronics. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef WebNavigatorContentUtilsClient_h
-#define WebNavigatorContentUtilsClient_h
-
-namespace blink {
-
-// The following enum should be consistent with the CustomHandlersState enum
-// defined in WebCore.
-enum WebCustomHandlersState {
-  kWebCustomHandlersNew,
-  kWebCustomHandlersRegistered,
-  kWebCustomHandlersDeclined
-};
-
-}  // namespace blink
-
-#endif