Index: chrome/browser/prefs/pref_service.cc |
diff --git a/chrome/browser/prefs/pref_service.cc b/chrome/browser/prefs/pref_service.cc |
index 2ab04f89704f96059a3865a67e7bf74fe2f95917..9447875308cda9edab4cac02359b6f564185aedb 100644 |
--- a/chrome/browser/prefs/pref_service.cc |
+++ b/chrome/browser/prefs/pref_service.cc |
@@ -356,6 +356,17 @@ bool PrefService::HasPrefPath(const char* path) const { |
return pref && !pref->IsDefaultValue(); |
} |
+DictionaryValue* PrefService::GetPreferenceValues() const { |
+ DCHECK(CalledOnValidThread()); |
+ DictionaryValue* out = new DictionaryValue; |
+ DefaultPrefStore::const_iterator i = default_store_->begin(); |
+ for (; i != default_store_->end(); ++i) { |
+ const Value* value = FindPreference(i->first.c_str())->GetValue(); |
+ out->Set(i->first, value->DeepCopy()); |
+ } |
+ return out; |
+} |
+ |
const PrefService::Preference* PrefService::FindPreference( |
const char* pref_name) const { |
DCHECK(CalledOnValidThread()); |