Index: chrome/browser/extensions/settings_api_helpers.cc |
diff --git a/chrome/browser/extensions/settings_api_helpers.cc b/chrome/browser/extensions/settings_api_helpers.cc |
index 839098cbd4b0814000c3a36dc0a7a9ef4bb98871..2c087cddd11872d0da16031cf12814257483a35f 100644 |
--- a/chrome/browser/extensions/settings_api_helpers.cc |
+++ b/chrome/browser/extensions/settings_api_helpers.cc |
@@ -6,23 +6,24 @@ |
#include "chrome/browser/extensions/api/preference/preference_api.h" |
#include "chrome/common/pref_names.h" |
+#include "extensions/browser/extension_pref_value_map.h" |
+#include "extensions/browser/extension_pref_value_map_factory.h" |
#include "extensions/browser/extension_registry.h" |
#include "extensions/common/extension_set.h" |
namespace extensions { |
-const extensions::SettingsOverrides* FindOverridingExtension( |
+const SettingsOverrides* FindOverridingExtension( |
content::BrowserContext* browser_context, |
SettingsApiOverrideType type, |
const Extension** extension) { |
- const extensions::ExtensionSet& extensions = |
- extensions::ExtensionRegistry::Get(browser_context)->enabled_extensions(); |
+ const ExtensionSet& extensions = |
+ ExtensionRegistry::Get(browser_context)->enabled_extensions(); |
- for (extensions::ExtensionSet::const_iterator it = extensions.begin(); |
+ for (ExtensionSet::const_iterator it = extensions.begin(); |
it != extensions.end(); |
++it) { |
- const extensions::SettingsOverrides* settings = |
- extensions::SettingsOverrides::Get(*it); |
+ const SettingsOverrides* settings = SettingsOverrides::Get(*it); |
if (settings) { |
if (type == BUBBLE_TYPE_HOME_PAGE && !settings->homepage) |
continue; |
@@ -59,10 +60,10 @@ const extensions::SettingsOverrides* FindOverridingExtension( |
return NULL; |
} |
-const Extension* OverridesHomepage(content::BrowserContext* browser_context, |
- GURL* home_page_url) { |
- const extensions::Extension* extension = NULL; |
- const extensions::SettingsOverrides* settings = |
+const Extension* GetExtensionOverridingHomepage( |
+ content::BrowserContext* browser_context, GURL* home_page_url) { |
+ const Extension* extension = NULL; |
+ const SettingsOverrides* settings = |
FindOverridingExtension( |
browser_context, BUBBLE_TYPE_HOME_PAGE, &extension); |
@@ -71,10 +72,11 @@ const Extension* OverridesHomepage(content::BrowserContext* browser_context, |
return extension; |
} |
-const Extension* OverridesStartupPages(content::BrowserContext* browser_context, |
- std::vector<GURL>* startup_pages) { |
- const extensions::Extension* extension = NULL; |
- const extensions::SettingsOverrides* settings = |
+const Extension* GetExtensionOverridingStartupPages( |
+ content::BrowserContext* browser_context, |
+ std::vector<GURL>* startup_pages) { |
+ const Extension* extension = NULL; |
+ const SettingsOverrides* settings = |
FindOverridingExtension( |
browser_context, BUBBLE_TYPE_STARTUP_PAGES, &extension); |
if (settings && startup_pages) { |
@@ -87,12 +89,12 @@ const Extension* OverridesStartupPages(content::BrowserContext* browser_context, |
return extension; |
} |
-const Extension* OverridesSearchEngine( |
+const Extension* GetExtensionOverridingSearchEngine( |
content::BrowserContext* browser_context, |
api::manifest_types::ChromeSettingsOverrides::Search_provider* |
search_provider) { |
- const extensions::Extension* extension = NULL; |
- const extensions::SettingsOverrides* settings = |
+ const Extension* extension = NULL; |
+ const SettingsOverrides* settings = |
FindOverridingExtension( |
browser_context, BUBBLE_TYPE_SEARCH_ENGINE, &extension); |
if (settings && search_provider) |
@@ -100,4 +102,18 @@ const Extension* OverridesSearchEngine( |
return extension; |
} |
+const Extension* GetExtensionOverridingProxy( |
+ content::BrowserContext* browser_context) { |
+ ExtensionPrefValueMap* extension_prefs_value_map = |
+ ExtensionPrefValueMapFactory::GetForBrowserContext(browser_context); |
+ if (!extension_prefs_value_map) |
+ return NULL; // Can be null during testing. |
+ std::string extension_id = |
+ extension_prefs_value_map->GetExtensionControllingPref(prefs::kProxy); |
+ if (extension_id.empty()) |
+ return NULL; |
+ return ExtensionRegistry::Get(browser_context)->GetExtensionById( |
+ extension_id, ExtensionRegistry::ENABLED); |
+} |
+ |
} // namespace extensions |