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

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 (const auto& entry : pref_registry->registration_flags())
59 pref_registry->syncable_preferences(); 59 AddRegisteredSyncablePreference(entry.first.c_str(), entry.second);
60 for (user_prefs::PrefRegistrySyncable::PrefToStatus::const_iterator it =
61 syncable_preferences.begin();
62 it != syncable_preferences.end();
63 ++it) {
64 AddRegisteredSyncablePreference(it->first.c_str(), it->second);
65 }
66 60
67 // Watch for syncable preferences registered after this point. 61 // Watch for syncable preferences registered after this point.
68 pref_registry->SetSyncableRegistrationCallback( 62 pref_registry->SetSyncableRegistrationCallback(
69 base::Bind(&PrefServiceSyncable::AddRegisteredSyncablePreference, 63 base::Bind(&PrefServiceSyncable::AddRegisteredSyncablePreference,
70 base::Unretained(this))); 64 base::Unretained(this)));
71 } 65 }
72 66
73 PrefServiceSyncable::~PrefServiceSyncable() { 67 PrefServiceSyncable::~PrefServiceSyncable() {
74 // Remove our callback from the registry, since it may outlive us. 68 // Remove our callback from the registry, since it may outlive us.
75 user_prefs::PrefRegistrySyncable* registry = 69 user_prefs::PrefRegistrySyncable* registry =
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 priority_pref_sync_associator_.AddSyncedPrefObserver(name, observer); 149 priority_pref_sync_associator_.AddSyncedPrefObserver(name, observer);
156 } 150 }
157 151
158 void PrefServiceSyncable::RemoveSyncedPrefObserver( 152 void PrefServiceSyncable::RemoveSyncedPrefObserver(
159 const std::string& name, 153 const std::string& name,
160 SyncedPrefObserver* observer) { 154 SyncedPrefObserver* observer) {
161 pref_sync_associator_.RemoveSyncedPrefObserver(name, observer); 155 pref_sync_associator_.RemoveSyncedPrefObserver(name, observer);
162 priority_pref_sync_associator_.RemoveSyncedPrefObserver(name, observer); 156 priority_pref_sync_associator_.RemoveSyncedPrefObserver(name, observer);
163 } 157 }
164 158
165 void PrefServiceSyncable::AddRegisteredSyncablePreference( 159 void PrefServiceSyncable::AddRegisteredSyncablePreference(const char* path,
166 const char* path, 160 uint32 flags) {
167 const user_prefs::PrefRegistrySyncable::PrefSyncStatus sync_status) {
168 DCHECK(FindPreference(path)); 161 DCHECK(FindPreference(path));
169 if (sync_status == user_prefs::PrefRegistrySyncable::SYNCABLE_PREF) { 162 if (flags & user_prefs::PrefRegistrySyncable::SYNCABLE_PREF) {
170 pref_sync_associator_.RegisterPref(path); 163 pref_sync_associator_.RegisterPref(path);
171 } else if (sync_status == 164 } else if (flags &
172 user_prefs::PrefRegistrySyncable::SYNCABLE_PRIORITY_PREF) { 165 user_prefs::PrefRegistrySyncable::SYNCABLE_PRIORITY_PREF) {
173 priority_pref_sync_associator_.RegisterPref(path); 166 priority_pref_sync_associator_.RegisterPref(path);
174 } else { 167 } else {
175 NOTREACHED() << "invalid sync_status: " << sync_status; 168 NOTREACHED() << "invalid sync flag";
Mattias Nissler (ping if slow) 2015/04/20 09:33:34 This is no longer appropriate after your code chan
raymes 2015/04/21 07:58:54 Ahh good catch, done.
176 } 169 }
177 } 170 }
178 171
179 void PrefServiceSyncable::OnIsSyncingChanged() { 172 void PrefServiceSyncable::OnIsSyncingChanged() {
180 FOR_EACH_OBSERVER(PrefServiceSyncableObserver, observer_list_, 173 FOR_EACH_OBSERVER(PrefServiceSyncableObserver, observer_list_,
181 OnIsSyncingChanged()); 174 OnIsSyncingChanged());
182 } 175 }
183 176
184 void PrefServiceSyncable::ProcessPrefChange(const std::string& name) { 177 void PrefServiceSyncable::ProcessPrefChange(const std::string& name) {
185 pref_sync_associator_.ProcessPrefChange(name); 178 pref_sync_associator_.ProcessPrefChange(name);
186 priority_pref_sync_associator_.ProcessPrefChange(name); 179 priority_pref_sync_associator_.ProcessPrefChange(name);
187 } 180 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698