| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/pref_value_store.h" | 5 #include "chrome/browser/pref_value_store.h" |
| 6 | 6 |
| 7 PrefValueStore::PrefValueStore(PrefStore* managed_prefs, | 7 PrefValueStore::PrefValueStore(PrefStore* managed_prefs, |
| 8 PrefStore* extension_prefs, | 8 PrefStore* extension_prefs, |
| 9 PrefStore* user_prefs, | 9 PrefStore* user_prefs, |
| 10 PrefStore* recommended_prefs) { | 10 PrefStore* recommended_prefs) { |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 61 return result; | 61 return result; |
| 62 } | 62 } |
| 63 | 63 |
| 64 bool PrefValueStore::HasPrefPath(const wchar_t* path) const { | 64 bool PrefValueStore::HasPrefPath(const wchar_t* path) const { |
| 65 Value* tmp_value = NULL; | 65 Value* tmp_value = NULL; |
| 66 const std::wstring name(path); | 66 const std::wstring name(path); |
| 67 bool rv = GetValue(name, &tmp_value); | 67 bool rv = GetValue(name, &tmp_value); |
| 68 return rv; | 68 return rv; |
| 69 } | 69 } |
| 70 | 70 |
| 71 // The value of a Preference is managed if the PrefStore for managed | |
| 72 // preferences contains a value for the given preference |name|. | |
| 73 bool PrefValueStore::PrefValueIsManaged(const wchar_t* name) { | |
| 74 if (pref_stores_[MANAGED].get() == NULL) { | |
| 75 // No managed PreferenceStore set, hence there are no managed | |
| 76 // preferences. | |
| 77 return false; | |
| 78 } | |
| 79 Value* tmp_value; | |
| 80 return pref_stores_[MANAGED]->prefs()->Get(name, &tmp_value); | |
| 81 } | |
| 82 | |
| 83 // Note the |DictionaryValue| referenced by the |PrefStore| user_prefs_ | 71 // Note the |DictionaryValue| referenced by the |PrefStore| user_prefs_ |
| 84 // (returned by the method prefs()) takes the ownership of the Value referenced | 72 // (returned by the method prefs()) takes the ownership of the Value referenced |
| 85 // by in_value. | 73 // by in_value. |
| 86 void PrefValueStore::SetUserPrefValue(const wchar_t* name, Value* in_value) { | 74 void PrefValueStore::SetUserPrefValue(const wchar_t* name, Value* in_value) { |
| 87 pref_stores_[USER]->prefs()->Set(name, in_value); | 75 pref_stores_[USER]->prefs()->Set(name, in_value); |
| 88 } | 76 } |
| 89 | 77 |
| 90 bool PrefValueStore::ReadOnly() { | 78 bool PrefValueStore::ReadOnly() { |
| 91 return pref_stores_[USER]->ReadOnly(); | 79 return pref_stores_[USER]->ReadOnly(); |
| 92 } | 80 } |
| 93 | 81 |
| 94 void PrefValueStore::RemoveUserPrefValue(const wchar_t* name) { | 82 void PrefValueStore::RemoveUserPrefValue(const wchar_t* name) { |
| 95 if (pref_stores_[USER].get()) { | 83 if (pref_stores_[USER].get()) { |
| 96 pref_stores_[USER]->prefs()->Remove(name, NULL); | 84 pref_stores_[USER]->prefs()->Remove(name, NULL); |
| 97 } | 85 } |
| 98 } | 86 } |
| 87 |
| 88 bool PrefValueStore::PrefValueInManagedStore(const wchar_t* name) { |
| 89 return PrefValueInStore(name, MANAGED); |
| 90 } |
| 91 |
| 92 bool PrefValueStore::PrefValueInExtensionStore(const wchar_t* name) { |
| 93 return PrefValueInStore(name, EXTENSION); |
| 94 } |
| 95 |
| 96 bool PrefValueStore::PrefValueInUserStore(const wchar_t* name) { |
| 97 return PrefValueInStore(name, USER); |
| 98 } |
| 99 |
| 100 bool PrefValueStore::PrefValueFromExtensionStore(const wchar_t* name) { |
| 101 return PrefValueFromStore(name, EXTENSION); |
| 102 } |
| 103 |
| 104 bool PrefValueStore::PrefValueFromUserStore(const wchar_t* name) { |
| 105 return PrefValueFromStore(name, USER); |
| 106 } |
| 107 |
| 108 bool PrefValueStore::PrefValueInStore(const wchar_t* name, PrefStoreType type) { |
| 109 if (pref_stores_[type].get() == NULL) { |
| 110 // No store of that type set, so this pref can't be in it. |
| 111 return false; |
| 112 } |
| 113 Value* tmp_value; |
| 114 return pref_stores_[type]->prefs()->Get(name, &tmp_value); |
| 115 } |
| 116 |
| 117 bool PrefValueStore::PrefValueFromStore(const wchar_t* name, |
| 118 PrefStoreType type) { |
| 119 // No need to look in PrefStores with lower priority than the one we want. |
| 120 for (int i = 0; i <= type; ++i) { |
| 121 if (PrefValueInStore(name, static_cast<PrefStoreType>(i))) |
| 122 return (i == type); |
| 123 } |
| 124 return false; |
| 125 } |
| OLD | NEW |