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