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

Side by Side Diff: components/policy/core/browser/proxy_policy_handler.cc

Issue 2539363004: Make base::Value::TYPE a scoped enum. (Closed)
Patch Set: Rebase Created 4 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 unified diff | Download patch
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698