| 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
|
|
|