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

Unified Diff: chrome/browser/policy/configuration_policy_pref_store.cc

Issue 5958014: Policy: Add ProxyMode and deprecate ProxyServerMode. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: small tweaks Created 10 years 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 side-by-side diff with in-line comments
Download patch
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 23e65106c3adebf2a9f45feb3ca8c79b8789af5d..9c0fd8f06e86b19013b46e39b644d3811638ecee 100644
--- a/chrome/browser/policy/configuration_policy_pref_store.cc
+++ b/chrome/browser/policy/configuration_policy_pref_store.cc
@@ -371,6 +371,7 @@ bool ConfigurationPolicyPrefKeeper::ApplyProxyPolicy(
// FinalizeProxyPolicySettings() is called to determine whether the presented
// values were correct and apply them in that case.
if (policy == kPolicyProxyMode ||
+ policy == kPolicyProxyServerMode ||
policy == kPolicyProxyServer ||
policy == kPolicyProxyPacUrl ||
policy == kPolicyProxyBypassList) {
@@ -498,96 +499,158 @@ void ConfigurationPolicyPrefKeeper::FinalizeProxyPolicySettings() {
bool ConfigurationPolicyPrefKeeper::CheckProxySettings() {
bool mode = HasProxyPolicy(kPolicyProxyMode);
battre 2011/01/03 13:19:16 Add comment "deprecated"?
danno 2011/01/07 12:24:25 Done.
+ bool server_mode = HasProxyPolicy(kPolicyProxyServerMode);
bool server = HasProxyPolicy(kPolicyProxyServer);
bool pac_url = HasProxyPolicy(kPolicyProxyPacUrl);
bool bypass_list = HasProxyPolicy(kPolicyProxyBypassList);
- if ((server || pac_url || bypass_list) && !mode) {
+ if ((server || pac_url || bypass_list) && !(mode || server_mode)) {
LOG(WARNING) << "A centrally-administered policy defines proxy setting"
<< " details without setting a proxy mode.";
return false;
}
- if (!mode)
- return true;
+ // If there's a server mode, convert it info a mode.
gfeher 2011/01/03 10:30:10 Not: into
danno 2011/01/07 12:24:25 Done.
+ std::string mode_value;
+ if (mode) {
+ if (!proxy_policies_[kPolicyProxyMode]->GetAsString(&mode_value)) {
+ LOG(WARNING) << "Invalid ProxyMode value.";
+ return false;
+ }
+ } else if (server_mode) {
+ int server_mode_value;
+ if (!proxy_policies_[kPolicyProxyServerMode]->GetAsInteger(
+ &server_mode_value)) {
+ LOG(WARNING) << "Invalid ProxyServerMode value.";
+ return false;
+ }
- int mode_value;
- if (!proxy_policies_[kPolicyProxyMode]->GetAsInteger(&mode_value)) {
- LOG(WARNING) << "Invalid proxy mode value.";
- return false;
+ switch (server_mode_value) {
+ case kPolicyNoProxyServerMode:
+ mode_value = ProxyPrefs::kDirectProxyModeName;
+ break;
+ case kPolicyAutoDetectProxyServerMode:
+ mode_value = ProxyPrefs::kAutoDetectProxyModeName;
+ break;
+ case kPolicyManuallyConfiguredProxyServerMode:
+ if (server && pac_url) {
+ LOG(WARNING) << "A centrally-administered policy dictates that"
+ << " both a fixed proxy server and a .pac url. should"
+ << " be used for proxy configuration.";
+ return false;
+ }
+ if (!server && !pac_url) {
+ LOG(WARNING) << "A centrally-administered policy dictates that the"
+ << " proxy settings should use either a fixed"
+ << " proxy server or a .pac url, but specifies neither.";
+ return false;
+ }
+ if (pac_url)
+ mode_value = ProxyPrefs::kPacScriptProxyModeName;
+ else
+ mode_value = ProxyPrefs::kFixedServersProxyModeName;
+ break;
+ case kPolicyUseSystemProxyServerMode:
+ mode_value = ProxyPrefs::kSystemProxyModeName;
+ break;
+ default:
+ LOG(WARNING) << "Invalid proxy mode " << server_mode_value;
+ return false;
+ }
}
- switch (mode_value) {
- case kPolicyNoProxyServerMode:
+ if (!mode_value.empty()) {
+ if (mode_value == ProxyPrefs::kDirectProxyModeName) {
if (server || pac_url || bypass_list) {
LOG(WARNING) << "A centrally-administered policy disables the use of"
<< " a proxy but also specifies an explicit proxy"
<< " configuration.";
return false;
}
- break;
- case kPolicyAutoDetectProxyMode:
- if (server || bypass_list) {
+ } else if (mode_value == ProxyPrefs::kAutoDetectProxyModeName) {
+ if (server || bypass_list || pac_url) {
LOG(WARNING) << "A centrally-administered policy dictates that a proxy"
<< " shall be auto configured but specifies fixed proxy"
- << " servers or a by-pass list.";
+ << " servers, a by-pass list or a .pac script URL.";
return false;
}
- break;
- case kPolicyManuallyConfiguredProxyMode:
- if (!server) {
- LOG(WARNING) << "A centrally-administered policy dictates that the"
- << " system proxy settings should use fixed proxy servers"
- << " without specifying which ones.";
+ } else if (mode_value == ProxyPrefs::kPacScriptProxyModeName) {
+ if (server || bypass_list) {
+ LOG(WARNING) << "A centrally-administered policy dictates that a .pac"
+ << " script URL should be used for proxy configuration but"
+ << " also specifies policies required only for fixed"
+ << " proxy servers.";
return false;
}
+ } else if (mode_value == ProxyPrefs::kFixedServersProxyModeName) {
if (pac_url) {
- LOG(WARNING) << "A centrally-administered policy dictates that the"
- << " system proxy settings should use fixed proxy servers"
- << " but also specifies a PAC script.";
+ LOG(WARNING) << "A centrally-administered policy dictates that a"
+ << " fixed proxy server should be used but also"
battre 2011/01/03 13:19:16 servers (plural)?
danno 2011/01/07 12:24:25 Done.
+ << " specifies a .pac script URL.";
return false;
}
- break;
- case kPolicyUseSystemProxyMode:
+ } else if (mode_value == ProxyPrefs::kSystemProxyModeName) {
if (server || pac_url || bypass_list) {
LOG(WARNING) << "A centrally-administered policy dictates that the"
<< " system proxy settings should be used but also "
<< " specifies an explicit proxy configuration.";
return false;
}
- break;
- default:
+ } else {
LOG(WARNING) << "Invalid proxy mode " << mode_value;
return false;
+ }
}
return true;
}
void ConfigurationPolicyPrefKeeper::ApplyProxySettings() {
- if (!HasProxyPolicy(kPolicyProxyMode))
- return;
-
- int int_mode;
- CHECK(proxy_policies_[kPolicyProxyMode]->GetAsInteger(&int_mode));
ProxyPrefs::ProxyMode mode;
- switch (int_mode) {
- case kPolicyNoProxyServerMode:
+ if (HasProxyPolicy(kPolicyProxyMode)) {
+ std::string string_mode;
gfeher 2011/01/03 10:30:10 Why not use ProxyPrefs::StringToProxyMode here?
danno 2011/01/07 12:24:25 Done.
+ CHECK(proxy_policies_[kPolicyProxyMode]->GetAsString(&string_mode));
+ if (string_mode == std::string(ProxyPrefs::kDirectProxyModeName)) {
mode = ProxyPrefs::MODE_DIRECT;
- break;
- case kPolicyAutoDetectProxyMode:
+ } else if (string_mode ==
+ std::string(ProxyPrefs::kAutoDetectProxyModeName)) {
mode = ProxyPrefs::MODE_AUTO_DETECT;
- if (HasProxyPolicy(kPolicyProxyPacUrl))
- mode = ProxyPrefs::MODE_PAC_SCRIPT;
- break;
- case kPolicyManuallyConfiguredProxyMode:
+ } else if (string_mode ==
+ std::string(ProxyPrefs::kFixedServersProxyModeName)) {
mode = ProxyPrefs::MODE_FIXED_SERVERS;
- break;
- case kPolicyUseSystemProxyMode:
+ } else if (string_mode ==
+ std::string(ProxyPrefs::kPacScriptProxyModeName)) {
+ mode = ProxyPrefs::MODE_PAC_SCRIPT;
+ } else if (string_mode ==
+ std::string(ProxyPrefs::kSystemProxyModeName)) {
mode = ProxyPrefs::MODE_SYSTEM;
- break;
- default:
+ } else {
mode = ProxyPrefs::MODE_DIRECT;
NOTREACHED();
+ }
+ } else if (HasProxyPolicy(kPolicyProxyServerMode)) {
+ int int_mode = 0;
+ CHECK(proxy_policies_[kPolicyProxyServerMode]->GetAsInteger(&int_mode));
+ switch (int_mode) {
+ case kPolicyNoProxyServerMode:
+ mode = ProxyPrefs::MODE_DIRECT;
+ break;
+ case kPolicyAutoDetectProxyServerMode:
+ mode = ProxyPrefs::MODE_AUTO_DETECT;
+ break;
+ case kPolicyManuallyConfiguredProxyServerMode:
+ mode = ProxyPrefs::MODE_FIXED_SERVERS;
+ if (HasProxyPolicy(kPolicyProxyPacUrl))
+ mode = ProxyPrefs::MODE_PAC_SCRIPT;
+ break;
+ case kPolicyUseSystemProxyServerMode:
+ mode = ProxyPrefs::MODE_SYSTEM;
+ break;
+ default:
+ mode = ProxyPrefs::MODE_DIRECT;
+ NOTREACHED();
+ }
+ } else {
+ return;
}
prefs_.SetValue(prefs::kProxyMode, Value::CreateIntegerValue(mode));
@@ -797,7 +860,8 @@ ConfigurationPolicyPrefStore::GetChromePolicyDefinitionList() {
key::kDefaultSearchProviderIconURL },
{ kPolicyDefaultSearchProviderEncodings, Value::TYPE_STRING,
key::kDefaultSearchProviderEncodings },
- { kPolicyProxyMode, Value::TYPE_INTEGER, key::kProxyMode },
+ { kPolicyProxyMode, Value::TYPE_STRING, key::kProxyMode },
+ { kPolicyProxyServerMode, Value::TYPE_INTEGER, key::kProxyServerMode },
{ kPolicyProxyServer, Value::TYPE_STRING, key::kProxyServer },
{ kPolicyProxyPacUrl, Value::TYPE_STRING, key::kProxyPacUrl },
{ kPolicyProxyBypassList, Value::TYPE_STRING, key::kProxyBypassList },

Powered by Google App Engine
This is Rietveld 408576698