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

Side by Side Diff: chrome/browser/policy/policy_loader_win.cc

Issue 10834004: Correct const accessors in base/values.(h|cc) (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Reverting webdriver:Command::parameters_ to const Created 8 years, 4 months 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/policy_loader_win.h" 5 #include "chrome/browser/policy/policy_loader_win.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include <string.h> 9 #include <string.h>
10 10
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 } 256 }
257 257
258 // Returns the default type for registry entries of |reg_type|, when there is 258 // Returns the default type for registry entries of |reg_type|, when there is
259 // no schema defined type for a policy. 259 // no schema defined type for a policy.
260 base::Value::Type GetDefaultFor(DWORD reg_type) { 260 base::Value::Type GetDefaultFor(DWORD reg_type) {
261 return reg_type == REG_DWORD ? base::Value::TYPE_INTEGER : 261 return reg_type == REG_DWORD ? base::Value::TYPE_INTEGER :
262 base::Value::TYPE_STRING; 262 base::Value::TYPE_STRING;
263 } 263 }
264 264
265 // Returns the entry with key |name| in |dictionary| (can be NULL), or NULL. 265 // Returns the entry with key |name| in |dictionary| (can be NULL), or NULL.
266 base::DictionaryValue* GetEntry(const base::DictionaryValue* dictionary, 266 const base::DictionaryValue* GetEntry(const base::DictionaryValue* dictionary,
267 const std::string& name) { 267 const std::string& name) {
268 if (!dictionary) 268 if (!dictionary)
269 return NULL; 269 return NULL;
270 base::DictionaryValue* entry = NULL; 270 const base::DictionaryValue* entry = NULL;
271 dictionary->GetDictionary(name, &entry); 271 dictionary->GetDictionary(name, &entry);
272 return entry; 272 return entry;
273 } 273 }
274 274
275 // Returns the schema for property |name| given the |schema| of an object. 275 // Returns the schema for property |name| given the |schema| of an object.
276 // Returns the "additionalProperties" schema if no specific schema for 276 // Returns the "additionalProperties" schema if no specific schema for
277 // |name| is present. Returns NULL if no schema is found. 277 // |name| is present. Returns NULL if no schema is found.
278 base::DictionaryValue* GetSchemaFor(const base::DictionaryValue* schema, 278 const base::DictionaryValue* GetSchemaFor(const base::DictionaryValue* schema,
279 const std::string& name) { 279 const std::string& name) {
280 base::DictionaryValue* properties = GetEntry(schema, kProperties); 280 const base::DictionaryValue* properties = GetEntry(schema, kProperties);
281 base::DictionaryValue* sub_schema = GetEntry(properties, name); 281 const base::DictionaryValue* sub_schema = GetEntry(properties, name);
282 if (sub_schema) 282 if (sub_schema)
283 return sub_schema; 283 return sub_schema;
284 // "additionalProperties" can be a boolean, but that case is ignored. 284 // "additionalProperties" can be a boolean, but that case is ignored.
285 return GetEntry(schema, kAdditionalProperties); 285 return GetEntry(schema, kAdditionalProperties);
286 } 286 }
287 287
288 // Converts string |value| to another |type|, if possible. 288 // Converts string |value| to another |type|, if possible.
289 base::Value* ConvertComponentStringValue(const string16& value, 289 base::Value* ConvertComponentStringValue(const string16& value,
290 base::Value::Type type) { 290 base::Value::Type type) {
291 switch (type) { 291 switch (type) {
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
463 463
464 for (RegistryKeyIterator it(hive, path.c_str()); it.Valid(); ++it) { 464 for (RegistryKeyIterator it(hive, path.c_str()); it.Valid(); ++it) {
465 string16 name16(it.Name()); 465 string16 name16(it.Name());
466 std::string name(UTF16ToUTF8(name16)); 466 std::string name(UTF16ToUTF8(name16));
467 if (dict->HasKey(name)) { 467 if (dict->HasKey(name)) {
468 DLOG(WARNING) << "Ignoring registry key because a value exists with the " 468 DLOG(WARNING) << "Ignoring registry key because a value exists with the "
469 "same name: " << path << kPathSep << name; 469 "same name: " << path << kPathSep << name;
470 continue; 470 continue;
471 } 471 }
472 472
473 base::DictionaryValue* sub_schema = GetSchemaFor(schema, name); 473 const base::DictionaryValue* sub_schema = GetSchemaFor(schema, name);
474 base::Value::Type type = GetType(sub_schema, base::Value::TYPE_DICTIONARY); 474 base::Value::Type type = GetType(sub_schema, base::Value::TYPE_DICTIONARY);
475 base::Value* value = NULL; 475 base::Value* value = NULL;
476 const string16 sub_path = path + kPathSep + name16; 476 const string16 sub_path = path + kPathSep + name16;
477 if (type == base::Value::TYPE_DICTIONARY) { 477 if (type == base::Value::TYPE_DICTIONARY) {
478 value = ReadComponentDictionaryValue(hive, sub_path, sub_schema); 478 value = ReadComponentDictionaryValue(hive, sub_path, sub_schema);
479 } else if (type == base::Value::TYPE_LIST) { 479 } else if (type == base::Value::TYPE_LIST) {
480 value = ReadComponentListValue(hive, sub_path, sub_schema); 480 value = ReadComponentListValue(hive, sub_path, sub_schema);
481 } else { 481 } else {
482 DLOG(WARNING) << "Can't read a simple type in registry key at " << path; 482 DLOG(WARNING) << "Can't read a simple type in registry key at " << path;
483 } 483 }
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
681 681
682 void PolicyLoaderWin::OnObjectSignaled(HANDLE object) { 682 void PolicyLoaderWin::OnObjectSignaled(HANDLE object) {
683 DCHECK(object == user_policy_changed_event_.handle() || 683 DCHECK(object == user_policy_changed_event_.handle() ||
684 object == machine_policy_changed_event_.handle()) 684 object == machine_policy_changed_event_.handle())
685 << "unexpected object signaled policy reload, obj = " 685 << "unexpected object signaled policy reload, obj = "
686 << std::showbase << std::hex << object; 686 << std::showbase << std::hex << object;
687 Reload(false); 687 Reload(false);
688 } 688 }
689 689
690 } // namespace policy 690 } // namespace policy
OLDNEW
« no previous file with comments | « chrome/browser/policy/configuration_policy_handler.cc ('k') | chrome/browser/prefs/pref_model_associator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698