Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(58)

Side by Side Diff: chrome/browser/extensions/settings_api_helpers.cc

Issue 288923004: Add an extension override bubble and warning box for proxy extensions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix tests Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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 if (!extension_prefs_value_map)
110 return NULL; // Can be null during testing.
111 std::string extension_id =
112 extension_prefs_value_map->GetExtensionControllingPref(prefs::kProxy);
113 if (extension_id.empty())
114 return NULL;
115 return ExtensionRegistry::Get(browser_context)->GetExtensionById(
116 extension_id, ExtensionRegistry::ENABLED);
117 }
118
103 } // namespace extensions 119 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/settings_api_helpers.h ('k') | chrome/browser/extensions/suspicious_extension_bubble_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698