| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "apps/shell/browser/shell_content_browser_client.h" | 5 #include "apps/shell/browser/shell_content_browser_client.h" |
| 6 | 6 |
| 7 #include "apps/shell/browser/shell_browser_context.h" | 7 #include "apps/shell/browser/shell_browser_context.h" |
| 8 #include "apps/shell/browser/shell_browser_main_parts.h" | 8 #include "apps/shell/browser/shell_browser_main_parts.h" |
| 9 #include "apps/shell/browser/shell_extension_system.h" | 9 #include "apps/shell/browser/shell_extension_system.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 72 // This ensures that all render views created for a single app will use the | 72 // This ensures that all render views created for a single app will use the |
| 73 // same render process (see content::SiteInstance::GetProcess). Otherwise the | 73 // same render process (see content::SiteInstance::GetProcess). Otherwise the |
| 74 // default behavior of ContentBrowserClient will lead to separate render | 74 // default behavior of ContentBrowserClient will lead to separate render |
| 75 // processes for the background page and each app window view. | 75 // processes for the background page and each app window view. |
| 76 return true; | 76 return true; |
| 77 } | 77 } |
| 78 | 78 |
| 79 net::URLRequestContextGetter* ShellContentBrowserClient::CreateRequestContext( | 79 net::URLRequestContextGetter* ShellContentBrowserClient::CreateRequestContext( |
| 80 content::BrowserContext* content_browser_context, | 80 content::BrowserContext* content_browser_context, |
| 81 content::ProtocolHandlerMap* protocol_handlers, | 81 content::ProtocolHandlerMap* protocol_handlers, |
| 82 content::ProtocolHandlerScopedVector protocol_interceptors) { | 82 content::URLRequestInterceptorScopedVector request_interceptors) { |
| 83 // Handle only chrome-extension:// requests. app_shell does not support | 83 // Handle only chrome-extension:// requests. app_shell does not support |
| 84 // chrome-extension-resource:// requests (it does not store shared extension | 84 // chrome-extension-resource:// requests (it does not store shared extension |
| 85 // data in its installation directory). | 85 // data in its installation directory). |
| 86 extensions::InfoMap* extension_info_map = | 86 extensions::InfoMap* extension_info_map = |
| 87 browser_main_parts_->extension_system()->info_map(); | 87 browser_main_parts_->extension_system()->info_map(); |
| 88 (*protocol_handlers)[extensions::kExtensionScheme] = | 88 (*protocol_handlers)[extensions::kExtensionScheme] = |
| 89 linked_ptr<net::URLRequestJobFactory::ProtocolHandler>( | 89 linked_ptr<net::URLRequestJobFactory::ProtocolHandler>( |
| 90 extensions::CreateExtensionProtocolHandler(false /* is_incognito */, | 90 extensions::CreateExtensionProtocolHandler(false /* is_incognito */, |
| 91 extension_info_map)); | 91 extension_info_map)); |
| 92 // Let content::ShellBrowserContext handle the rest of the setup. | 92 // Let content::ShellBrowserContext handle the rest of the setup. |
| 93 return browser_main_parts_->browser_context()->CreateRequestContext( | 93 return browser_main_parts_->browser_context()->CreateRequestContext( |
| 94 protocol_handlers, protocol_interceptors.Pass()); | 94 protocol_handlers, request_interceptors.Pass()); |
| 95 } | 95 } |
| 96 | 96 |
| 97 bool ShellContentBrowserClient::IsHandledURL(const GURL& url) { | 97 bool ShellContentBrowserClient::IsHandledURL(const GURL& url) { |
| 98 if (!url.is_valid()) | 98 if (!url.is_valid()) |
| 99 return false; | 99 return false; |
| 100 // Keep in sync with ProtocolHandlers added in CreateRequestContext() and in | 100 // Keep in sync with ProtocolHandlers added in CreateRequestContext() and in |
| 101 // content::ShellURLRequestContextGetter::GetURLRequestContext(). | 101 // content::ShellURLRequestContextGetter::GetURLRequestContext(). |
| 102 static const char* const kProtocolList[] = { | 102 static const char* const kProtocolList[] = { |
| 103 url::kBlobScheme, | 103 url::kBlobScheme, |
| 104 content::kChromeDevToolsScheme, | 104 content::kChromeDevToolsScheme, |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 181 | 181 |
| 182 const extensions::Extension* ShellContentBrowserClient::GetExtension( | 182 const extensions::Extension* ShellContentBrowserClient::GetExtension( |
| 183 content::SiteInstance* site_instance) { | 183 content::SiteInstance* site_instance) { |
| 184 ExtensionRegistry* registry = | 184 ExtensionRegistry* registry = |
| 185 ExtensionRegistry::Get(site_instance->GetBrowserContext()); | 185 ExtensionRegistry::Get(site_instance->GetBrowserContext()); |
| 186 return registry->enabled_extensions().GetExtensionOrAppByURL( | 186 return registry->enabled_extensions().GetExtensionOrAppByURL( |
| 187 site_instance->GetSiteURL()); | 187 site_instance->GetSiteURL()); |
| 188 } | 188 } |
| 189 | 189 |
| 190 } // namespace apps | 190 } // namespace apps |
| OLD | NEW |