OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 } |
OLD | NEW |