Index: content/shell/shell_content_browser_client.cc |
diff --git a/content/shell/shell_content_browser_client.cc b/content/shell/shell_content_browser_client.cc |
index 0680d397650def16ad940bc68205a33b3c10aae1..dc83ed6c2fa80daff22f527e01d51cb7cad968ee 100644 |
--- a/content/shell/shell_content_browser_client.cc |
+++ b/content/shell/shell_content_browser_client.cc |
@@ -9,6 +9,7 @@ |
#include "base/path_service.h" |
#include "content/public/browser/render_process_host.h" |
#include "content/public/browser/resource_dispatcher_host.h" |
+#include "content/public/common/url_constants.h" |
#include "content/shell/geolocation/shell_access_token_store.h" |
#include "content/shell/shell.h" |
#include "content/shell/shell_browser_context.h" |
@@ -125,6 +126,27 @@ ShellContentBrowserClient::CreateRequestContextForStoragePartition( |
chrome_devtools_protocol_handler.Pass()); |
} |
+bool ShellContentBrowserClient::IsHandledURL(const GURL& url) { |
+ if (!url.is_valid()) |
+ return false; |
+ DCHECK_EQ(url.scheme(), StringToLowerASCII(url.scheme())); |
+ // Keep in sync with ProtocolHandlers added by |
+ // ShellURLRequestContextGetter::GetURLRequestContext(). |
+ static const char* const kProtocolList[] = { |
+ chrome::kBlobScheme, |
+ chrome::kFileSystemScheme, |
+ chrome::kChromeUIScheme, |
+ chrome::kChromeDevToolsScheme, |
+ chrome::kDataScheme, |
+ chrome::kFileScheme, |
+ }; |
+ for (size_t i = 0; i < arraysize(kProtocolList); ++i) { |
+ if (url.scheme() == kProtocolList[i]) |
+ return true; |
+ } |
+ return false; |
+} |
+ |
void ShellContentBrowserClient::AppendExtraCommandLineSwitches( |
CommandLine* command_line, int child_process_id) { |
if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kDumpRenderTree)) |