OLD | NEW |
---|---|
1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2014 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/settings_api_helpers.h" | 5 #include "chrome/browser/extensions/settings_api_helpers.h" |
6 | 6 |
7 #include "chrome/browser/extensions/api/preference/preference_api.h" | 7 #include "chrome/browser/extensions/api/preference/preference_api.h" |
8 #include "chrome/common/pref_names.h" | 8 #include "chrome/common/pref_names.h" |
9 #include "extensions/browser/extension_pref_value_map.h" | |
10 #include "extensions/browser/extension_pref_value_map_factory.h" | |
9 #include "extensions/browser/extension_registry.h" | 11 #include "extensions/browser/extension_registry.h" |
10 #include "extensions/common/extension_set.h" | 12 #include "extensions/common/extension_set.h" |
11 | 13 |
12 namespace extensions { | 14 namespace extensions { |
13 | 15 |
14 const extensions::SettingsOverrides* FindOverridingExtension( | 16 const SettingsOverrides* FindOverridingExtension( |
15 content::BrowserContext* browser_context, | 17 content::BrowserContext* browser_context, |
16 SettingsApiOverrideType type, | 18 SettingsApiOverrideType type, |
17 const Extension** extension) { | 19 const Extension** extension) { |
18 const extensions::ExtensionSet& extensions = | 20 const ExtensionSet& extensions = |
19 extensions::ExtensionRegistry::Get(browser_context)->enabled_extensions(); | 21 ExtensionRegistry::Get(browser_context)->enabled_extensions(); |
20 | 22 |
21 for (extensions::ExtensionSet::const_iterator it = extensions.begin(); | 23 for (ExtensionSet::const_iterator it = extensions.begin(); |
22 it != extensions.end(); | 24 it != extensions.end(); |
23 ++it) { | 25 ++it) { |
24 const extensions::SettingsOverrides* settings = | 26 const SettingsOverrides* settings = SettingsOverrides::Get(*it); |
25 extensions::SettingsOverrides::Get(*it); | |
26 if (settings) { | 27 if (settings) { |
27 if (type == BUBBLE_TYPE_HOME_PAGE && !settings->homepage) | 28 if (type == BUBBLE_TYPE_HOME_PAGE && !settings->homepage) |
28 continue; | 29 continue; |
29 if (type == BUBBLE_TYPE_STARTUP_PAGES && settings->startup_pages.empty()) | 30 if (type == BUBBLE_TYPE_STARTUP_PAGES && settings->startup_pages.empty()) |
30 continue; | 31 continue; |
31 if (type == BUBBLE_TYPE_SEARCH_ENGINE && !settings->search_engine) | 32 if (type == BUBBLE_TYPE_SEARCH_ENGINE && !settings->search_engine) |
32 continue; | 33 continue; |
33 | 34 |
34 std::string key; | 35 std::string key; |
35 switch (type) { | 36 switch (type) { |
(...skipping 16 matching lines...) Expand all Loading... | |
52 | 53 |
53 // Found the primary extension, return its setting. | 54 // Found the primary extension, return its setting. |
54 *extension = *it; | 55 *extension = *it; |
55 return settings; | 56 return settings; |
56 } | 57 } |
57 } | 58 } |
58 | 59 |
59 return NULL; | 60 return NULL; |
60 } | 61 } |
61 | 62 |
62 const Extension* OverridesHomepage(content::BrowserContext* browser_context, | 63 const Extension* GetExtensionOverridingHomepage( |
63 GURL* home_page_url) { | 64 content::BrowserContext* browser_context, GURL* home_page_url) { |
64 const extensions::Extension* extension = NULL; | 65 const Extension* extension = NULL; |
65 const extensions::SettingsOverrides* settings = | 66 const SettingsOverrides* settings = |
66 FindOverridingExtension( | 67 FindOverridingExtension( |
67 browser_context, BUBBLE_TYPE_HOME_PAGE, &extension); | 68 browser_context, BUBBLE_TYPE_HOME_PAGE, &extension); |
68 | 69 |
69 if (settings && home_page_url) | 70 if (settings && home_page_url) |
70 *home_page_url = *settings->homepage; | 71 *home_page_url = *settings->homepage; |
71 return extension; | 72 return extension; |
72 } | 73 } |
73 | 74 |
74 const Extension* OverridesStartupPages(content::BrowserContext* browser_context, | 75 const Extension* GetExtensionOverridingStartupPages( |
75 std::vector<GURL>* startup_pages) { | 76 content::BrowserContext* browser_context, |
76 const extensions::Extension* extension = NULL; | 77 std::vector<GURL>* startup_pages) { |
77 const extensions::SettingsOverrides* settings = | 78 const Extension* extension = NULL; |
79 const SettingsOverrides* settings = | |
78 FindOverridingExtension( | 80 FindOverridingExtension( |
79 browser_context, BUBBLE_TYPE_STARTUP_PAGES, &extension); | 81 browser_context, BUBBLE_TYPE_STARTUP_PAGES, &extension); |
80 if (settings && startup_pages) { | 82 if (settings && startup_pages) { |
81 startup_pages->clear(); | 83 startup_pages->clear(); |
82 for (std::vector<GURL>::const_iterator it = settings->startup_pages.begin(); | 84 for (std::vector<GURL>::const_iterator it = settings->startup_pages.begin(); |
83 it != settings->startup_pages.end(); | 85 it != settings->startup_pages.end(); |
84 ++it) | 86 ++it) |
85 startup_pages->push_back(GURL(*it)); | 87 startup_pages->push_back(GURL(*it)); |
86 } | 88 } |
87 return extension; | 89 return extension; |
88 } | 90 } |
89 | 91 |
90 const Extension* OverridesSearchEngine( | 92 const Extension* GetExtensionOverridingSearchEngine( |
91 content::BrowserContext* browser_context, | 93 content::BrowserContext* browser_context, |
92 api::manifest_types::ChromeSettingsOverrides::Search_provider* | 94 api::manifest_types::ChromeSettingsOverrides::Search_provider* |
93 search_provider) { | 95 search_provider) { |
94 const extensions::Extension* extension = NULL; | 96 const Extension* extension = NULL; |
95 const extensions::SettingsOverrides* settings = | 97 const SettingsOverrides* settings = |
96 FindOverridingExtension( | 98 FindOverridingExtension( |
97 browser_context, BUBBLE_TYPE_SEARCH_ENGINE, &extension); | 99 browser_context, BUBBLE_TYPE_SEARCH_ENGINE, &extension); |
98 if (settings && search_provider) | 100 if (settings && search_provider) |
99 search_provider = settings->search_engine.get(); | 101 search_provider = settings->search_engine.get(); |
100 return extension; | 102 return extension; |
101 } | 103 } |
102 | 104 |
105 const Extension* GetExtensionOverridingProxy( | |
106 content::BrowserContext* browser_context) { | |
107 ExtensionPrefValueMap* extension_prefs_value_map = | |
108 ExtensionPrefValueMapFactory::GetForBrowserContext(browser_context); | |
109 std::string extension_id = | |
110 extension_prefs_value_map->GetExtensionControllingPref(prefs::kProxy); | |
111 return ExtensionRegistry::Get(browser_context)->GetExtensionById( | |
Devlin
2014/05/21 17:00:39
nit: Maybe
if (!extension_id.empty())
return Ext
| |
112 extension_id, ExtensionRegistry::ENABLED); | |
113 } | |
114 | |
103 } // namespace extensions | 115 } // namespace extensions |
OLD | NEW |