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 "chrome/browser/extensions/extension_util.h" | 5 #include "chrome/browser/extensions/extension_util.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "chrome/browser/extensions/extension_prefs.h" | 8 #include "chrome/browser/extensions/extension_prefs.h" |
9 #include "chrome/browser/extensions/extension_service.h" | 9 #include "chrome/browser/extensions/extension_service.h" |
10 #include "chrome/browser/extensions/extension_sync_service.h" | 10 #include "chrome/browser/extensions/extension_sync_service.h" |
11 #include "chrome/browser/extensions/extension_system.h" | 11 #include "chrome/browser/extensions/extension_system.h" |
12 #include "chrome/common/chrome_switches.h" | 12 #include "chrome/common/chrome_switches.h" |
13 #include "chrome/common/extensions/sync_helper.h" | 13 #include "chrome/common/extensions/sync_helper.h" |
14 #include "content/public/browser/site_instance.h" | 14 #include "content/public/browser/site_instance.h" |
| 15 #include "extensions/browser/extension_registry.h" |
15 #include "extensions/common/extension.h" | 16 #include "extensions/common/extension.h" |
16 #include "extensions/common/manifest.h" | 17 #include "extensions/common/manifest.h" |
17 #include "extensions/common/manifest_handlers/incognito_info.h" | 18 #include "extensions/common/manifest_handlers/incognito_info.h" |
18 | 19 |
19 using extensions::Extension; | 20 using extensions::Extension; |
20 using extensions::ExtensionPrefs; | 21 using extensions::ExtensionPrefs; |
| 22 using extensions::ExtensionRegistry; |
21 | 23 |
22 namespace extension_util { | 24 namespace extension_util { |
23 | 25 |
24 bool IsIncognitoEnabled(const std::string& extension_id, | 26 bool IsIncognitoEnabled(const std::string& extension_id, |
25 const ExtensionService* service) { | 27 const ExtensionService* service) { |
26 if (!service) | 28 if (!service) |
27 return false; | 29 return false; |
28 | 30 |
29 const Extension* extension = service->GetInstalledExtension(extension_id); | 31 const Extension* extension = service->GetInstalledExtension(extension_id); |
30 if (extension && !extension->can_be_incognito_enabled()) | 32 if (extension && !extension->can_be_incognito_enabled()) |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
127 } | 129 } |
128 | 130 |
129 bool IsAppLaunchable(const std::string& extension_id, | 131 bool IsAppLaunchable(const std::string& extension_id, |
130 const ExtensionService* service) { | 132 const ExtensionService* service) { |
131 return !(service->extension_prefs()->GetDisableReasons(extension_id) & | 133 return !(service->extension_prefs()->GetDisableReasons(extension_id) & |
132 Extension::DISABLE_UNSUPPORTED_REQUIREMENT); | 134 Extension::DISABLE_UNSUPPORTED_REQUIREMENT); |
133 } | 135 } |
134 | 136 |
135 bool IsAppLaunchableWithoutEnabling(const std::string& extension_id, | 137 bool IsAppLaunchableWithoutEnabling(const std::string& extension_id, |
136 const ExtensionService* service) { | 138 const ExtensionService* service) { |
137 const Extension* launchable_extension = service->GetExtensionById( | 139 ExtensionRegistry* registry = |
138 extension_id, ExtensionService::INCLUDE_ENABLED); | 140 ExtensionRegistry::Get(service->GetBrowserContext()); |
| 141 const Extension* launchable_extension = registry->GetExtensionById( |
| 142 extension_id, ExtensionRegistry::INCLUDE_ENABLED); |
139 return launchable_extension != NULL; | 143 return launchable_extension != NULL; |
140 } | 144 } |
141 | 145 |
142 bool IsExtensionIdle(const std::string& extension_id, | 146 bool IsExtensionIdle(const std::string& extension_id, |
143 extensions::ExtensionSystem* extension_system) { | 147 extensions::ExtensionSystem* extension_system) { |
144 DCHECK(extension_system); | 148 DCHECK(extension_system); |
145 extensions::ProcessManager* process_manager = | 149 extensions::ProcessManager* process_manager = |
146 extension_system->process_manager(); | 150 extension_system->process_manager(); |
147 DCHECK(process_manager); | 151 DCHECK(process_manager); |
148 extensions::ExtensionHost* host = | 152 extensions::ExtensionHost* host = |
149 process_manager->GetBackgroundHostForExtension(extension_id); | 153 process_manager->GetBackgroundHostForExtension(extension_id); |
150 if (host) | 154 if (host) |
151 return false; | 155 return false; |
152 | 156 |
153 content::SiteInstance* site_instance = process_manager->GetSiteInstanceForURL( | 157 content::SiteInstance* site_instance = process_manager->GetSiteInstanceForURL( |
154 Extension::GetBaseURLFromExtensionId(extension_id)); | 158 Extension::GetBaseURLFromExtensionId(extension_id)); |
155 if (site_instance && site_instance->HasProcess()) { | 159 if (site_instance && site_instance->HasProcess()) { |
156 return false; | 160 return false; |
157 } | 161 } |
158 | 162 |
159 return process_manager->GetRenderViewHostsForExtension(extension_id).empty(); | 163 return process_manager->GetRenderViewHostsForExtension(extension_id).empty(); |
160 } | 164 } |
161 | 165 |
162 } // namespace extension_util | 166 } // namespace extension_util |
OLD | NEW |