| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "base/bind.h" | 5 #include "base/bind.h" |
| 6 #include "base/command_line.h" | 6 #include "base/command_line.h" |
| 7 #include "base/lazy_instance.h" | 7 #include "base/lazy_instance.h" |
| 8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
| 9 #include "base/metrics/histogram.h" | 9 #include "base/metrics/histogram.h" |
| 10 #include "base/string_number_conversions.h" | 10 #include "base/string_number_conversions.h" |
| (...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 213 host->CreateView(browser); | 213 host->CreateView(browser); |
| 214 OnExtensionHostCreated(host, false); | 214 OnExtensionHostCreated(host, false); |
| 215 return host; | 215 return host; |
| 216 } | 216 } |
| 217 | 217 |
| 218 ExtensionHost* ExtensionProcessManager::CreateViewHost( | 218 ExtensionHost* ExtensionProcessManager::CreateViewHost( |
| 219 const GURL& url, Browser* browser, chrome::ViewType view_type) { | 219 const GURL& url, Browser* browser, chrome::ViewType view_type) { |
| 220 EnsureBrowserWhenRequired(browser, view_type); | 220 EnsureBrowserWhenRequired(browser, view_type); |
| 221 ExtensionService* service = GetProfile()->GetExtensionService(); | 221 ExtensionService* service = GetProfile()->GetExtensionService(); |
| 222 if (service) { | 222 if (service) { |
| 223 std::string extension_id = url.host(); |
| 224 if (url.SchemeIs(chrome::kChromeUIScheme) && |
| 225 url.host() == chrome::kChromeUIExtensionInfoHost) |
| 226 extension_id = url.path().substr(1); |
| 223 const Extension* extension = | 227 const Extension* extension = |
| 224 service->extensions()->GetByID(url.host()); | 228 service->extensions()->GetByID(extension_id); |
| 225 if (extension) | 229 if (extension) |
| 226 return CreateViewHost(extension, url, browser, view_type); | 230 return CreateViewHost(extension, url, browser, view_type); |
| 227 } | 231 } |
| 228 return NULL; | 232 return NULL; |
| 229 } | 233 } |
| 230 | 234 |
| 231 ExtensionHost* ExtensionProcessManager::CreatePopupHost( | 235 ExtensionHost* ExtensionProcessManager::CreatePopupHost( |
| 232 const Extension* extension, const GURL& url, Browser* browser) { | 236 const Extension* extension, const GURL& url, Browser* browser) { |
| 233 return CreateViewHost( | 237 return CreateViewHost( |
| 234 extension, url, browser, chrome::VIEW_TYPE_EXTENSION_POPUP); | 238 extension, url, browser, chrome::VIEW_TYPE_EXTENSION_POPUP); |
| (...skipping 540 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 775 if (service && service->is_ready()) | 779 if (service && service->is_ready()) |
| 776 CreateBackgroundHostsForProfileStartup(this, service->extensions()); | 780 CreateBackgroundHostsForProfileStartup(this, service->extensions()); |
| 777 } | 781 } |
| 778 break; | 782 break; |
| 779 } | 783 } |
| 780 default: | 784 default: |
| 781 ExtensionProcessManager::Observe(type, source, details); | 785 ExtensionProcessManager::Observe(type, source, details); |
| 782 break; | 786 break; |
| 783 } | 787 } |
| 784 } | 788 } |
| OLD | NEW |