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 d98100908d6edc340eed029ff8b1cdc43824fe5f..54c424a040689d093c28edeab8029b9ed65f9d7f 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/common/shell_messages.h" |
#include "content/shell/common/shell_switches.h" |
#include "content/shell/common/webkit_test_helpers.h" |
@@ -112,6 +113,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)) |