OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "components/policy/core/browser/proxy_policy_handler.h" | 5 #include "components/policy/core/browser/proxy_policy_handler.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/macros.h" | 10 #include "base/macros.h" |
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
220 const PolicyMap& policies, const char* policy_name) { | 220 const PolicyMap& policies, const char* policy_name) { |
221 // See note on the ProxyPolicyHandler implementation above. | 221 // See note on the ProxyPolicyHandler implementation above. |
222 const base::Value* value = policies.GetValue(key::kProxySettings); | 222 const base::Value* value = policies.GetValue(key::kProxySettings); |
223 const base::DictionaryValue* settings; | 223 const base::DictionaryValue* settings; |
224 if (!value || !value->GetAsDictionary(&settings)) | 224 if (!value || !value->GetAsDictionary(&settings)) |
225 return NULL; | 225 return NULL; |
226 | 226 |
227 const base::Value* policy_value = NULL; | 227 const base::Value* policy_value = NULL; |
228 std::string tmp; | 228 std::string tmp; |
229 if (!settings->Get(policy_name, &policy_value) || | 229 if (!settings->Get(policy_name, &policy_value) || |
230 policy_value->IsType(base::Value::TYPE_NULL) || | 230 policy_value->IsType(base::Value::Type::NONE) || |
231 (policy_value->IsType(base::Value::TYPE_STRING) && | 231 (policy_value->IsType(base::Value::Type::STRING) && |
232 policy_value->GetAsString(&tmp) && | 232 policy_value->GetAsString(&tmp) && |
233 tmp.empty())) { | 233 tmp.empty())) { |
234 return NULL; | 234 return NULL; |
235 } | 235 } |
236 return policy_value; | 236 return policy_value; |
237 } | 237 } |
238 | 238 |
239 bool ProxyPolicyHandler::CheckProxyModeAndServerMode(const PolicyMap& policies, | 239 bool ProxyPolicyHandler::CheckProxyModeAndServerMode(const PolicyMap& policies, |
240 PolicyErrorMap* errors, | 240 PolicyErrorMap* errors, |
241 std::string* mode_value) { | 241 std::string* mode_value) { |
242 const base::Value* mode = GetProxyPolicyValue(policies, key::kProxyMode); | 242 const base::Value* mode = GetProxyPolicyValue(policies, key::kProxyMode); |
243 const base::Value* server = GetProxyPolicyValue(policies, key::kProxyServer); | 243 const base::Value* server = GetProxyPolicyValue(policies, key::kProxyServer); |
244 const base::Value* server_mode = | 244 const base::Value* server_mode = |
245 GetProxyPolicyValue(policies, key::kProxyServerMode); | 245 GetProxyPolicyValue(policies, key::kProxyServerMode); |
246 const base::Value* pac_url = GetProxyPolicyValue(policies, key::kProxyPacUrl); | 246 const base::Value* pac_url = GetProxyPolicyValue(policies, key::kProxyPacUrl); |
247 | 247 |
248 // If there's a server mode, convert it into a mode. | 248 // If there's a server mode, convert it into a mode. |
249 // When both are specified, the mode takes precedence. | 249 // When both are specified, the mode takes precedence. |
250 if (mode) { | 250 if (mode) { |
251 if (server_mode) { | 251 if (server_mode) { |
252 errors->AddError(key::kProxySettings, | 252 errors->AddError(key::kProxySettings, |
253 key::kProxyServerMode, | 253 key::kProxyServerMode, |
254 IDS_POLICY_OVERRIDDEN, | 254 IDS_POLICY_OVERRIDDEN, |
255 key::kProxyMode); | 255 key::kProxyMode); |
256 } | 256 } |
257 if (!mode->GetAsString(mode_value)) { | 257 if (!mode->GetAsString(mode_value)) { |
258 errors->AddError(key::kProxySettings, key::kProxyMode, | 258 errors->AddError(key::kProxySettings, key::kProxyMode, |
259 IDS_POLICY_TYPE_ERROR, | 259 IDS_POLICY_TYPE_ERROR, |
260 base::Value::GetTypeName(base::Value::TYPE_BOOLEAN)); | 260 base::Value::GetTypeName(base::Value::Type::BOOLEAN)); |
261 return false; | 261 return false; |
262 } | 262 } |
263 | 263 |
264 ProxyPrefs::ProxyMode mode; | 264 ProxyPrefs::ProxyMode mode; |
265 if (!ProxyPrefs::StringToProxyMode(*mode_value, &mode)) { | 265 if (!ProxyPrefs::StringToProxyMode(*mode_value, &mode)) { |
266 errors->AddError(key::kProxySettings, | 266 errors->AddError(key::kProxySettings, |
267 key::kProxyMode, | 267 key::kProxyMode, |
268 IDS_POLICY_INVALID_PROXY_MODE_ERROR); | 268 IDS_POLICY_INVALID_PROXY_MODE_ERROR); |
269 return false; | 269 return false; |
270 } | 270 } |
271 | 271 |
272 if (mode == ProxyPrefs::MODE_PAC_SCRIPT && !pac_url) { | 272 if (mode == ProxyPrefs::MODE_PAC_SCRIPT && !pac_url) { |
273 errors->AddError(key::kProxySettings, | 273 errors->AddError(key::kProxySettings, |
274 key::kProxyPacUrl, | 274 key::kProxyPacUrl, |
275 IDS_POLICY_NOT_SPECIFIED_ERROR); | 275 IDS_POLICY_NOT_SPECIFIED_ERROR); |
276 return false; | 276 return false; |
277 } | 277 } |
278 if (mode == ProxyPrefs::MODE_FIXED_SERVERS && !server) { | 278 if (mode == ProxyPrefs::MODE_FIXED_SERVERS && !server) { |
279 errors->AddError(key::kProxySettings, | 279 errors->AddError(key::kProxySettings, |
280 key::kProxyServer, | 280 key::kProxyServer, |
281 IDS_POLICY_NOT_SPECIFIED_ERROR); | 281 IDS_POLICY_NOT_SPECIFIED_ERROR); |
282 return false; | 282 return false; |
283 } | 283 } |
284 } else if (server_mode) { | 284 } else if (server_mode) { |
285 int server_mode_value; | 285 int server_mode_value; |
286 if (!server_mode->GetAsInteger(&server_mode_value)) { | 286 if (!server_mode->GetAsInteger(&server_mode_value)) { |
287 errors->AddError(key::kProxySettings, key::kProxyServerMode, | 287 errors->AddError(key::kProxySettings, key::kProxyServerMode, |
288 IDS_POLICY_TYPE_ERROR, | 288 IDS_POLICY_TYPE_ERROR, |
289 base::Value::GetTypeName(base::Value::TYPE_INTEGER)); | 289 base::Value::GetTypeName(base::Value::Type::INTEGER)); |
290 return false; | 290 return false; |
291 } | 291 } |
292 | 292 |
293 switch (server_mode_value) { | 293 switch (server_mode_value) { |
294 case PROXY_SERVER_MODE: | 294 case PROXY_SERVER_MODE: |
295 *mode_value = ProxyPrefs::kDirectProxyModeName; | 295 *mode_value = ProxyPrefs::kDirectProxyModeName; |
296 break; | 296 break; |
297 case PROXY_AUTO_DETECT_PROXY_SERVER_MODE: | 297 case PROXY_AUTO_DETECT_PROXY_SERVER_MODE: |
298 *mode_value = ProxyPrefs::kAutoDetectProxyModeName; | 298 *mode_value = ProxyPrefs::kAutoDetectProxyModeName; |
299 break; | 299 break; |
(...skipping 29 matching lines...) Expand all Loading... |
329 key::kProxyServerMode, | 329 key::kProxyServerMode, |
330 IDS_POLICY_OUT_OF_RANGE_ERROR, | 330 IDS_POLICY_OUT_OF_RANGE_ERROR, |
331 base::IntToString(server_mode_value)); | 331 base::IntToString(server_mode_value)); |
332 return false; | 332 return false; |
333 } | 333 } |
334 } | 334 } |
335 return true; | 335 return true; |
336 } | 336 } |
337 | 337 |
338 } // namespace policy | 338 } // namespace policy |
OLD | NEW |