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