Index: base/prefs/pref_registry.cc |
diff --git a/base/prefs/pref_registry.cc b/base/prefs/pref_registry.cc |
index 69f0494f534408807fb916400e2abe45b4cc0107..66a48db4fe8f538ac074659c42273d3a3bd3ec43 100644 |
--- a/base/prefs/pref_registry.cc |
+++ b/base/prefs/pref_registry.cc |
@@ -7,6 +7,7 @@ |
#include "base/logging.h" |
#include "base/prefs/default_pref_store.h" |
#include "base/prefs/pref_store.h" |
+#include "base/stl_util.h" |
#include "base/values.h" |
PrefRegistry::PrefRegistry() |
@@ -41,13 +42,18 @@ void PrefRegistry::SetDefaultPrefValue(const std::string& pref_name, |
} |
void PrefRegistry::RegisterPreference(const std::string& path, |
- base::Value* default_value) { |
+ base::Value* default_value, |
+ uint32 flags) { |
base::Value::Type orig_type = default_value->GetType(); |
DCHECK(orig_type != base::Value::TYPE_NULL && |
orig_type != base::Value::TYPE_BINARY) << |
"invalid preference type: " << orig_type; |
DCHECK(!defaults_->GetValue(path, NULL)) << |
"Trying to register a previously registered pref: " << path; |
+ DCHECK(!ContainsKey(registration_flags_, path)) << |
+ "Trying to register a previously registered pref: " << path; |
defaults_->SetDefaultValue(path, make_scoped_ptr(default_value)); |
+ if (flags != NO_REGISTRATION_FLAGS) |
+ registration_flags_[path] = flags; |
} |