| Index: chrome/browser/policy/configuration_policy_pref_store.cc
|
| diff --git a/chrome/browser/policy/configuration_policy_pref_store.cc b/chrome/browser/policy/configuration_policy_pref_store.cc
|
| index 8a72ff6d398251c5bcaab4b1d8db6dac5b070771..669160466a58546eedb50fda008565f2a8d71d17 100644
|
| --- a/chrome/browser/policy/configuration_policy_pref_store.cc
|
| +++ b/chrome/browser/policy/configuration_policy_pref_store.cc
|
| @@ -35,8 +35,7 @@ class ConfigurationPolicyProviderKeeper {
|
| public:
|
| ConfigurationPolicyProviderKeeper()
|
| : managed_provider_(CreateManagedProvider()),
|
| - recommended_provider_(CreateRecommendedProvider()) {
|
| - }
|
| + recommended_provider_(CreateRecommendedProvider()) {}
|
| virtual ~ConfigurationPolicyProviderKeeper() {}
|
|
|
| ConfigurationPolicyProvider* managed_provider() const {
|
| @@ -51,117 +50,125 @@ class ConfigurationPolicyProviderKeeper {
|
| scoped_ptr<ConfigurationPolicyProvider> managed_provider_;
|
| scoped_ptr<ConfigurationPolicyProvider> recommended_provider_;
|
|
|
| - static ConfigurationPolicyProvider* CreateManagedProvider() {
|
| - const ConfigurationPolicyProvider::PolicyDefinitionList* policy_list =
|
| - ConfigurationPolicyPrefStore::GetChromePolicyDefinitionList();
|
| + static ConfigurationPolicyProvider* CreateManagedProvider();
|
| + static ConfigurationPolicyProvider* CreateRecommendedProvider();
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(ConfigurationPolicyProviderKeeper);
|
| +};
|
| +
|
| +
|
| +ConfigurationPolicyProvider*
|
| + ConfigurationPolicyProviderKeeper::CreateManagedProvider() {
|
| + const ConfigurationPolicyProvider::PolicyDefinitionList* policy_list =
|
| + ConfigurationPolicyPrefStore::GetChromePolicyDefinitionList();
|
| #if defined(OS_WIN)
|
| - return new ConfigurationPolicyProviderWin(policy_list);
|
| + return new ConfigurationPolicyProviderWin(policy_list);
|
| #elif defined(OS_MACOSX)
|
| - return new ConfigurationPolicyProviderMac(policy_list);
|
| + return new ConfigurationPolicyProviderMac(policy_list);
|
| #elif defined(OS_POSIX)
|
| - FilePath config_dir_path;
|
| - if (PathService::Get(chrome::DIR_POLICY_FILES, &config_dir_path)) {
|
| - return new ConfigDirPolicyProvider(policy_list,
|
| - config_dir_path.Append(FILE_PATH_LITERAL("managed")));
|
| - } else {
|
| - return new DummyConfigurationPolicyProvider(policy_list);
|
| - }
|
| -#else
|
| + FilePath config_dir_path;
|
| + if (PathService::Get(chrome::DIR_POLICY_FILES, &config_dir_path)) {
|
| + return new ConfigDirPolicyProvider(
|
| + policy_list,
|
| + config_dir_path.Append(FILE_PATH_LITERAL("managed")));
|
| + } else {
|
| return new DummyConfigurationPolicyProvider(policy_list);
|
| -#endif
|
| }
|
| +#else
|
| + return new DummyConfigurationPolicyProvider(policy_list);
|
| +#endif
|
| +}
|
|
|
| - static ConfigurationPolicyProvider* CreateRecommendedProvider() {
|
| - const ConfigurationPolicyProvider::PolicyDefinitionList* policy_list =
|
| - ConfigurationPolicyPrefStore::GetChromePolicyDefinitionList();
|
| +ConfigurationPolicyProvider*
|
| + ConfigurationPolicyProviderKeeper::CreateRecommendedProvider() {
|
| + const ConfigurationPolicyProvider::PolicyDefinitionList* policy_list =
|
| + ConfigurationPolicyPrefStore::GetChromePolicyDefinitionList();
|
| #if defined(OS_POSIX) && !defined(OS_MACOSX)
|
| - FilePath config_dir_path;
|
| - if (PathService::Get(chrome::DIR_POLICY_FILES, &config_dir_path)) {
|
| - return new ConfigDirPolicyProvider(policy_list,
|
| - config_dir_path.Append(FILE_PATH_LITERAL("recommended")));
|
| - } else {
|
| - return new DummyConfigurationPolicyProvider(policy_list);
|
| - }
|
| -#else
|
| + FilePath config_dir_path;
|
| + if (PathService::Get(chrome::DIR_POLICY_FILES, &config_dir_path)) {
|
| + return new ConfigDirPolicyProvider(
|
| + policy_list,
|
| + config_dir_path.Append(FILE_PATH_LITERAL("recommended")));
|
| + } else {
|
| return new DummyConfigurationPolicyProvider(policy_list);
|
| -#endif
|
| }
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(ConfigurationPolicyProviderKeeper);
|
| -};
|
| +#else
|
| + return new DummyConfigurationPolicyProvider(policy_list);
|
| +#endif
|
| +}
|
|
|
| const ConfigurationPolicyPrefStore::PolicyToPreferenceMapEntry
|
| - ConfigurationPolicyPrefStore::simple_policy_map_[] = {
|
| + ConfigurationPolicyPrefStore::kSimplePolicyMap[] = {
|
| { Value::TYPE_STRING, kPolicyHomePage, prefs::kHomePage },
|
| { Value::TYPE_BOOLEAN, kPolicyHomepageIsNewTabPage,
|
| - prefs::kHomePageIsNewTabPage },
|
| + prefs::kHomePageIsNewTabPage },
|
| { Value::TYPE_INTEGER, kPolicyRestoreOnStartup,
|
| - prefs::kRestoreOnStartup},
|
| + prefs::kRestoreOnStartup},
|
| { Value::TYPE_LIST, kPolicyURLsToRestoreOnStartup,
|
| - prefs::kURLsToRestoreOnStartup },
|
| + prefs::kURLsToRestoreOnStartup },
|
| { Value::TYPE_BOOLEAN, kPolicyAlternateErrorPagesEnabled,
|
| - prefs::kAlternateErrorPagesEnabled },
|
| + prefs::kAlternateErrorPagesEnabled },
|
| { Value::TYPE_BOOLEAN, kPolicySearchSuggestEnabled,
|
| - prefs::kSearchSuggestEnabled },
|
| + prefs::kSearchSuggestEnabled },
|
| { Value::TYPE_BOOLEAN, kPolicyDnsPrefetchingEnabled,
|
| - prefs::kDnsPrefetchingEnabled },
|
| + prefs::kDnsPrefetchingEnabled },
|
| { Value::TYPE_BOOLEAN, kPolicyDisableSpdy,
|
| - prefs::kDisableSpdy },
|
| + prefs::kDisableSpdy },
|
| { Value::TYPE_BOOLEAN, kPolicySafeBrowsingEnabled,
|
| - prefs::kSafeBrowsingEnabled },
|
| + prefs::kSafeBrowsingEnabled },
|
| { Value::TYPE_BOOLEAN, kPolicyPasswordManagerEnabled,
|
| - prefs::kPasswordManagerEnabled },
|
| + prefs::kPasswordManagerEnabled },
|
| { Value::TYPE_BOOLEAN, kPolicyPasswordManagerAllowShowPasswords,
|
| - prefs::kPasswordManagerAllowShowPasswords },
|
| + prefs::kPasswordManagerAllowShowPasswords },
|
| { Value::TYPE_BOOLEAN, kPolicyPrintingEnabled,
|
| - prefs::kPrintingEnabled },
|
| + prefs::kPrintingEnabled },
|
| { Value::TYPE_BOOLEAN, kPolicyMetricsReportingEnabled,
|
| - prefs::kMetricsReportingEnabled },
|
| + prefs::kMetricsReportingEnabled },
|
| { Value::TYPE_STRING, kPolicyApplicationLocale,
|
| - prefs::kApplicationLocale},
|
| + prefs::kApplicationLocale},
|
| { Value::TYPE_LIST, kPolicyExtensionInstallAllowList,
|
| - prefs::kExtensionInstallAllowList},
|
| + prefs::kExtensionInstallAllowList},
|
| { Value::TYPE_LIST, kPolicyExtensionInstallDenyList,
|
| - prefs::kExtensionInstallDenyList},
|
| + prefs::kExtensionInstallDenyList},
|
| { Value::TYPE_LIST, kPolicyDisabledPlugins,
|
| - prefs::kPluginsPluginsBlacklist},
|
| + prefs::kPluginsPluginsBlacklist},
|
| { Value::TYPE_BOOLEAN, kPolicyShowHomeButton,
|
| - prefs::kShowHomeButton },
|
| + prefs::kShowHomeButton },
|
| { Value::TYPE_BOOLEAN, kPolicyJavascriptEnabled,
|
| - prefs::kWebKitJavascriptEnabled },
|
| + prefs::kWebKitJavascriptEnabled },
|
| { Value::TYPE_BOOLEAN, kPolicySavingBrowserHistoryDisabled,
|
| - prefs::kSavingBrowserHistoryDisabled },
|
| + prefs::kSavingBrowserHistoryDisabled },
|
| { Value::TYPE_BOOLEAN, kPolicyDeveloperToolsDisabled,
|
| - prefs::kDevToolsDisabled },
|
| + prefs::kDevToolsDisabled },
|
| { Value::TYPE_BOOLEAN, kPolicyBlockThirdPartyCookies,
|
| - prefs::kBlockThirdPartyCookies},
|
| + prefs::kBlockThirdPartyCookies},
|
|
|
| #if defined(OS_CHROMEOS)
|
| { Value::TYPE_BOOLEAN, kPolicyChromeOsLockOnIdleSuspend,
|
| - prefs::kEnableScreenLock },
|
| + prefs::kEnableScreenLock },
|
| #endif
|
| };
|
|
|
| const ConfigurationPolicyPrefStore::PolicyToPreferenceMapEntry
|
| - ConfigurationPolicyPrefStore::default_search_policy_map_[] = {
|
| + ConfigurationPolicyPrefStore::kDefaultSearchPolicyMap[] = {
|
| { Value::TYPE_BOOLEAN, kPolicyDefaultSearchProviderEnabled,
|
| - prefs::kDefaultSearchProviderEnabled },
|
| + prefs::kDefaultSearchProviderEnabled },
|
| { Value::TYPE_STRING, kPolicyDefaultSearchProviderName,
|
| - prefs::kDefaultSearchProviderName },
|
| + prefs::kDefaultSearchProviderName },
|
| { Value::TYPE_STRING, kPolicyDefaultSearchProviderKeyword,
|
| - prefs::kDefaultSearchProviderKeyword },
|
| + prefs::kDefaultSearchProviderKeyword },
|
| { Value::TYPE_STRING, kPolicyDefaultSearchProviderSearchURL,
|
| - prefs::kDefaultSearchProviderSearchURL },
|
| + prefs::kDefaultSearchProviderSearchURL },
|
| { Value::TYPE_STRING, kPolicyDefaultSearchProviderSuggestURL,
|
| - prefs::kDefaultSearchProviderSuggestURL },
|
| + prefs::kDefaultSearchProviderSuggestURL },
|
| { Value::TYPE_STRING, kPolicyDefaultSearchProviderIconURL,
|
| - prefs::kDefaultSearchProviderIconURL },
|
| + prefs::kDefaultSearchProviderIconURL },
|
| { Value::TYPE_STRING, kPolicyDefaultSearchProviderEncodings,
|
| - prefs::kDefaultSearchProviderEncodings },
|
| + prefs::kDefaultSearchProviderEncodings },
|
| };
|
|
|
| const ConfigurationPolicyPrefStore::PolicyToPreferenceMapEntry
|
| - ConfigurationPolicyPrefStore::proxy_policy_map_[] = {
|
| + ConfigurationPolicyPrefStore::kProxyPolicyMap[] = {
|
| { Value::TYPE_STRING, kPolicyProxyServer, prefs::kProxyServer },
|
| { Value::TYPE_STRING, kPolicyProxyPacUrl, prefs::kProxyPacUrl },
|
| { Value::TYPE_STRING, kPolicyProxyBypassList, prefs::kProxyBypassList }
|
| @@ -171,82 +178,69 @@ const ConfigurationPolicyPrefStore::PolicyToPreferenceMapEntry
|
| ConfigurationPolicyProvider::PolicyDefinitionList*
|
| ConfigurationPolicyPrefStore::GetChromePolicyDefinitionList() {
|
| static ConfigurationPolicyProvider::PolicyDefinitionList::Entry entries[] = {
|
| - { ConfigurationPolicyStore::kPolicyHomePage,
|
| - Value::TYPE_STRING, key::kHomepageLocation },
|
| - { ConfigurationPolicyStore::kPolicyHomepageIsNewTabPage,
|
| - Value::TYPE_BOOLEAN, key::kHomepageIsNewTabPage },
|
| - { ConfigurationPolicyStore::kPolicyRestoreOnStartup,
|
| - Value::TYPE_INTEGER, key::kRestoreOnStartup },
|
| - { ConfigurationPolicyStore::kPolicyURLsToRestoreOnStartup,
|
| - Value::TYPE_LIST, key::kURLsToRestoreOnStartup },
|
| - { ConfigurationPolicyStore::kPolicyDefaultSearchProviderEnabled,
|
| - Value::TYPE_BOOLEAN, key::kDefaultSearchProviderEnabled },
|
| - { ConfigurationPolicyStore::kPolicyDefaultSearchProviderName,
|
| - Value::TYPE_STRING, key::kDefaultSearchProviderName },
|
| - { ConfigurationPolicyStore::kPolicyDefaultSearchProviderKeyword,
|
| - Value::TYPE_STRING, key::kDefaultSearchProviderKeyword },
|
| - { ConfigurationPolicyStore::kPolicyDefaultSearchProviderSearchURL,
|
| - Value::TYPE_STRING, key::kDefaultSearchProviderSearchURL },
|
| - { ConfigurationPolicyStore::kPolicyDefaultSearchProviderSuggestURL,
|
| - Value::TYPE_STRING, key::kDefaultSearchProviderSuggestURL },
|
| - { ConfigurationPolicyStore::kPolicyDefaultSearchProviderIconURL,
|
| - Value::TYPE_STRING, key::kDefaultSearchProviderIconURL },
|
| - { ConfigurationPolicyStore::kPolicyDefaultSearchProviderEncodings,
|
| - Value::TYPE_STRING, key::kDefaultSearchProviderEncodings },
|
| - { ConfigurationPolicyStore::kPolicyProxyServerMode,
|
| - Value::TYPE_INTEGER, key::kProxyServerMode },
|
| - { ConfigurationPolicyStore::kPolicyProxyServer,
|
| - Value::TYPE_STRING, key::kProxyServer },
|
| - { ConfigurationPolicyStore::kPolicyProxyPacUrl,
|
| - Value::TYPE_STRING, key::kProxyPacUrl },
|
| - { ConfigurationPolicyStore::kPolicyProxyBypassList,
|
| - Value::TYPE_STRING, key::kProxyBypassList },
|
| - { ConfigurationPolicyStore::kPolicyAlternateErrorPagesEnabled,
|
| - Value::TYPE_BOOLEAN, key::kAlternateErrorPagesEnabled },
|
| - { ConfigurationPolicyStore::kPolicySearchSuggestEnabled,
|
| - Value::TYPE_BOOLEAN, key::kSearchSuggestEnabled },
|
| - { ConfigurationPolicyStore::kPolicyDnsPrefetchingEnabled,
|
| - Value::TYPE_BOOLEAN, key::kDnsPrefetchingEnabled },
|
| - { ConfigurationPolicyStore::kPolicyDisableSpdy,
|
| - Value::TYPE_BOOLEAN, key::kDisableSpdy },
|
| - { ConfigurationPolicyStore::kPolicySafeBrowsingEnabled,
|
| - Value::TYPE_BOOLEAN, key::kSafeBrowsingEnabled },
|
| - { ConfigurationPolicyStore::kPolicyMetricsReportingEnabled,
|
| - Value::TYPE_BOOLEAN, key::kMetricsReportingEnabled },
|
| - { ConfigurationPolicyStore::kPolicyPasswordManagerEnabled,
|
| - Value::TYPE_BOOLEAN, key::kPasswordManagerEnabled },
|
| - { ConfigurationPolicyStore::kPolicyPasswordManagerAllowShowPasswords,
|
| - Value::TYPE_BOOLEAN, key::kPasswordManagerAllowShowPasswords },
|
| - { ConfigurationPolicyStore::kPolicyAutoFillEnabled,
|
| - Value::TYPE_BOOLEAN, key::kAutoFillEnabled },
|
| - { ConfigurationPolicyStore::kPolicyDisabledPlugins,
|
| - Value::TYPE_LIST, key::kDisabledPlugins },
|
| - { ConfigurationPolicyStore::kPolicyApplicationLocale,
|
| - Value::TYPE_STRING, key::kApplicationLocaleValue },
|
| - { ConfigurationPolicyStore::kPolicySyncDisabled,
|
| - Value::TYPE_BOOLEAN, key::kSyncDisabled },
|
| - { ConfigurationPolicyStore::kPolicyExtensionInstallAllowList,
|
| - Value::TYPE_LIST, key::kExtensionInstallAllowList },
|
| - { ConfigurationPolicyStore::kPolicyExtensionInstallDenyList,
|
| - Value::TYPE_LIST, key::kExtensionInstallDenyList },
|
| - { ConfigurationPolicyStore::kPolicyExtensionInstallForceList,
|
| - Value::TYPE_LIST, key::kExtensionInstallForceList },
|
| - { ConfigurationPolicyStore::kPolicyShowHomeButton,
|
| - Value::TYPE_BOOLEAN, key::kShowHomeButton },
|
| - { ConfigurationPolicyStore::kPolicyPrintingEnabled,
|
| - Value::TYPE_BOOLEAN, key::kPrintingEnabled },
|
| - { ConfigurationPolicyStore::kPolicyJavascriptEnabled,
|
| - Value::TYPE_BOOLEAN, key::kJavascriptEnabled },
|
| - { ConfigurationPolicyStore::kPolicySavingBrowserHistoryDisabled,
|
| - Value::TYPE_BOOLEAN, key::kSavingBrowserHistoryDisabled },
|
| - { ConfigurationPolicyStore::kPolicyDeveloperToolsDisabled,
|
| - Value::TYPE_BOOLEAN, key::kDeveloperToolsDisabled },
|
| - { ConfigurationPolicyStore::kPolicyBlockThirdPartyCookies,
|
| - Value::TYPE_BOOLEAN, key::kBlockThirdPartyCookies },
|
| + { kPolicyHomePage, Value::TYPE_STRING, key::kHomepageLocation },
|
| + { kPolicyHomepageIsNewTabPage, Value::TYPE_BOOLEAN,
|
| + key::kHomepageIsNewTabPage },
|
| + { kPolicyRestoreOnStartup, Value::TYPE_INTEGER, key::kRestoreOnStartup },
|
| + { kPolicyURLsToRestoreOnStartup, Value::TYPE_LIST,
|
| + key::kURLsToRestoreOnStartup },
|
| + { kPolicyDefaultSearchProviderEnabled, Value::TYPE_BOOLEAN,
|
| + key::kDefaultSearchProviderEnabled },
|
| + { kPolicyDefaultSearchProviderName, Value::TYPE_STRING,
|
| + key::kDefaultSearchProviderName },
|
| + { kPolicyDefaultSearchProviderKeyword, Value::TYPE_STRING,
|
| + key::kDefaultSearchProviderKeyword },
|
| + { kPolicyDefaultSearchProviderSearchURL, Value::TYPE_STRING,
|
| + key::kDefaultSearchProviderSearchURL },
|
| + { kPolicyDefaultSearchProviderSuggestURL, Value::TYPE_STRING,
|
| + key::kDefaultSearchProviderSuggestURL },
|
| + { kPolicyDefaultSearchProviderIconURL, Value::TYPE_STRING,
|
| + key::kDefaultSearchProviderIconURL },
|
| + { kPolicyDefaultSearchProviderEncodings, Value::TYPE_STRING,
|
| + key::kDefaultSearchProviderEncodings },
|
| + { kPolicyProxyServerMode, Value::TYPE_INTEGER, key::kProxyServerMode },
|
| + { kPolicyProxyServer, Value::TYPE_STRING, key::kProxyServer },
|
| + { kPolicyProxyPacUrl, Value::TYPE_STRING, key::kProxyPacUrl },
|
| + { kPolicyProxyBypassList, Value::TYPE_STRING, key::kProxyBypassList },
|
| + { kPolicyAlternateErrorPagesEnabled, Value::TYPE_BOOLEAN,
|
| + key::kAlternateErrorPagesEnabled },
|
| + { kPolicySearchSuggestEnabled, Value::TYPE_BOOLEAN,
|
| + key::kSearchSuggestEnabled },
|
| + { kPolicyDnsPrefetchingEnabled, Value::TYPE_BOOLEAN,
|
| + key::kDnsPrefetchingEnabled },
|
| + { kPolicyDisableSpdy, Value::TYPE_BOOLEAN, key::kDisableSpdy },
|
| + { kPolicySafeBrowsingEnabled, Value::TYPE_BOOLEAN,
|
| + key::kSafeBrowsingEnabled },
|
| + { kPolicyMetricsReportingEnabled, Value::TYPE_BOOLEAN,
|
| + key::kMetricsReportingEnabled },
|
| + { kPolicyPasswordManagerEnabled, Value::TYPE_BOOLEAN,
|
| + key::kPasswordManagerEnabled },
|
| + { kPolicyPasswordManagerAllowShowPasswords, Value::TYPE_BOOLEAN,
|
| + key::kPasswordManagerAllowShowPasswords },
|
| + { kPolicyAutoFillEnabled, Value::TYPE_BOOLEAN, key::kAutoFillEnabled },
|
| + { kPolicyDisabledPlugins, Value::TYPE_LIST, key::kDisabledPlugins },
|
| + { kPolicyApplicationLocale, Value::TYPE_STRING,
|
| + key::kApplicationLocaleValue },
|
| + { kPolicySyncDisabled, Value::TYPE_BOOLEAN, key::kSyncDisabled },
|
| + { kPolicyExtensionInstallAllowList, Value::TYPE_LIST,
|
| + key::kExtensionInstallAllowList },
|
| + { kPolicyExtensionInstallDenyList, Value::TYPE_LIST,
|
| + key::kExtensionInstallDenyList },
|
| + { kPolicyExtensionInstallForceList, Value::TYPE_LIST,
|
| + key::kExtensionInstallForceList },
|
| + { kPolicyShowHomeButton, Value::TYPE_BOOLEAN, key::kShowHomeButton },
|
| + { kPolicyPrintingEnabled, Value::TYPE_BOOLEAN, key::kPrintingEnabled },
|
| + { kPolicyJavascriptEnabled, Value::TYPE_BOOLEAN, key::kJavascriptEnabled },
|
| + { kPolicySavingBrowserHistoryDisabled, Value::TYPE_BOOLEAN,
|
| + key::kSavingBrowserHistoryDisabled },
|
| + { kPolicyDeveloperToolsDisabled, Value::TYPE_BOOLEAN,
|
| + key::kDeveloperToolsDisabled },
|
| + { kPolicyBlockThirdPartyCookies, Value::TYPE_BOOLEAN,
|
| + key::kBlockThirdPartyCookies },
|
|
|
| #if defined(OS_CHROMEOS)
|
| - { ConfigurationPolicyStore::kPolicyChromeOsLockOnIdleSuspend,
|
| - Value::TYPE_BOOLEAN, key::kChromeOsLockOnIdleSuspend },
|
| + { kPolicyChromeOsLockOnIdleSuspend, Value::TYPE_BOOLEAN,
|
| + key::kChromeOsLockOnIdleSuspend },
|
| #endif
|
| };
|
|
|
| @@ -267,21 +261,19 @@ ConfigurationPolicyPrefStore::ConfigurationPolicyPrefStore(
|
| use_system_proxy_(false) {
|
| }
|
|
|
| -ConfigurationPolicyPrefStore::~ConfigurationPolicyPrefStore() {
|
| -}
|
| -
|
| PrefStore::PrefReadError ConfigurationPolicyPrefStore::ReadPrefs() {
|
| proxy_disabled_ = false;
|
| proxy_configuration_specified_ = false;
|
| lower_priority_proxy_settings_overridden_ = false;
|
|
|
| - bool success = (provider_ == NULL || provider_->Provide(this));
|
| + const bool success = (provider_ == NULL || provider_->Provide(this));
|
| FinalizeDefaultSearchPolicySettings();
|
| return success ? PrefStore::PREF_READ_ERROR_NONE :
|
| - PrefStore::PREF_READ_ERROR_OTHER;
|
| + PrefStore::PREF_READ_ERROR_OTHER;
|
| }
|
|
|
| -void ConfigurationPolicyPrefStore::Apply(PolicyType policy, Value* value) {
|
| +void ConfigurationPolicyPrefStore::Apply(ConfigurationPolicyType policy,
|
| + Value* value) {
|
| if (ApplyProxyPolicy(policy, value))
|
| return;
|
|
|
| @@ -291,12 +283,12 @@ void ConfigurationPolicyPrefStore::Apply(PolicyType policy, Value* value) {
|
| if (ApplyAutoFillPolicy(policy, value))
|
| return;
|
|
|
| - if (ApplyPolicyFromMap(policy, value, default_search_policy_map_,
|
| - arraysize(default_search_policy_map_)))
|
| + if (ApplyPolicyFromMap(policy, value, kDefaultSearchPolicyMap,
|
| + arraysize(kDefaultSearchPolicyMap)))
|
| return;
|
|
|
| - if (ApplyPolicyFromMap(policy, value, simple_policy_map_,
|
| - arraysize(simple_policy_map_)))
|
| + if (ApplyPolicyFromMap(policy, value, kSimplePolicyMap,
|
| + arraysize(kSimplePolicyMap)))
|
| return;
|
|
|
| // Other policy implementations go here.
|
| @@ -324,16 +316,18 @@ ConfigurationPolicyPrefStore::CreateRecommendedPolicyPrefStore() {
|
| void ConfigurationPolicyPrefStore::GetProxyPreferenceSet(
|
| ProxyPreferenceSet* proxy_pref_set) {
|
| proxy_pref_set->clear();
|
| - for (size_t current = 0; current < arraysize(proxy_policy_map_); ++current) {
|
| - proxy_pref_set->insert(proxy_policy_map_[current].preference_path);
|
| + for (size_t current = 0; current < arraysize(kProxyPolicyMap); ++current) {
|
| + proxy_pref_set->insert(kProxyPolicyMap[current].preference_path);
|
| }
|
| proxy_pref_set->insert(prefs::kNoProxyServer);
|
| proxy_pref_set->insert(prefs::kProxyAutoDetect);
|
| }
|
|
|
| const ConfigurationPolicyPrefStore::PolicyToPreferenceMapEntry*
|
| -ConfigurationPolicyPrefStore::FindPolicyInMap(PolicyType policy,
|
| - const PolicyToPreferenceMapEntry* map, int table_size) {
|
| +ConfigurationPolicyPrefStore::FindPolicyInMap(
|
| + ConfigurationPolicyType policy,
|
| + const PolicyToPreferenceMapEntry* map,
|
| + int table_size) const {
|
| for (int i = 0; i < table_size; ++i) {
|
| if (map[i].policy_type == policy)
|
| return map + i;
|
| @@ -343,36 +337,41 @@ ConfigurationPolicyPrefStore::FindPolicyInMap(PolicyType policy,
|
|
|
| bool ConfigurationPolicyPrefStore::RemovePreferencesOfMap(
|
| const PolicyToPreferenceMapEntry* map, int table_size) {
|
| - bool found_one = false;
|
| + bool found_any = false;
|
| for (int i = 0; i < table_size; ++i) {
|
| if (prefs_->Remove(map[i].preference_path, NULL))
|
| - found_one = true;
|
| + found_any = true;
|
| }
|
| - return found_one;
|
| + return found_any;
|
| }
|
|
|
| -bool ConfigurationPolicyPrefStore::ApplyPolicyFromMap(PolicyType policy,
|
| - Value* value, const PolicyToPreferenceMapEntry map[], int size) {
|
| - const PolicyToPreferenceMapEntry* end = map + size;
|
| - for (const PolicyToPreferenceMapEntry* current = map;
|
| - current != end; ++current) {
|
| - if (current->policy_type == policy) {
|
| - DCHECK(current->value_type == value->GetType());
|
| - prefs_->Set(current->preference_path, value);
|
| +bool ConfigurationPolicyPrefStore::ApplyPolicyFromMap(
|
| + ConfigurationPolicyType policy,
|
| + Value* value,
|
| + const PolicyToPreferenceMapEntry* map,
|
| + int size) {
|
| + for (int current = 0; current < size; ++current) {
|
| + if (map[current].policy_type == policy) {
|
| + DCHECK_EQ(map[current].value_type, value->GetType())
|
| + << "mismatch in provided and expected policy value for preferences"
|
| + << map[current].preference_path << ". expected = "
|
| + << map[current].value_type << ", actual = "<< value->GetType();
|
| + prefs_->Set(map[current].preference_path, value);
|
| return true;
|
| }
|
| }
|
| return false;
|
| }
|
|
|
| -bool ConfigurationPolicyPrefStore::ApplyProxyPolicy(PolicyType policy,
|
| - Value* value) {
|
| +bool ConfigurationPolicyPrefStore::ApplyProxyPolicy(
|
| + ConfigurationPolicyType policy,
|
| + Value* value) {
|
| bool result = false;
|
| bool warn_about_proxy_disable_config = false;
|
| bool warn_about_proxy_system_config = false;
|
|
|
| const PolicyToPreferenceMapEntry* match_entry =
|
| - FindPolicyInMap(policy, proxy_policy_map_, arraysize(proxy_policy_map_));
|
| + FindPolicyInMap(policy, kProxyPolicyMap, arraysize(kProxyPolicyMap));
|
|
|
| // When the first proxy-related policy is applied, ALL proxy-related
|
| // preferences that have been set by command-line switches, extensions,
|
| @@ -383,7 +382,7 @@ bool ConfigurationPolicyPrefStore::ApplyProxyPolicy(PolicyType policy,
|
| // policy.
|
| if (!lower_priority_proxy_settings_overridden_ &&
|
| (match_entry ||
|
| - policy == ConfigurationPolicyPrefStore::kPolicyProxyServerMode)) {
|
| + policy == kPolicyProxyServerMode)) {
|
| ProxyPreferenceSet proxy_preference_set;
|
| GetProxyPreferenceSet(&proxy_preference_set);
|
| for (ProxyPreferenceSet::const_iterator i = proxy_preference_set.begin();
|
| @@ -394,25 +393,25 @@ bool ConfigurationPolicyPrefStore::ApplyProxyPolicy(PolicyType policy,
|
| }
|
|
|
| // Translate the proxy policy into preferences.
|
| - if (policy == ConfigurationPolicyStore::kPolicyProxyServerMode) {
|
| + if (policy == kPolicyProxyServerMode) {
|
| int int_value;
|
| bool proxy_auto_detect = false;
|
| if (value->GetAsInteger(&int_value)) {
|
| result = true;
|
| switch (int_value) {
|
| - case ConfigurationPolicyStore::kPolicyNoProxyServerMode:
|
| + case kPolicyNoProxyServerMode:
|
| if (!proxy_disabled_) {
|
| if (proxy_configuration_specified_)
|
| warn_about_proxy_disable_config = true;
|
| proxy_disabled_ = true;
|
| }
|
| break;
|
| - case ConfigurationPolicyStore::kPolicyAutoDetectProxyMode:
|
| + case kPolicyAutoDetectProxyMode:
|
| proxy_auto_detect = true;
|
| break;
|
| - case ConfigurationPolicyStore::kPolicyManuallyConfiguredProxyMode:
|
| + case kPolicyManuallyConfiguredProxyMode:
|
| break;
|
| - case ConfigurationPolicyStore::kPolicyUseSystemProxyMode:
|
| + case kPolicyUseSystemProxyMode:
|
| if (!use_system_proxy_) {
|
| if (proxy_configuration_specified_)
|
| warn_about_proxy_system_config = true;
|
| @@ -469,9 +468,9 @@ bool ConfigurationPolicyPrefStore::ApplyProxyPolicy(PolicyType policy,
|
| return result;
|
| }
|
|
|
| -bool ConfigurationPolicyPrefStore::ApplySyncPolicy(PolicyType policy,
|
| - Value* value) {
|
| - if (policy == ConfigurationPolicyStore::kPolicySyncDisabled) {
|
| +bool ConfigurationPolicyPrefStore::ApplySyncPolicy(
|
| + ConfigurationPolicyType policy, Value* value) {
|
| + if (policy == kPolicySyncDisabled) {
|
| bool disable_sync;
|
| if (value->GetAsBoolean(&disable_sync) && disable_sync)
|
| prefs_->Set(prefs::kSyncManaged, value);
|
| @@ -482,9 +481,9 @@ bool ConfigurationPolicyPrefStore::ApplySyncPolicy(PolicyType policy,
|
| return false;
|
| }
|
|
|
| -bool ConfigurationPolicyPrefStore::ApplyAutoFillPolicy(PolicyType policy,
|
| - Value* value) {
|
| - if (policy == ConfigurationPolicyStore::kPolicyAutoFillEnabled) {
|
| +bool ConfigurationPolicyPrefStore::ApplyAutoFillPolicy(
|
| + ConfigurationPolicyType policy, Value* value) {
|
| + if (policy == kPolicyAutoFillEnabled) {
|
| bool auto_fill_enabled;
|
| if (value->GetAsBoolean(&auto_fill_enabled) && !auto_fill_enabled)
|
| prefs_->Set(prefs::kAutoFillEnabled, Value::CreateBooleanValue(false));
|
| @@ -501,6 +500,8 @@ void ConfigurationPolicyPrefStore::EnsureStringPrefExists(
|
| prefs_->SetString(path, value);
|
| }
|
|
|
| +namespace {
|
| +
|
| // Implementation of SearchTermsData just for validation.
|
| class SearchTermsDataForValidation : public SearchTermsData {
|
| public:
|
| @@ -515,25 +516,26 @@ class SearchTermsDataForValidation : public SearchTermsData {
|
| }
|
| #if defined(OS_WIN) && defined(GOOGLE_CHROME_BUILD)
|
| virtual std::wstring GetRlzParameterValue() const {
|
| - return L"";
|
| + return std::wstring();
|
| }
|
| #endif
|
| private:
|
| DISALLOW_COPY_AND_ASSIGN(SearchTermsDataForValidation);
|
| };
|
|
|
| +} // namepsace
|
|
|
| void ConfigurationPolicyPrefStore::FinalizeDefaultSearchPolicySettings() {
|
| bool enabled = true;
|
| if (prefs_->GetBoolean(prefs::kDefaultSearchProviderEnabled, &enabled) &&
|
| !enabled) {
|
| // If default search is disabled, we ignore the other fields.
|
| - prefs_->SetString(prefs::kDefaultSearchProviderName, "");
|
| - prefs_->SetString(prefs::kDefaultSearchProviderSearchURL, "");
|
| - prefs_->SetString(prefs::kDefaultSearchProviderSuggestURL, "");
|
| - prefs_->SetString(prefs::kDefaultSearchProviderIconURL, "");
|
| - prefs_->SetString(prefs::kDefaultSearchProviderEncodings, "");
|
| - prefs_->SetString(prefs::kDefaultSearchProviderKeyword, "");
|
| + prefs_->SetString(prefs::kDefaultSearchProviderName, std::string());
|
| + prefs_->SetString(prefs::kDefaultSearchProviderSearchURL, std::string());
|
| + prefs_->SetString(prefs::kDefaultSearchProviderSuggestURL, std::string());
|
| + prefs_->SetString(prefs::kDefaultSearchProviderIconURL, std::string());
|
| + prefs_->SetString(prefs::kDefaultSearchProviderEncodings, std::string());
|
| + prefs_->SetString(prefs::kDefaultSearchProviderKeyword, std::string());
|
| return;
|
| }
|
| std::string search_url;
|
| @@ -541,7 +543,7 @@ void ConfigurationPolicyPrefStore::FinalizeDefaultSearchPolicySettings() {
|
| if (prefs_->GetString(prefs::kDefaultSearchProviderSearchURL, &search_url) &&
|
| !search_url.empty()) {
|
| SearchTermsDataForValidation search_terms_data;
|
| - TemplateURLRef search_url_ref(search_url, 0, 0);
|
| + const TemplateURLRef search_url_ref(search_url, 0, 0);
|
| // It must support replacement (which implies it is valid).
|
| if (search_url_ref.SupportsReplacementUsingTermsData(search_terms_data)) {
|
| // The other entries are optional. Just make sure that they are all
|
| @@ -559,14 +561,15 @@ void ConfigurationPolicyPrefStore::FinalizeDefaultSearchPolicySettings() {
|
| GURL(search_url).host());
|
|
|
| // And clear the IDs since these are not specified via policy.
|
| - prefs_->SetString(prefs::kDefaultSearchProviderID, "");
|
| - prefs_->SetString(prefs::kDefaultSearchProviderPrepopulateID, "");
|
| + prefs_->SetString(prefs::kDefaultSearchProviderID, std::string());
|
| + prefs_->SetString(prefs::kDefaultSearchProviderPrepopulateID,
|
| + std::string());
|
| return;
|
| }
|
| }
|
| // Required entries are not there. Remove any related entries.
|
| - RemovePreferencesOfMap(default_search_policy_map_,
|
| - arraysize(default_search_policy_map_));
|
| + RemovePreferencesOfMap(kDefaultSearchPolicyMap,
|
| + arraysize(kDefaultSearchPolicyMap));
|
| }
|
|
|
| } // namespace policy
|
|
|