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

Side by Side Diff: components/sync_driver/sync_prefs.cc

Issue 195873020: [Sync] Move SyncPrefs into sync_driver component (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rerererebase Created 6 years, 9 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 | Annotate | Revision Log
« no previous file with comments | « components/sync_driver/sync_prefs.h ('k') | components/sync_driver/sync_prefs_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/sync/sync_prefs.h" 5 #include "components/sync_driver/sync_prefs.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/prefs/pref_member.h" 9 #include "base/prefs/pref_member.h"
10 #include "base/prefs/pref_service.h" 10 #include "base/prefs/pref_service.h"
11 #include "base/strings/string_number_conversions.h" 11 #include "base/strings/string_number_conversions.h"
12 #include "base/values.h" 12 #include "base/values.h"
13 #include "build/build_config.h" 13 #include "build/build_config.h"
14 #include "chrome/browser/chrome_notification_types.h" 14 #include "components/sync_driver/pref_names.h"
15 #include "chrome/browser/profiles/profile_io_data.h"
16 #include "chrome/browser/sync/profile_sync_service.h"
17 #include "chrome/common/chrome_switches.h"
18 #include "chrome/common/pref_names.h"
19 #include "components/user_prefs/pref_registry_syncable.h" 15 #include "components/user_prefs/pref_registry_syncable.h"
20 #include "content/public/browser/notification_details.h"
21 #include "content/public/browser/notification_source.h"
22 16
23 namespace browser_sync { 17 namespace sync_driver {
24 18
25 SyncPrefObserver::~SyncPrefObserver() {} 19 SyncPrefObserver::~SyncPrefObserver() {}
26 20
27 SyncPrefs::SyncPrefs(PrefService* pref_service) 21 SyncPrefs::SyncPrefs(PrefService* pref_service) : pref_service_(pref_service) {
28 : pref_service_(pref_service) {
29 DCHECK(pref_service); 22 DCHECK(pref_service);
30 RegisterPrefGroups(); 23 RegisterPrefGroups();
31 // Watch the preference that indicates sync is managed so we can take 24 // Watch the preference that indicates sync is managed so we can take
32 // appropriate action. 25 // appropriate action.
33 pref_sync_managed_.Init(prefs::kSyncManaged, pref_service_, 26 pref_sync_managed_.Init(
34 base::Bind(&SyncPrefs::OnSyncManagedPrefChanged, 27 prefs::kSyncManaged,
35 base::Unretained(this))); 28 pref_service_,
29 base::Bind(&SyncPrefs::OnSyncManagedPrefChanged, base::Unretained(this)));
36 } 30 }
37 31
38 SyncPrefs::~SyncPrefs() { 32 SyncPrefs::~SyncPrefs() { DCHECK(CalledOnValidThread()); }
39 DCHECK(CalledOnValidThread());
40 }
41 33
42 // static 34 // static
43 void SyncPrefs::RegisterProfilePrefs( 35 void SyncPrefs::RegisterProfilePrefs(
44 user_prefs::PrefRegistrySyncable* registry) { 36 user_prefs::PrefRegistrySyncable* registry) {
45 registry->RegisterBooleanPref( 37 registry->RegisterBooleanPref(
46 prefs::kSyncHasSetupCompleted, 38 prefs::kSyncHasSetupCompleted,
47 false, 39 false,
48 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 40 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
49 registry->RegisterBooleanPref( 41 registry->RegisterBooleanPref(
50 prefs::kSyncSuppressStart, 42 prefs::kSyncSuppressStart,
(...skipping 30 matching lines...) Expand all
81 73
82 registry->RegisterStringPref( 74 registry->RegisterStringPref(
83 prefs::kEnhancedBookmarksExtensionId, 75 prefs::kEnhancedBookmarksExtensionId,
84 std::string(), 76 std::string(),
85 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 77 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
86 78
87 // All types are set to off by default, which forces a configuration to 79 // All types are set to off by default, which forces a configuration to
88 // explicitly enable them. GetPreferredTypes() will ensure that any new 80 // explicitly enable them. GetPreferredTypes() will ensure that any new
89 // implicit types are enabled when their pref group is, or via 81 // implicit types are enabled when their pref group is, or via
90 // KeepEverythingSynced. 82 // KeepEverythingSynced.
91 for (syncer::ModelTypeSet::Iterator it = user_types.First(); 83 for (syncer::ModelTypeSet::Iterator it = user_types.First(); it.Good();
92 it.Good(); it.Inc()) { 84 it.Inc()) {
93 RegisterDataTypePreferredPref(registry, it.Get(), false); 85 RegisterDataTypePreferredPref(registry, it.Get(), false);
94 } 86 }
95 87
96 registry->RegisterBooleanPref( 88 registry->RegisterBooleanPref(
97 prefs::kSyncManaged, 89 prefs::kSyncManaged,
98 false, 90 false,
99 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 91 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
100 registry->RegisterStringPref( 92 registry->RegisterStringPref(
101 prefs::kSyncEncryptionBootstrapToken, 93 prefs::kSyncEncryptionBootstrapToken,
102 std::string(), 94 std::string(),
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 bool SyncPrefs::IsStartSuppressed() const { 182 bool SyncPrefs::IsStartSuppressed() const {
191 DCHECK(CalledOnValidThread()); 183 DCHECK(CalledOnValidThread());
192 return pref_service_->GetBoolean(prefs::kSyncSuppressStart); 184 return pref_service_->GetBoolean(prefs::kSyncSuppressStart);
193 } 185 }
194 186
195 void SyncPrefs::SetStartSuppressed(bool is_suppressed) { 187 void SyncPrefs::SetStartSuppressed(bool is_suppressed) {
196 DCHECK(CalledOnValidThread()); 188 DCHECK(CalledOnValidThread());
197 pref_service_->SetBoolean(prefs::kSyncSuppressStart, is_suppressed); 189 pref_service_->SetBoolean(prefs::kSyncSuppressStart, is_suppressed);
198 } 190 }
199 191
200 std::string SyncPrefs::GetGoogleServicesUsername() const {
201 DCHECK(CalledOnValidThread());
202 return pref_service_->GetString(prefs::kGoogleServicesUsername);
203 }
204
205 base::Time SyncPrefs::GetLastSyncedTime() const { 192 base::Time SyncPrefs::GetLastSyncedTime() const {
206 DCHECK(CalledOnValidThread()); 193 DCHECK(CalledOnValidThread());
207 return 194 return base::Time::FromInternalValue(
208 base::Time::FromInternalValue( 195 pref_service_->GetInt64(prefs::kSyncLastSyncedTime));
209 pref_service_->GetInt64(prefs::kSyncLastSyncedTime));
210 } 196 }
211 197
212 void SyncPrefs::SetLastSyncedTime(base::Time time) { 198 void SyncPrefs::SetLastSyncedTime(base::Time time) {
213 DCHECK(CalledOnValidThread()); 199 DCHECK(CalledOnValidThread());
214 pref_service_->SetInt64(prefs::kSyncLastSyncedTime, time.ToInternalValue()); 200 pref_service_->SetInt64(prefs::kSyncLastSyncedTime, time.ToInternalValue());
215 } 201 }
216 202
217 bool SyncPrefs::HasKeepEverythingSynced() const { 203 bool SyncPrefs::HasKeepEverythingSynced() const {
218 DCHECK(CalledOnValidThread()); 204 DCHECK(CalledOnValidThread());
219 return pref_service_->GetBoolean(prefs::kSyncKeepEverythingSynced); 205 return pref_service_->GetBoolean(prefs::kSyncKeepEverythingSynced);
220 } 206 }
221 207
222 void SyncPrefs::SetKeepEverythingSynced(bool keep_everything_synced) { 208 void SyncPrefs::SetKeepEverythingSynced(bool keep_everything_synced) {
223 DCHECK(CalledOnValidThread()); 209 DCHECK(CalledOnValidThread());
224 pref_service_->SetBoolean(prefs::kSyncKeepEverythingSynced, 210 pref_service_->SetBoolean(prefs::kSyncKeepEverythingSynced,
225 keep_everything_synced); 211 keep_everything_synced);
226 } 212 }
227 213
228 syncer::ModelTypeSet SyncPrefs::GetPreferredDataTypes( 214 syncer::ModelTypeSet SyncPrefs::GetPreferredDataTypes(
229 syncer::ModelTypeSet registered_types) const { 215 syncer::ModelTypeSet registered_types) const {
230 DCHECK(CalledOnValidThread()); 216 DCHECK(CalledOnValidThread());
231 217
232 // First remove any datatypes that are inconsistent with the current policies
233 // on the client (so that "keep everything synced" doesn't include them).
234 if (pref_service_->HasPrefPath(prefs::kSavingBrowserHistoryDisabled) &&
235 pref_service_->GetBoolean(prefs::kSavingBrowserHistoryDisabled)) {
236 registered_types.Remove(syncer::TYPED_URLS);
237 }
238
239 if (pref_service_->GetBoolean(prefs::kSyncKeepEverythingSynced)) { 218 if (pref_service_->GetBoolean(prefs::kSyncKeepEverythingSynced)) {
240 return registered_types; 219 return registered_types;
241 } 220 }
242 221
243 syncer::ModelTypeSet preferred_types; 222 syncer::ModelTypeSet preferred_types;
244 for (syncer::ModelTypeSet::Iterator it = registered_types.First(); 223 for (syncer::ModelTypeSet::Iterator it = registered_types.First(); it.Good();
245 it.Good(); it.Inc()) { 224 it.Inc()) {
246 if (GetDataTypePreferred(it.Get())) { 225 if (GetDataTypePreferred(it.Get())) {
247 preferred_types.Put(it.Get()); 226 preferred_types.Put(it.Get());
248 } 227 }
249 } 228 }
250 return ResolvePrefGroups(registered_types, preferred_types); 229 return ResolvePrefGroups(registered_types, preferred_types);
251 } 230 }
252 231
253 void SyncPrefs::SetPreferredDataTypes( 232 void SyncPrefs::SetPreferredDataTypes(syncer::ModelTypeSet registered_types,
254 syncer::ModelTypeSet registered_types, 233 syncer::ModelTypeSet preferred_types) {
255 syncer::ModelTypeSet preferred_types) {
256 DCHECK(CalledOnValidThread()); 234 DCHECK(CalledOnValidThread());
257 DCHECK(registered_types.HasAll(preferred_types)); 235 DCHECK(registered_types.HasAll(preferred_types));
258 preferred_types = ResolvePrefGroups(registered_types, preferred_types); 236 preferred_types = ResolvePrefGroups(registered_types, preferred_types);
259 for (syncer::ModelTypeSet::Iterator i = registered_types.First(); 237 for (syncer::ModelTypeSet::Iterator i = registered_types.First(); i.Good();
260 i.Good(); i.Inc()) { 238 i.Inc()) {
261 SetDataTypePreferred(i.Get(), preferred_types.Has(i.Get())); 239 SetDataTypePreferred(i.Get(), preferred_types.Has(i.Get()));
262 } 240 }
263 } 241 }
264 242
265 bool SyncPrefs::IsManaged() const { 243 bool SyncPrefs::IsManaged() const {
266 DCHECK(CalledOnValidThread()); 244 DCHECK(CalledOnValidThread());
267 return pref_service_->GetBoolean(prefs::kSyncManaged); 245 return pref_service_->GetBoolean(prefs::kSyncManaged);
268 } 246 }
269 247
270 std::string SyncPrefs::GetEncryptionBootstrapToken() const { 248 std::string SyncPrefs::GetEncryptionBootstrapToken() const {
271 DCHECK(CalledOnValidThread()); 249 DCHECK(CalledOnValidThread());
272 return pref_service_->GetString(prefs::kSyncEncryptionBootstrapToken); 250 return pref_service_->GetString(prefs::kSyncEncryptionBootstrapToken);
273 } 251 }
274 252
275 void SyncPrefs::SetEncryptionBootstrapToken(const std::string& token) { 253 void SyncPrefs::SetEncryptionBootstrapToken(const std::string& token) {
276 DCHECK(CalledOnValidThread()); 254 DCHECK(CalledOnValidThread());
277 pref_service_->SetString(prefs::kSyncEncryptionBootstrapToken, token); 255 pref_service_->SetString(prefs::kSyncEncryptionBootstrapToken, token);
278 } 256 }
279 257
280 std::string SyncPrefs::GetKeystoreEncryptionBootstrapToken() const { 258 std::string SyncPrefs::GetKeystoreEncryptionBootstrapToken() const {
281 DCHECK(CalledOnValidThread()); 259 DCHECK(CalledOnValidThread());
282 return pref_service_->GetString( 260 return pref_service_->GetString(prefs::kSyncKeystoreEncryptionBootstrapToken);
283 prefs::kSyncKeystoreEncryptionBootstrapToken);
284 } 261 }
285 262
286 void SyncPrefs::SetKeystoreEncryptionBootstrapToken(const std::string& token) { 263 void SyncPrefs::SetKeystoreEncryptionBootstrapToken(const std::string& token) {
287 DCHECK(CalledOnValidThread()); 264 DCHECK(CalledOnValidThread());
288 pref_service_->SetString(prefs::kSyncKeystoreEncryptionBootstrapToken, token); 265 pref_service_->SetString(prefs::kSyncKeystoreEncryptionBootstrapToken, token);
289 } 266 }
290 267
291 std::string SyncPrefs::GetSyncSessionsGUID() const { 268 std::string SyncPrefs::GetSyncSessionsGUID() const {
292 DCHECK(CalledOnValidThread()); 269 DCHECK(CalledOnValidThread());
293 return pref_service_->GetString(prefs::kSyncSessionsGUID); 270 return pref_service_->GetString(prefs::kSyncSessionsGUID);
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
383 syncer::ModelTypeSetFromValue( 360 syncer::ModelTypeSetFromValue(
384 *pref_service_->GetList(prefs::kSyncAcknowledgedSyncTypes))); 361 *pref_service_->GetList(prefs::kSyncAcknowledgedSyncTypes)));
385 362
386 scoped_ptr<base::ListValue> value( 363 scoped_ptr<base::ListValue> value(
387 syncer::ModelTypeSetToValue(acknowledged_types)); 364 syncer::ModelTypeSetToValue(acknowledged_types));
388 pref_service_->Set(prefs::kSyncAcknowledgedSyncTypes, *value); 365 pref_service_->Set(prefs::kSyncAcknowledgedSyncTypes, *value);
389 } 366 }
390 367
391 void SyncPrefs::OnSyncManagedPrefChanged() { 368 void SyncPrefs::OnSyncManagedPrefChanged() {
392 DCHECK(CalledOnValidThread()); 369 DCHECK(CalledOnValidThread());
393 FOR_EACH_OBSERVER(SyncPrefObserver, sync_pref_observers_, 370 FOR_EACH_OBSERVER(SyncPrefObserver,
371 sync_pref_observers_,
394 OnSyncManagedPrefChange(*pref_sync_managed_)); 372 OnSyncManagedPrefChange(*pref_sync_managed_));
395 } 373 }
396 374
397 void SyncPrefs::SetManagedForTest(bool is_managed) { 375 void SyncPrefs::SetManagedForTest(bool is_managed) {
398 DCHECK(CalledOnValidThread()); 376 DCHECK(CalledOnValidThread());
399 pref_service_->SetBoolean(prefs::kSyncManaged, is_managed); 377 pref_service_->SetBoolean(prefs::kSyncManaged, is_managed);
400 } 378 }
401 379
402 syncer::ModelTypeSet SyncPrefs::GetAcknowledgeSyncedTypesForTest() const { 380 syncer::ModelTypeSet SyncPrefs::GetAcknowledgeSyncedTypesForTest() const {
403 DCHECK(CalledOnValidThread()); 381 DCHECK(CalledOnValidThread());
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
460 pref_service_->GetUserPrefValue(pref_name) == NULL && 438 pref_service_->GetUserPrefValue(pref_name) == NULL &&
461 pref_service_->IsUserModifiablePreference(pref_name)) { 439 pref_service_->IsUserModifiablePreference(pref_name)) {
462 // If there is no tab sync preference yet (i.e. newly enabled type), 440 // If there is no tab sync preference yet (i.e. newly enabled type),
463 // default to the session sync preference value. 441 // default to the session sync preference value.
464 pref_name = GetPrefNameForDataType(syncer::SESSIONS); 442 pref_name = GetPrefNameForDataType(syncer::SESSIONS);
465 } 443 }
466 444
467 return pref_service_->GetBoolean(pref_name); 445 return pref_service_->GetBoolean(pref_name);
468 } 446 }
469 447
470 void SyncPrefs::SetDataTypePreferred( 448 void SyncPrefs::SetDataTypePreferred(syncer::ModelType type,
471 syncer::ModelType type, bool is_preferred) { 449 bool is_preferred) {
472 DCHECK(CalledOnValidThread()); 450 DCHECK(CalledOnValidThread());
473 const char* pref_name = GetPrefNameForDataType(type); 451 const char* pref_name = GetPrefNameForDataType(type);
474 if (!pref_name) { 452 if (!pref_name) {
475 NOTREACHED(); 453 NOTREACHED();
476 return; 454 return;
477 } 455 }
478 pref_service_->SetBoolean(pref_name, is_preferred); 456 pref_service_->SetBoolean(pref_name, is_preferred);
479 } 457 }
480 458
481 syncer::ModelTypeSet SyncPrefs::ResolvePrefGroups( 459 syncer::ModelTypeSet SyncPrefs::ResolvePrefGroups(
482 syncer::ModelTypeSet registered_types, 460 syncer::ModelTypeSet registered_types,
483 syncer::ModelTypeSet types) const { 461 syncer::ModelTypeSet types) const {
484 DCHECK(registered_types.HasAll(types)); 462 DCHECK(registered_types.HasAll(types));
485 syncer::ModelTypeSet types_with_groups = types; 463 syncer::ModelTypeSet types_with_groups = types;
486 for (PrefGroupsMap::const_iterator i = pref_groups_.begin(); 464 for (PrefGroupsMap::const_iterator i = pref_groups_.begin();
487 i != pref_groups_.end(); ++i) { 465 i != pref_groups_.end();
466 ++i) {
488 if (types.Has(i->first)) 467 if (types.Has(i->first))
489 types_with_groups.PutAll(i->second); 468 types_with_groups.PutAll(i->second);
490 } 469 }
491 types_with_groups.RetainAll(registered_types); 470 types_with_groups.RetainAll(registered_types);
492 return types_with_groups; 471 return types_with_groups;
493 } 472 }
494 473
495 } // namespace browser_sync 474 } // namespace browser_sync
OLDNEW
« no previous file with comments | « components/sync_driver/sync_prefs.h ('k') | components/sync_driver/sync_prefs_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698