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

Side by Side Diff: chrome/browser/policy/configuration_policy_pref_store.cc

Issue 4062002: Dynamic policy refresh support for the Mac. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: s/map/list/, nits. Created 10 years, 1 month 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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/policy/configuration_policy_pref_store.h" 5 #include "chrome/browser/policy/configuration_policy_pref_store.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/path_service.h" 8 #include "base/path_service.h"
9 #include "base/singleton.h" 9 #include "base/singleton.h"
10 #include "base/string16.h" 10 #include "base/string16.h"
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 45
46 ConfigurationPolicyProvider* recommended_provider() const { 46 ConfigurationPolicyProvider* recommended_provider() const {
47 return recommended_provider_.get(); 47 return recommended_provider_.get();
48 } 48 }
49 49
50 private: 50 private:
51 scoped_ptr<ConfigurationPolicyProvider> managed_provider_; 51 scoped_ptr<ConfigurationPolicyProvider> managed_provider_;
52 scoped_ptr<ConfigurationPolicyProvider> recommended_provider_; 52 scoped_ptr<ConfigurationPolicyProvider> recommended_provider_;
53 53
54 static ConfigurationPolicyProvider* CreateManagedProvider() { 54 static ConfigurationPolicyProvider* CreateManagedProvider() {
55 const ConfigurationPolicyProvider::StaticPolicyValueMap& policy_map = 55 const ConfigurationPolicyProvider::PolicyDefinitionList* policy_list =
56 ConfigurationPolicyPrefStore::GetChromePolicyValueMap(); 56 ConfigurationPolicyPrefStore::GetChromePolicyDefinitionList();
57 #if defined(OS_WIN) 57 #if defined(OS_WIN)
58 return new ConfigurationPolicyProviderWin(policy_map); 58 return new ConfigurationPolicyProviderWin(policy_list);
59 #elif defined(OS_MACOSX) 59 #elif defined(OS_MACOSX)
60 return new ConfigurationPolicyProviderMac(policy_map); 60 return new ConfigurationPolicyProviderMac(policy_list);
61 #elif defined(OS_POSIX) 61 #elif defined(OS_POSIX)
62 FilePath config_dir_path; 62 FilePath config_dir_path;
63 if (PathService::Get(chrome::DIR_POLICY_FILES, &config_dir_path)) { 63 if (PathService::Get(chrome::DIR_POLICY_FILES, &config_dir_path)) {
64 return new ConfigDirPolicyProvider(policy_map, 64 return new ConfigDirPolicyProvider(policy_list,
65 config_dir_path.Append(FILE_PATH_LITERAL("managed"))); 65 config_dir_path.Append(FILE_PATH_LITERAL("managed")));
66 } else { 66 } else {
67 return new DummyConfigurationPolicyProvider(policy_map); 67 return new DummyConfigurationPolicyProvider(policy_list);
68 } 68 }
69 #else 69 #else
70 return new DummyConfigurationPolicyProvider(policy_map); 70 return new DummyConfigurationPolicyProvider(policy_list);
71 #endif 71 #endif
72 } 72 }
73 73
74 static ConfigurationPolicyProvider* CreateRecommendedProvider() { 74 static ConfigurationPolicyProvider* CreateRecommendedProvider() {
75 const ConfigurationPolicyProvider::StaticPolicyValueMap& policy_map = 75 const ConfigurationPolicyProvider::PolicyDefinitionList* policy_list =
76 ConfigurationPolicyPrefStore::GetChromePolicyValueMap(); 76 ConfigurationPolicyPrefStore::GetChromePolicyDefinitionList();
77 #if defined(OS_POSIX) && !defined(OS_MACOSX) 77 #if defined(OS_POSIX) && !defined(OS_MACOSX)
78 FilePath config_dir_path; 78 FilePath config_dir_path;
79 if (PathService::Get(chrome::DIR_POLICY_FILES, &config_dir_path)) { 79 if (PathService::Get(chrome::DIR_POLICY_FILES, &config_dir_path)) {
80 return new ConfigDirPolicyProvider(policy_map, 80 return new ConfigDirPolicyProvider(policy_list,
81 config_dir_path.Append(FILE_PATH_LITERAL("recommended"))); 81 config_dir_path.Append(FILE_PATH_LITERAL("recommended")));
82 } else { 82 } else {
83 return new DummyConfigurationPolicyProvider(policy_map); 83 return new DummyConfigurationPolicyProvider(policy_list);
84 } 84 }
85 #else 85 #else
86 return new DummyConfigurationPolicyProvider(policy_map); 86 return new DummyConfigurationPolicyProvider(policy_list);
87 #endif 87 #endif
88 } 88 }
89 89
90 DISALLOW_COPY_AND_ASSIGN(ConfigurationPolicyProviderKeeper); 90 DISALLOW_COPY_AND_ASSIGN(ConfigurationPolicyProviderKeeper);
91 }; 91 };
92 92
93 const ConfigurationPolicyPrefStore::PolicyToPreferenceMapEntry 93 const ConfigurationPolicyPrefStore::PolicyToPreferenceMapEntry
94 ConfigurationPolicyPrefStore::simple_policy_map_[] = { 94 ConfigurationPolicyPrefStore::simple_policy_map_[] = {
95 { Value::TYPE_STRING, kPolicyHomePage, prefs::kHomePage }, 95 { Value::TYPE_STRING, kPolicyHomePage, prefs::kHomePage },
96 { Value::TYPE_BOOLEAN, kPolicyHomepageIsNewTabPage, 96 { Value::TYPE_BOOLEAN, kPolicyHomepageIsNewTabPage,
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 }; 161 };
162 162
163 const ConfigurationPolicyPrefStore::PolicyToPreferenceMapEntry 163 const ConfigurationPolicyPrefStore::PolicyToPreferenceMapEntry
164 ConfigurationPolicyPrefStore::proxy_policy_map_[] = { 164 ConfigurationPolicyPrefStore::proxy_policy_map_[] = {
165 { Value::TYPE_STRING, kPolicyProxyServer, prefs::kProxyServer }, 165 { Value::TYPE_STRING, kPolicyProxyServer, prefs::kProxyServer },
166 { Value::TYPE_STRING, kPolicyProxyPacUrl, prefs::kProxyPacUrl }, 166 { Value::TYPE_STRING, kPolicyProxyPacUrl, prefs::kProxyPacUrl },
167 { Value::TYPE_STRING, kPolicyProxyBypassList, prefs::kProxyBypassList } 167 { Value::TYPE_STRING, kPolicyProxyBypassList, prefs::kProxyBypassList }
168 }; 168 };
169 169
170 /* static */ 170 /* static */
171 ConfigurationPolicyProvider::StaticPolicyValueMap 171 ConfigurationPolicyProvider::PolicyDefinitionList*
172 ConfigurationPolicyPrefStore::GetChromePolicyValueMap() { 172 ConfigurationPolicyPrefStore::GetChromePolicyDefinitionList() {
173 static ConfigurationPolicyProvider::StaticPolicyValueMap::Entry entries[] = { 173 static ConfigurationPolicyProvider::PolicyDefinitionList::Entry entries[] = {
174 { ConfigurationPolicyStore::kPolicyHomePage, 174 { ConfigurationPolicyStore::kPolicyHomePage,
175 Value::TYPE_STRING, key::kHomepageLocation }, 175 Value::TYPE_STRING, key::kHomepageLocation },
176 { ConfigurationPolicyStore::kPolicyHomepageIsNewTabPage, 176 { ConfigurationPolicyStore::kPolicyHomepageIsNewTabPage,
177 Value::TYPE_BOOLEAN, key::kHomepageIsNewTabPage }, 177 Value::TYPE_BOOLEAN, key::kHomepageIsNewTabPage },
178 { ConfigurationPolicyStore::kPolicyRestoreOnStartup, 178 { ConfigurationPolicyStore::kPolicyRestoreOnStartup,
179 Value::TYPE_INTEGER, key::kRestoreOnStartup }, 179 Value::TYPE_INTEGER, key::kRestoreOnStartup },
180 { ConfigurationPolicyStore::kPolicyURLsToRestoreOnStartup, 180 { ConfigurationPolicyStore::kPolicyURLsToRestoreOnStartup,
181 Value::TYPE_LIST, key::kURLsToRestoreOnStartup }, 181 Value::TYPE_LIST, key::kURLsToRestoreOnStartup },
182 { ConfigurationPolicyStore::kPolicyDefaultSearchProviderEnabled, 182 { ConfigurationPolicyStore::kPolicyDefaultSearchProviderEnabled,
183 Value::TYPE_BOOLEAN, key::kDefaultSearchProviderEnabled }, 183 Value::TYPE_BOOLEAN, key::kDefaultSearchProviderEnabled },
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 Value::TYPE_BOOLEAN, key::kDeveloperToolsDisabled }, 243 Value::TYPE_BOOLEAN, key::kDeveloperToolsDisabled },
244 { ConfigurationPolicyStore::kPolicyBlockThirdPartyCookies, 244 { ConfigurationPolicyStore::kPolicyBlockThirdPartyCookies,
245 Value::TYPE_BOOLEAN, key::kBlockThirdPartyCookies }, 245 Value::TYPE_BOOLEAN, key::kBlockThirdPartyCookies },
246 246
247 #if defined(OS_CHROMEOS) 247 #if defined(OS_CHROMEOS)
248 { ConfigurationPolicyStore::kPolicyChromeOsLockOnIdleSuspend, 248 { ConfigurationPolicyStore::kPolicyChromeOsLockOnIdleSuspend,
249 Value::TYPE_BOOLEAN, key::kChromeOsLockOnIdleSuspend }, 249 Value::TYPE_BOOLEAN, key::kChromeOsLockOnIdleSuspend },
250 #endif 250 #endif
251 }; 251 };
252 252
253 ConfigurationPolicyProvider::StaticPolicyValueMap map = { 253 static ConfigurationPolicyProvider::PolicyDefinitionList policy_list = {
254 arraysize(entries), 254 entries,
255 entries 255 entries + arraysize(entries),
256 }; 256 };
257 return map; 257 return &policy_list;
258 }
259
260 void ConfigurationPolicyPrefStore::GetProxyPreferenceSet(
261 ProxyPreferenceSet* proxy_pref_set) {
262 proxy_pref_set->clear();
263 for (size_t current = 0; current < arraysize(proxy_policy_map_); ++current) {
264 proxy_pref_set->insert(proxy_policy_map_[current].preference_path);
265 }
266 proxy_pref_set->insert(prefs::kNoProxyServer);
267 proxy_pref_set->insert(prefs::kProxyAutoDetect);
268 } 258 }
269 259
270 ConfigurationPolicyPrefStore::ConfigurationPolicyPrefStore( 260 ConfigurationPolicyPrefStore::ConfigurationPolicyPrefStore(
271 ConfigurationPolicyProvider* provider) 261 ConfigurationPolicyProvider* provider)
272 : provider_(provider), 262 : provider_(provider),
273 prefs_(new DictionaryValue()), 263 prefs_(new DictionaryValue()),
274 lower_priority_proxy_settings_overridden_(false), 264 lower_priority_proxy_settings_overridden_(false),
275 proxy_disabled_(false), 265 proxy_disabled_(false),
276 proxy_configuration_specified_(false), 266 proxy_configuration_specified_(false),
277 use_system_proxy_(false) { 267 use_system_proxy_(false) {
278 } 268 }
279 269
280 ConfigurationPolicyPrefStore::~ConfigurationPolicyPrefStore() {} 270 ConfigurationPolicyPrefStore::~ConfigurationPolicyPrefStore() {
271 }
281 272
282 PrefStore::PrefReadError ConfigurationPolicyPrefStore::ReadPrefs() { 273 PrefStore::PrefReadError ConfigurationPolicyPrefStore::ReadPrefs() {
283 proxy_disabled_ = false; 274 proxy_disabled_ = false;
284 proxy_configuration_specified_ = false; 275 proxy_configuration_specified_ = false;
285 lower_priority_proxy_settings_overridden_ = false; 276 lower_priority_proxy_settings_overridden_ = false;
286 277
287 bool success = (provider_ == NULL || provider_->Provide(this)); 278 bool success = (provider_ == NULL || provider_->Provide(this));
288 FinalizeDefaultSearchPolicySettings(); 279 FinalizeDefaultSearchPolicySettings();
289 return success ? PrefStore::PREF_READ_ERROR_NONE : 280 return success ? PrefStore::PREF_READ_ERROR_NONE :
290 PrefStore::PREF_READ_ERROR_OTHER; 281 PrefStore::PREF_READ_ERROR_OTHER;
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
322 } 313 }
323 314
324 // static 315 // static
325 ConfigurationPolicyPrefStore* 316 ConfigurationPolicyPrefStore*
326 ConfigurationPolicyPrefStore::CreateRecommendedPolicyPrefStore() { 317 ConfigurationPolicyPrefStore::CreateRecommendedPolicyPrefStore() {
327 ConfigurationPolicyProviderKeeper* keeper = 318 ConfigurationPolicyProviderKeeper* keeper =
328 Singleton<ConfigurationPolicyProviderKeeper>::get(); 319 Singleton<ConfigurationPolicyProviderKeeper>::get();
329 return new ConfigurationPolicyPrefStore(keeper->recommended_provider()); 320 return new ConfigurationPolicyPrefStore(keeper->recommended_provider());
330 } 321 }
331 322
323 // static
324 void ConfigurationPolicyPrefStore::GetProxyPreferenceSet(
325 ProxyPreferenceSet* proxy_pref_set) {
326 proxy_pref_set->clear();
327 for (size_t current = 0; current < arraysize(proxy_policy_map_); ++current) {
328 proxy_pref_set->insert(proxy_policy_map_[current].preference_path);
329 }
330 proxy_pref_set->insert(prefs::kNoProxyServer);
331 proxy_pref_set->insert(prefs::kProxyAutoDetect);
332 }
333
332 const ConfigurationPolicyPrefStore::PolicyToPreferenceMapEntry* 334 const ConfigurationPolicyPrefStore::PolicyToPreferenceMapEntry*
333 ConfigurationPolicyPrefStore::FindPolicyInMap(PolicyType policy, 335 ConfigurationPolicyPrefStore::FindPolicyInMap(PolicyType policy,
334 const PolicyToPreferenceMapEntry* map, int table_size) { 336 const PolicyToPreferenceMapEntry* map, int table_size) {
335 for (int i = 0; i < table_size; ++i) { 337 for (int i = 0; i < table_size; ++i) {
336 if (map[i].policy_type == policy) 338 if (map[i].policy_type == policy)
337 return map + i; 339 return map + i;
338 } 340 }
339 return NULL; 341 return NULL;
340 } 342 }
341 343
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
561 prefs_->SetString(prefs::kDefaultSearchProviderPrepopulateID, ""); 563 prefs_->SetString(prefs::kDefaultSearchProviderPrepopulateID, "");
562 return; 564 return;
563 } 565 }
564 } 566 }
565 // Required entries are not there. Remove any related entries. 567 // Required entries are not there. Remove any related entries.
566 RemovePreferencesOfMap(default_search_policy_map_, 568 RemovePreferencesOfMap(default_search_policy_map_,
567 arraysize(default_search_policy_map_)); 569 arraysize(default_search_policy_map_));
568 } 570 }
569 571
570 } // namespace policy 572 } // namespace policy
OLDNEW
« no previous file with comments | « chrome/browser/policy/configuration_policy_pref_store.h ('k') | chrome/browser/policy/configuration_policy_provider.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698