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 55011c3c4e8fb83bcab48093b3a2356888388f20..5ccf617896de32f92a2f8ca59430db932b8f495c 100644 |
--- a/content/shell/shell_content_browser_client.cc |
+++ b/content/shell/shell_content_browser_client.cc |
@@ -13,6 +13,7 @@ |
#include "content/public/browser/resource_dispatcher_host.h" |
#include "content/public/browser/storage_partition.h" |
#include "content/public/common/content_switches.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" |
@@ -144,6 +145,27 @@ ShellContentBrowserClient::CreateRequestContextForStoragePartition( |
partition_path, in_memory, protocol_handlers); |
} |
+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)) |