summaryrefslogtreecommitdiffstats
path: root/chrome/browser/pref_value_store.cc
diff options
context:
space:
mode:
authormnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-21 13:54:08 +0000
committermnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-21 13:54:08 +0000
commit74379bc51320fd98a47c98053a056b4ddd7271a7 (patch)
tree721fb4cbad36a304162745d8a0a5ee0930f054f0 /chrome/browser/pref_value_store.cc
parent7082b2329218da9a77fd6bc9587e86d0ed817196 (diff)
downloadchromium_src-74379bc51320fd98a47c98053a056b4ddd7271a7.zip
chromium_src-74379bc51320fd98a47c98053a056b4ddd7271a7.tar.gz
chromium_src-74379bc51320fd98a47c98053a056b4ddd7271a7.tar.bz2
Adjust preference sync code to only sync user modifiable preferences.
Switch to the new preference value source checkers in Preference. While at it, add a unit test and better test infrastructure for controlling preference values in tests. Convert existing unit tests where appropriate. BUG=48952 TEST=ProfileSyncServicePreferenceTest.ManagedPreferences Review URL: http://codereview.chromium.org/3051001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53179 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/pref_value_store.cc')
-rw-r--r--chrome/browser/pref_value_store.cc20
1 files changed, 12 insertions, 8 deletions
diff --git a/chrome/browser/pref_value_store.cc b/chrome/browser/pref_value_store.cc
index a5fae75..0988b9c 100644
--- a/chrome/browser/pref_value_store.cc
+++ b/chrome/browser/pref_value_store.cc
@@ -100,11 +100,16 @@ bool PrefValueStore::PrefValueInUserStore(const wchar_t* name) {
}
bool PrefValueStore::PrefValueFromExtensionStore(const wchar_t* name) {
- return PrefValueFromStore(name, EXTENSION);
+ return ControllingPrefStoreForPref(name) == EXTENSION;
}
bool PrefValueStore::PrefValueFromUserStore(const wchar_t* name) {
- return PrefValueFromStore(name, USER);
+ return ControllingPrefStoreForPref(name) == USER;
+}
+
+bool PrefValueStore::PrefValueUserModifiable(const wchar_t* name) {
+ PrefStoreType effective_store = ControllingPrefStoreForPref(name);
+ return effective_store >= USER || effective_store == INVALID;
}
bool PrefValueStore::PrefValueInStore(const wchar_t* name, PrefStoreType type) {
@@ -116,12 +121,11 @@ bool PrefValueStore::PrefValueInStore(const wchar_t* name, PrefStoreType type) {
return pref_stores_[type]->prefs()->Get(name, &tmp_value);
}
-bool PrefValueStore::PrefValueFromStore(const wchar_t* name,
- PrefStoreType type) {
- // No need to look in PrefStores with lower priority than the one we want.
- for (int i = 0; i <= type; ++i) {
+PrefValueStore::PrefStoreType PrefValueStore::ControllingPrefStoreForPref(
+ const wchar_t* name) {
+ for (int i = 0; i <= PREF_STORE_TYPE_MAX; ++i) {
if (PrefValueInStore(name, static_cast<PrefStoreType>(i)))
- return (i == type);
+ return static_cast<PrefStoreType>(i);
}
- return false;
+ return INVALID;
}