| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "chrome/browser/sync/sync_prefs.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "base/string_number_conversions.h" | 8 #include "base/string_number_conversions.h" |
| 9 #include "base/values.h" | 9 #include "base/values.h" |
| 10 #include "build/build_config.h" | 10 #include "build/build_config.h" |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 46 DCHECK(non_thread_safe_.CalledOnValidThread()); | 46 DCHECK(non_thread_safe_.CalledOnValidThread()); |
| 47 CHECK(pref_service_); | 47 CHECK(pref_service_); |
| 48 pref_service_->ClearPref(prefs::kSyncLastSyncedTime); | 48 pref_service_->ClearPref(prefs::kSyncLastSyncedTime); |
| 49 pref_service_->ClearPref(prefs::kSyncHasSetupCompleted); | 49 pref_service_->ClearPref(prefs::kSyncHasSetupCompleted); |
| 50 pref_service_->ClearPref(prefs::kSyncEncryptionBootstrapToken); | 50 pref_service_->ClearPref(prefs::kSyncEncryptionBootstrapToken); |
| 51 | 51 |
| 52 // TODO(nick): The current behavior does not clear | 52 // TODO(nick): The current behavior does not clear |
| 53 // e.g. prefs::kSyncBookmarks. Is that really what we want? | 53 // e.g. prefs::kSyncBookmarks. Is that really what we want? |
| 54 | 54 |
| 55 pref_service_->ClearPref(prefs::kSyncMaxInvalidationVersions); | 55 pref_service_->ClearPref(prefs::kSyncMaxInvalidationVersions); |
| 56 | |
| 57 pref_service_->ScheduleSavePersistentPrefs(); | |
| 58 } | 56 } |
| 59 | 57 |
| 60 bool SyncPrefs::HasSyncSetupCompleted() const { | 58 bool SyncPrefs::HasSyncSetupCompleted() const { |
| 61 DCHECK(non_thread_safe_.CalledOnValidThread()); | 59 DCHECK(non_thread_safe_.CalledOnValidThread()); |
| 62 return | 60 return |
| 63 pref_service_ && | 61 pref_service_ && |
| 64 pref_service_->GetBoolean(prefs::kSyncHasSetupCompleted); | 62 pref_service_->GetBoolean(prefs::kSyncHasSetupCompleted); |
| 65 } | 63 } |
| 66 | 64 |
| 67 void SyncPrefs::SetSyncSetupCompleted() { | 65 void SyncPrefs::SetSyncSetupCompleted() { |
| 68 DCHECK(non_thread_safe_.CalledOnValidThread()); | 66 DCHECK(non_thread_safe_.CalledOnValidThread()); |
| 69 CHECK(pref_service_); | 67 CHECK(pref_service_); |
| 70 pref_service_->SetBoolean(prefs::kSyncHasSetupCompleted, true); | 68 pref_service_->SetBoolean(prefs::kSyncHasSetupCompleted, true); |
| 71 SetStartSuppressed(false); | 69 SetStartSuppressed(false); |
| 72 pref_service_->ScheduleSavePersistentPrefs(); | |
| 73 } | 70 } |
| 74 | 71 |
| 75 bool SyncPrefs::IsStartSuppressed() const { | 72 bool SyncPrefs::IsStartSuppressed() const { |
| 76 DCHECK(non_thread_safe_.CalledOnValidThread()); | 73 DCHECK(non_thread_safe_.CalledOnValidThread()); |
| 77 return | 74 return |
| 78 pref_service_ && | 75 pref_service_ && |
| 79 pref_service_->GetBoolean(prefs::kSyncSuppressStart); | 76 pref_service_->GetBoolean(prefs::kSyncSuppressStart); |
| 80 } | 77 } |
| 81 | 78 |
| 82 void SyncPrefs::SetStartSuppressed(bool is_suppressed) { | 79 void SyncPrefs::SetStartSuppressed(bool is_suppressed) { |
| 83 DCHECK(non_thread_safe_.CalledOnValidThread()); | 80 DCHECK(non_thread_safe_.CalledOnValidThread()); |
| 84 CHECK(pref_service_); | 81 CHECK(pref_service_); |
| 85 pref_service_->SetBoolean(prefs::kSyncSuppressStart, is_suppressed); | 82 pref_service_->SetBoolean(prefs::kSyncSuppressStart, is_suppressed); |
| 86 pref_service_->ScheduleSavePersistentPrefs(); | |
| 87 } | 83 } |
| 88 | 84 |
| 89 std::string SyncPrefs::GetGoogleServicesUsername() const { | 85 std::string SyncPrefs::GetGoogleServicesUsername() const { |
| 90 DCHECK(non_thread_safe_.CalledOnValidThread()); | 86 DCHECK(non_thread_safe_.CalledOnValidThread()); |
| 91 return | 87 return |
| 92 pref_service_ ? | 88 pref_service_ ? |
| 93 pref_service_->GetString(prefs::kGoogleServicesUsername) : ""; | 89 pref_service_->GetString(prefs::kGoogleServicesUsername) : ""; |
| 94 } | 90 } |
| 95 | 91 |
| 96 base::Time SyncPrefs::GetLastSyncedTime() const { | 92 base::Time SyncPrefs::GetLastSyncedTime() const { |
| 97 DCHECK(non_thread_safe_.CalledOnValidThread()); | 93 DCHECK(non_thread_safe_.CalledOnValidThread()); |
| 98 return | 94 return |
| 99 base::Time::FromInternalValue( | 95 base::Time::FromInternalValue( |
| 100 pref_service_ ? | 96 pref_service_ ? |
| 101 pref_service_->GetInt64(prefs::kSyncLastSyncedTime) : 0); | 97 pref_service_->GetInt64(prefs::kSyncLastSyncedTime) : 0); |
| 102 } | 98 } |
| 103 | 99 |
| 104 void SyncPrefs::SetLastSyncedTime(base::Time time) { | 100 void SyncPrefs::SetLastSyncedTime(base::Time time) { |
| 105 DCHECK(non_thread_safe_.CalledOnValidThread()); | 101 DCHECK(non_thread_safe_.CalledOnValidThread()); |
| 106 CHECK(pref_service_); | 102 CHECK(pref_service_); |
| 107 pref_service_->SetInt64(prefs::kSyncLastSyncedTime, time.ToInternalValue()); | 103 pref_service_->SetInt64(prefs::kSyncLastSyncedTime, time.ToInternalValue()); |
| 108 pref_service_->ScheduleSavePersistentPrefs(); | |
| 109 } | 104 } |
| 110 | 105 |
| 111 bool SyncPrefs::HasKeepEverythingSynced() const { | 106 bool SyncPrefs::HasKeepEverythingSynced() const { |
| 112 DCHECK(non_thread_safe_.CalledOnValidThread()); | 107 DCHECK(non_thread_safe_.CalledOnValidThread()); |
| 113 return | 108 return |
| 114 pref_service_ && | 109 pref_service_ && |
| 115 pref_service_->GetBoolean(prefs::kSyncKeepEverythingSynced); | 110 pref_service_->GetBoolean(prefs::kSyncKeepEverythingSynced); |
| 116 } | 111 } |
| 117 | 112 |
| 118 void SyncPrefs::SetKeepEverythingSynced(bool keep_everything_synced) { | 113 void SyncPrefs::SetKeepEverythingSynced(bool keep_everything_synced) { |
| 119 DCHECK(non_thread_safe_.CalledOnValidThread()); | 114 DCHECK(non_thread_safe_.CalledOnValidThread()); |
| 120 CHECK(pref_service_); | 115 CHECK(pref_service_); |
| 121 pref_service_->SetBoolean(prefs::kSyncKeepEverythingSynced, | 116 pref_service_->SetBoolean(prefs::kSyncKeepEverythingSynced, |
| 122 keep_everything_synced); | 117 keep_everything_synced); |
| 123 pref_service_->ScheduleSavePersistentPrefs(); | |
| 124 } | 118 } |
| 125 | 119 |
| 126 syncable::ModelTypeSet SyncPrefs::GetPreferredDataTypes( | 120 syncable::ModelTypeSet SyncPrefs::GetPreferredDataTypes( |
| 127 syncable::ModelTypeSet registered_types) const { | 121 syncable::ModelTypeSet registered_types) const { |
| 128 DCHECK(non_thread_safe_.CalledOnValidThread()); | 122 DCHECK(non_thread_safe_.CalledOnValidThread()); |
| 129 if (!pref_service_) { | 123 if (!pref_service_) { |
| 130 return syncable::ModelTypeSet(); | 124 return syncable::ModelTypeSet(); |
| 131 } | 125 } |
| 132 | 126 |
| 133 if (pref_service_->GetBoolean(prefs::kSyncKeepEverythingSynced)) { | 127 if (pref_service_->GetBoolean(prefs::kSyncKeepEverythingSynced)) { |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 234 DCHECK(non_thread_safe_.CalledOnValidThread()); | 228 DCHECK(non_thread_safe_.CalledOnValidThread()); |
| 235 return | 229 return |
| 236 pref_service_ ? | 230 pref_service_ ? |
| 237 pref_service_->GetString(prefs::kSyncEncryptionBootstrapToken) : ""; | 231 pref_service_->GetString(prefs::kSyncEncryptionBootstrapToken) : ""; |
| 238 } | 232 } |
| 239 | 233 |
| 240 void SyncPrefs::SetEncryptionBootstrapToken(const std::string& token) { | 234 void SyncPrefs::SetEncryptionBootstrapToken(const std::string& token) { |
| 241 DCHECK(non_thread_safe_.CalledOnValidThread()); | 235 DCHECK(non_thread_safe_.CalledOnValidThread()); |
| 242 CHECK(pref_service_); | 236 CHECK(pref_service_); |
| 243 pref_service_->SetString(prefs::kSyncEncryptionBootstrapToken, token); | 237 pref_service_->SetString(prefs::kSyncEncryptionBootstrapToken, token); |
| 244 pref_service_->ScheduleSavePersistentPrefs(); | |
| 245 } | 238 } |
| 246 | 239 |
| 247 sync_notifier::InvalidationVersionMap SyncPrefs::GetAllMaxVersions() const { | 240 sync_notifier::InvalidationVersionMap SyncPrefs::GetAllMaxVersions() const { |
| 248 DCHECK(non_thread_safe_.CalledOnValidThread()); | 241 DCHECK(non_thread_safe_.CalledOnValidThread()); |
| 249 if (!pref_service_) { | 242 if (!pref_service_) { |
| 250 return sync_notifier::InvalidationVersionMap(); | 243 return sync_notifier::InvalidationVersionMap(); |
| 251 } | 244 } |
| 252 // Complicated gross code to convert from a string -> string | 245 // Complicated gross code to convert from a string -> string |
| 253 // DictionaryValue to a ModelType -> int64 map. | 246 // DictionaryValue to a ModelType -> int64 map. |
| 254 const base::DictionaryValue* max_versions_dict = | 247 const base::DictionaryValue* max_versions_dict = |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 319 // Add the types to the current set of acknowledged | 312 // Add the types to the current set of acknowledged |
| 320 // types, and then store the resulting set in prefs. | 313 // types, and then store the resulting set in prefs. |
| 321 const syncable::ModelTypeSet acknowledged_types = | 314 const syncable::ModelTypeSet acknowledged_types = |
| 322 Union(types, | 315 Union(types, |
| 323 syncable::ModelTypeSetFromValue( | 316 syncable::ModelTypeSetFromValue( |
| 324 *pref_service_->GetList(prefs::kSyncAcknowledgedSyncTypes))); | 317 *pref_service_->GetList(prefs::kSyncAcknowledgedSyncTypes))); |
| 325 | 318 |
| 326 scoped_ptr<ListValue> value( | 319 scoped_ptr<ListValue> value( |
| 327 syncable::ModelTypeSetToValue(acknowledged_types)); | 320 syncable::ModelTypeSetToValue(acknowledged_types)); |
| 328 pref_service_->Set(prefs::kSyncAcknowledgedSyncTypes, *value); | 321 pref_service_->Set(prefs::kSyncAcknowledgedSyncTypes, *value); |
| 329 pref_service_->ScheduleSavePersistentPrefs(); | |
| 330 } | 322 } |
| 331 | 323 |
| 332 void SyncPrefs::Observe(int type, | 324 void SyncPrefs::Observe(int type, |
| 333 const content::NotificationSource& source, | 325 const content::NotificationSource& source, |
| 334 const content::NotificationDetails& details) { | 326 const content::NotificationDetails& details) { |
| 335 DCHECK(non_thread_safe_.CalledOnValidThread()); | 327 DCHECK(non_thread_safe_.CalledOnValidThread()); |
| 336 DCHECK(content::Source<PrefService>(pref_service_) == source); | 328 DCHECK(content::Source<PrefService>(pref_service_) == source); |
| 337 switch (type) { | 329 switch (type) { |
| 338 case chrome::NOTIFICATION_PREF_CHANGED: { | 330 case chrome::NOTIFICATION_PREF_CHANGED: { |
| 339 const std::string* pref_name = | 331 const std::string* pref_name = |
| 340 content::Details<const std::string>(details).ptr(); | 332 content::Details<const std::string>(details).ptr(); |
| 341 if (*pref_name == prefs::kSyncManaged) { | 333 if (*pref_name == prefs::kSyncManaged) { |
| 342 FOR_EACH_OBSERVER(SyncPrefObserver, sync_pref_observers_, | 334 FOR_EACH_OBSERVER(SyncPrefObserver, sync_pref_observers_, |
| 343 OnSyncManagedPrefChange(*pref_sync_managed_)); | 335 OnSyncManagedPrefChange(*pref_sync_managed_)); |
| 344 } | 336 } |
| 345 break; | 337 break; |
| 346 } | 338 } |
| 347 default: | 339 default: |
| 348 NOTREACHED(); | 340 NOTREACHED(); |
| 349 break; | 341 break; |
| 350 } | 342 } |
| 351 } | 343 } |
| 352 | 344 |
| 353 void SyncPrefs::SetManagedForTest(bool is_managed) { | 345 void SyncPrefs::SetManagedForTest(bool is_managed) { |
| 354 DCHECK(non_thread_safe_.CalledOnValidThread()); | 346 DCHECK(non_thread_safe_.CalledOnValidThread()); |
| 355 CHECK(pref_service_); | 347 CHECK(pref_service_); |
| 356 pref_service_->SetBoolean(prefs::kSyncManaged, is_managed); | 348 pref_service_->SetBoolean(prefs::kSyncManaged, is_managed); |
| 357 pref_service_->ScheduleSavePersistentPrefs(); | |
| 358 } | 349 } |
| 359 | 350 |
| 360 syncable::ModelTypeSet SyncPrefs::GetAcknowledgeSyncedTypesForTest() const { | 351 syncable::ModelTypeSet SyncPrefs::GetAcknowledgeSyncedTypesForTest() const { |
| 361 DCHECK(non_thread_safe_.CalledOnValidThread()); | 352 DCHECK(non_thread_safe_.CalledOnValidThread()); |
| 362 if (!pref_service_) { | 353 if (!pref_service_) { |
| 363 return syncable::ModelTypeSet(); | 354 return syncable::ModelTypeSet(); |
| 364 } | 355 } |
| 365 return syncable::ModelTypeSetFromValue( | 356 return syncable::ModelTypeSetFromValue( |
| 366 *pref_service_->GetList(prefs::kSyncAcknowledgedSyncTypes)); | 357 *pref_service_->GetList(prefs::kSyncAcknowledgedSyncTypes)); |
| 367 } | 358 } |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 511 void SyncPrefs::SetDataTypePreferred( | 502 void SyncPrefs::SetDataTypePreferred( |
| 512 syncable::ModelType type, bool is_preferred) { | 503 syncable::ModelType type, bool is_preferred) { |
| 513 DCHECK(non_thread_safe_.CalledOnValidThread()); | 504 DCHECK(non_thread_safe_.CalledOnValidThread()); |
| 514 CHECK(pref_service_); | 505 CHECK(pref_service_); |
| 515 const char* pref_name = GetPrefNameForDataType(type); | 506 const char* pref_name = GetPrefNameForDataType(type); |
| 516 if (!pref_name) { | 507 if (!pref_name) { |
| 517 NOTREACHED(); | 508 NOTREACHED(); |
| 518 return; | 509 return; |
| 519 } | 510 } |
| 520 pref_service_->SetBoolean(pref_name, is_preferred); | 511 pref_service_->SetBoolean(pref_name, is_preferred); |
| 521 pref_service_->ScheduleSavePersistentPrefs(); | |
| 522 } | 512 } |
| 523 | 513 |
| 524 } // namespace browser_sync | 514 } // namespace browser_sync |
| OLD | NEW |