Index: base/prefs/json_pref_store.cc |
diff --git a/base/prefs/json_pref_store.cc b/base/prefs/json_pref_store.cc |
index e230407043aea5ebc29056618ece54571e274b9c..ad97b8459cb1c5c614f021d2a24408c10e9c3df3 100644 |
--- a/base/prefs/json_pref_store.cc |
+++ b/base/prefs/json_pref_store.cc |
@@ -217,14 +217,10 @@ void JsonPrefStore::SetValueSilently(const std::string& key, |
} |
void JsonPrefStore::RemoveValue(const std::string& key) { |
- if (prefs_->Remove(key, NULL)) |
+ if (prefs_->RemovePath(key, NULL)) |
ReportValueChanged(key); |
} |
-void JsonPrefStore::MarkNeedsEmptyValue(const std::string& key) { |
- keys_need_empty_value_.insert(key); |
-} |
- |
bool JsonPrefStore::ReadOnly() const { |
return read_only_; |
} |
@@ -324,35 +320,7 @@ JsonPrefStore::~JsonPrefStore() { |
} |
bool JsonPrefStore::SerializeData(std::string* output) { |
- // TODO(tc): Do we want to prune webkit preferences that match the default |
- // value? |
JSONStringValueSerializer serializer(output); |
serializer.set_pretty_print(true); |
- scoped_ptr<base::DictionaryValue> copy( |
- prefs_->DeepCopyWithoutEmptyChildren()); |
- |
- // Iterates |keys_need_empty_value_| and if the key exists in |prefs_|, |
- // ensure its empty ListValue or DictonaryValue is preserved. |
- for (std::set<std::string>::const_iterator |
- it = keys_need_empty_value_.begin(); |
- it != keys_need_empty_value_.end(); |
- ++it) { |
- const std::string& key = *it; |
- |
- base::Value* value = NULL; |
- if (!prefs_->Get(key, &value)) |
- continue; |
- |
- if (value->IsType(base::Value::TYPE_LIST)) { |
- const base::ListValue* list = NULL; |
- if (value->GetAsList(&list) && list->empty()) |
- copy->Set(key, new base::ListValue); |
- } else if (value->IsType(base::Value::TYPE_DICTIONARY)) { |
- const base::DictionaryValue* dict = NULL; |
- if (value->GetAsDictionary(&dict) && dict->empty()) |
- copy->Set(key, new base::DictionaryValue); |
- } |
- } |
- |
- return serializer.Serialize(*(copy.get())); |
+ return serializer.Serialize(*prefs_); |
} |