| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 <map> | 7 #include <map> |
| 8 #include <set> | 8 #include <set> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 247 { Value::TYPE_STRING, kPolicyDefaultSearchProviderSearchURL, | 247 { Value::TYPE_STRING, kPolicyDefaultSearchProviderSearchURL, |
| 248 prefs::kDefaultSearchProviderSearchURL }, | 248 prefs::kDefaultSearchProviderSearchURL }, |
| 249 { Value::TYPE_STRING, kPolicyDefaultSearchProviderSuggestURL, | 249 { Value::TYPE_STRING, kPolicyDefaultSearchProviderSuggestURL, |
| 250 prefs::kDefaultSearchProviderSuggestURL }, | 250 prefs::kDefaultSearchProviderSuggestURL }, |
| 251 { Value::TYPE_STRING, kPolicyDefaultSearchProviderIconURL, | 251 { Value::TYPE_STRING, kPolicyDefaultSearchProviderIconURL, |
| 252 prefs::kDefaultSearchProviderIconURL }, | 252 prefs::kDefaultSearchProviderIconURL }, |
| 253 { Value::TYPE_STRING, kPolicyDefaultSearchProviderEncodings, | 253 { Value::TYPE_STRING, kPolicyDefaultSearchProviderEncodings, |
| 254 prefs::kDefaultSearchProviderEncodings }, | 254 prefs::kDefaultSearchProviderEncodings }, |
| 255 }; | 255 }; |
| 256 | 256 |
| 257 const ConfigurationPolicyPrefKeeper::PolicyToPreferenceMapEntry | |
| 258 ConfigurationPolicyPrefKeeper::kProxyPolicyMap[] = { | |
| 259 { Value::TYPE_STRING, kPolicyProxyServer, prefs::kProxyServer }, | |
| 260 { Value::TYPE_STRING, kPolicyProxyPacUrl, prefs::kProxyPacUrl }, | |
| 261 { Value::TYPE_STRING, kPolicyProxyBypassList, prefs::kProxyBypassList } | |
| 262 }; | |
| 263 | |
| 264 ConfigurationPolicyPrefKeeper::ConfigurationPolicyPrefKeeper( | 257 ConfigurationPolicyPrefKeeper::ConfigurationPolicyPrefKeeper( |
| 265 ConfigurationPolicyProvider* provider) | 258 ConfigurationPolicyProvider* provider) |
| 266 : lower_priority_proxy_settings_overridden_(false), | 259 : lower_priority_proxy_settings_overridden_(false), |
| 267 proxy_disabled_(false), | 260 proxy_disabled_(false), |
| 268 proxy_configuration_specified_(false), | 261 proxy_configuration_specified_(false), |
| 269 use_system_proxy_(false) { | 262 use_system_proxy_(false) { |
| 270 if (!provider->Provide(this)) | 263 if (!provider->Provide(this)) |
| 271 LOG(WARNING) << "Failed to get policy from provider."; | 264 LOG(WARNING) << "Failed to get policy from provider."; |
| 272 FinalizeProxyPolicySettings(); | 265 FinalizeProxyPolicySettings(); |
| 273 FinalizeDefaultSearchPolicySettings(); | 266 FinalizeDefaultSearchPolicySettings(); |
| (...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 639 case kPolicyUseSystemProxyServerMode: | 632 case kPolicyUseSystemProxyServerMode: |
| 640 mode = ProxyPrefs::MODE_SYSTEM; | 633 mode = ProxyPrefs::MODE_SYSTEM; |
| 641 break; | 634 break; |
| 642 default: | 635 default: |
| 643 mode = ProxyPrefs::MODE_DIRECT; | 636 mode = ProxyPrefs::MODE_DIRECT; |
| 644 NOTREACHED(); | 637 NOTREACHED(); |
| 645 } | 638 } |
| 646 } else { | 639 } else { |
| 647 return; | 640 return; |
| 648 } | 641 } |
| 649 prefs_.SetValue(prefs::kProxyMode, Value::CreateIntegerValue(mode)); | 642 switch (mode) { |
| 650 | 643 case ProxyPrefs::MODE_DIRECT: |
| 651 if (HasProxyPolicy(kPolicyProxyServer)) { | 644 prefs_.SetValue(prefs::kProxy, ProxyPrefsDictionary::CreateDirect()); |
| 652 prefs_.SetValue(prefs::kProxyServer, proxy_policies_[kPolicyProxyServer]); | 645 break; |
| 653 proxy_policies_[kPolicyProxyServer] = NULL; | 646 case ProxyPrefs::MODE_AUTO_DETECT: |
| 654 } else { | 647 prefs_.SetValue(prefs::kProxy, ProxyPrefsDictionary::CreateAutoDetect()); |
| 655 prefs_.SetValue(prefs::kProxyServer, Value::CreateNullValue()); | 648 break; |
| 656 } | 649 case ProxyPrefs::MODE_PAC_SCRIPT: { |
| 657 if (HasProxyPolicy(kPolicyProxyPacUrl)) { | 650 std::string pac_url; |
| 658 prefs_.SetValue(prefs::kProxyPacUrl, proxy_policies_[kPolicyProxyPacUrl]); | 651 proxy_policies_[kPolicyProxyPacUrl]->GetAsString(&pac_url); |
| 659 proxy_policies_[kPolicyProxyPacUrl] = NULL; | 652 prefs_.SetValue(prefs::kProxy, |
| 660 } else { | 653 ProxyPrefsDictionary::CreatePacScript(pac_url)); |
| 661 prefs_.SetValue(prefs::kProxyPacUrl, Value::CreateNullValue()); | 654 break; |
| 662 } | 655 } |
| 663 if (HasProxyPolicy(kPolicyProxyBypassList)) { | 656 case ProxyPrefs::MODE_FIXED_SERVERS: { |
| 664 prefs_.SetValue(prefs::kProxyBypassList, | 657 std::string proxy_server; |
| 665 proxy_policies_[kPolicyProxyBypassList]); | 658 proxy_policies_[kPolicyProxyServer]->GetAsString(&proxy_server); |
| 666 proxy_policies_[kPolicyProxyBypassList] = NULL; | 659 std::string bypass_list; |
| 667 } else { | 660 if (HasProxyPolicy(kPolicyProxyBypassList)) |
| 668 prefs_.SetValue(prefs::kProxyBypassList, Value::CreateNullValue()); | 661 proxy_policies_[kPolicyProxyBypassList]->GetAsString(&bypass_list); |
| 662 prefs_.SetValue(prefs::kProxy, |
| 663 ProxyPrefsDictionary::CreateFixedServers(proxy_server, |
| 664 bypass_list)); |
| 665 break; |
| 666 } |
| 667 case ProxyPrefs::MODE_SYSTEM: |
| 668 prefs_.SetValue(prefs::kProxy, |
| 669 ProxyPrefsDictionary::CreateSystem()); |
| 670 break; |
| 671 case ProxyPrefs::kModeCount: |
| 672 NOTREACHED(); |
| 669 } | 673 } |
| 670 } | 674 } |
| 671 | 675 |
| 672 bool ConfigurationPolicyPrefKeeper::HasProxyPolicy( | 676 bool ConfigurationPolicyPrefKeeper::HasProxyPolicy( |
| 673 ConfigurationPolicyType policy) const { | 677 ConfigurationPolicyType policy) const { |
| 674 std::map<ConfigurationPolicyType, Value*>::const_iterator iter; | 678 std::map<ConfigurationPolicyType, Value*>::const_iterator iter; |
| 675 iter = proxy_policies_.find(policy); | 679 iter = proxy_policies_.find(policy); |
| 676 return iter != proxy_policies_.end() && | 680 return iter != proxy_policies_.end() && |
| 677 iter->second && !iter->second->IsType(Value::TYPE_NULL); | 681 iter->second && !iter->second->IsType(Value::TYPE_NULL); |
| 678 } | 682 } |
| (...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 881 // Update the initialization flag. | 885 // Update the initialization flag. |
| 882 if (!initialization_complete_ && | 886 if (!initialization_complete_ && |
| 883 provider_->IsInitializationComplete()) { | 887 provider_->IsInitializationComplete()) { |
| 884 initialization_complete_ = true; | 888 initialization_complete_ = true; |
| 885 FOR_EACH_OBSERVER(PrefStore::Observer, observers_, | 889 FOR_EACH_OBSERVER(PrefStore::Observer, observers_, |
| 886 OnInitializationCompleted()); | 890 OnInitializationCompleted()); |
| 887 } | 891 } |
| 888 } | 892 } |
| 889 | 893 |
| 890 } // namespace policy | 894 } // namespace policy |
| OLD | NEW |