Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(779)

Side by Side Diff: chrome/browser/prefs/pref_service_syncable.cc

Issue 1096833003: Convert PrefSyncStatus into PrefRegistrationFlags (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/prefs/pref_service_syncable.h" 5 #include "chrome/browser/prefs/pref_service_syncable.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/files/file_path.h" 8 #include "base/files/file_path.h"
9 #include "base/prefs/default_pref_store.h" 9 #include "base/prefs/default_pref_store.h"
10 #include "base/prefs/overlay_user_pref_store.h" 10 #include "base/prefs/overlay_user_pref_store.h"
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 priority_pref_sync_associator_(syncer::PRIORITY_PREFERENCES) { 48 priority_pref_sync_associator_(syncer::PRIORITY_PREFERENCES) {
49 pref_sync_associator_.SetPrefService(this); 49 pref_sync_associator_.SetPrefService(this);
50 priority_pref_sync_associator_.SetPrefService(this); 50 priority_pref_sync_associator_.SetPrefService(this);
51 51
52 // Let PrefModelAssociators know about changes to preference values. 52 // Let PrefModelAssociators know about changes to preference values.
53 pref_value_store->set_callback( 53 pref_value_store->set_callback(
54 base::Bind(&PrefServiceSyncable::ProcessPrefChange, 54 base::Bind(&PrefServiceSyncable::ProcessPrefChange,
55 base::Unretained(this))); 55 base::Unretained(this)));
56 56
57 // Add already-registered syncable preferences to PrefModelAssociator. 57 // Add already-registered syncable preferences to PrefModelAssociator.
58 const user_prefs::PrefRegistrySyncable::PrefToStatus& syncable_preferences = 58 for (PrefRegistry::const_iterator it = pref_registry->begin();
59 pref_registry->syncable_preferences(); 59 it != pref_registry->end(); ++it) {
60 for (user_prefs::PrefRegistrySyncable::PrefToStatus::const_iterator it = 60 const std::string& path = it->first;
61 syncable_preferences.begin(); 61 AddRegisteredSyncablePreference(
62 it != syncable_preferences.end(); 62 path.c_str(), pref_registry_->GetRegistrationFlags(path));
63 ++it) {
64 AddRegisteredSyncablePreference(it->first.c_str(), it->second);
65 } 63 }
66 64
67 // Watch for syncable preferences registered after this point. 65 // Watch for syncable preferences registered after this point.
68 pref_registry->SetSyncableRegistrationCallback( 66 pref_registry->SetSyncableRegistrationCallback(
69 base::Bind(&PrefServiceSyncable::AddRegisteredSyncablePreference, 67 base::Bind(&PrefServiceSyncable::AddRegisteredSyncablePreference,
70 base::Unretained(this))); 68 base::Unretained(this)));
71 } 69 }
72 70
73 PrefServiceSyncable::~PrefServiceSyncable() { 71 PrefServiceSyncable::~PrefServiceSyncable() {
74 // Remove our callback from the registry, since it may outlive us. 72 // Remove our callback from the registry, since it may outlive us.
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 priority_pref_sync_associator_.AddSyncedPrefObserver(name, observer); 153 priority_pref_sync_associator_.AddSyncedPrefObserver(name, observer);
156 } 154 }
157 155
158 void PrefServiceSyncable::RemoveSyncedPrefObserver( 156 void PrefServiceSyncable::RemoveSyncedPrefObserver(
159 const std::string& name, 157 const std::string& name,
160 SyncedPrefObserver* observer) { 158 SyncedPrefObserver* observer) {
161 pref_sync_associator_.RemoveSyncedPrefObserver(name, observer); 159 pref_sync_associator_.RemoveSyncedPrefObserver(name, observer);
162 priority_pref_sync_associator_.RemoveSyncedPrefObserver(name, observer); 160 priority_pref_sync_associator_.RemoveSyncedPrefObserver(name, observer);
163 } 161 }
164 162
165 void PrefServiceSyncable::AddRegisteredSyncablePreference( 163 void PrefServiceSyncable::AddRegisteredSyncablePreference(const char* path,
166 const char* path, 164 uint32 flags) {
167 const user_prefs::PrefRegistrySyncable::PrefSyncStatus sync_status) {
168 DCHECK(FindPreference(path)); 165 DCHECK(FindPreference(path));
169 if (sync_status == user_prefs::PrefRegistrySyncable::SYNCABLE_PREF) { 166 if (flags & user_prefs::PrefRegistrySyncable::SYNCABLE_PREF) {
170 pref_sync_associator_.RegisterPref(path); 167 pref_sync_associator_.RegisterPref(path);
171 } else if (sync_status == 168 } else if (flags &
172 user_prefs::PrefRegistrySyncable::SYNCABLE_PRIORITY_PREF) { 169 user_prefs::PrefRegistrySyncable::SYNCABLE_PRIORITY_PREF) {
173 priority_pref_sync_associator_.RegisterPref(path); 170 priority_pref_sync_associator_.RegisterPref(path);
174 } else {
175 NOTREACHED() << "invalid sync_status: " << sync_status;
176 } 171 }
177 } 172 }
178 173
179 void PrefServiceSyncable::OnIsSyncingChanged() { 174 void PrefServiceSyncable::OnIsSyncingChanged() {
180 FOR_EACH_OBSERVER(PrefServiceSyncableObserver, observer_list_, 175 FOR_EACH_OBSERVER(PrefServiceSyncableObserver, observer_list_,
181 OnIsSyncingChanged()); 176 OnIsSyncingChanged());
182 } 177 }
183 178
184 void PrefServiceSyncable::ProcessPrefChange(const std::string& name) { 179 void PrefServiceSyncable::ProcessPrefChange(const std::string& name) {
185 pref_sync_associator_.ProcessPrefChange(name); 180 pref_sync_associator_.ProcessPrefChange(name);
186 priority_pref_sync_associator_.ProcessPrefChange(name); 181 priority_pref_sync_associator_.ProcessPrefChange(name);
187 } 182 }
OLDNEW
« no previous file with comments | « chrome/browser/prefs/pref_service_syncable.h ('k') | chrome/browser/ui/prefs/prefs_tab_helper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698