Index: chrome/browser/prefs/tracked/pref_service_hash_store_contents.cc |
diff --git a/chrome/browser/prefs/tracked/pref_service_hash_store_contents.cc b/chrome/browser/prefs/tracked/pref_service_hash_store_contents.cc |
index 103e3501af6b8ebd1cef9b5df02775de66667605..e121df367879be41fddc2c3ca17231a59e6f013c 100644 |
--- a/chrome/browser/prefs/tracked/pref_service_hash_store_contents.cc |
+++ b/chrome/browser/prefs/tracked/pref_service_hash_store_contents.cc |
@@ -85,15 +85,23 @@ void PrefServiceHashStoreContents::Reset() { |
// Remove this store's entry in the kStoreVersionsDict. |
base::DictionaryValue* version_dict; |
- if (update->GetDictionary(kStoreVersionsDict, &version_dict)) |
+ if (update->GetDictionary(kStoreVersionsDict, &version_dict)) { |
version_dict->RemoveWithoutPathExpansion(hash_store_id_, NULL); |
+ if (version_dict->empty()) |
+ update->RemovePath(kStoreVersionsDict, NULL); |
+ } |
// Remove this store's entry in the kHashOfHashesDict. |
base::DictionaryValue* hash_of_hashes_dict; |
if (update->GetDictionaryWithoutPathExpansion(kHashOfHashesDict, |
&hash_of_hashes_dict)) { |
hash_of_hashes_dict->RemoveWithoutPathExpansion(hash_store_id_, NULL); |
+ if (hash_of_hashes_dict->empty()) |
+ update->RemovePath(kHashOfHashesDict, NULL); |
} |
+ |
+ if (update->empty()) |
+ pref_service_->ClearPref(prefs::kProfilePreferenceHashes); |
} |
bool PrefServiceHashStoreContents::IsInitialized() const { |