| 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/profile_sync_service.h" | 5 #include "chrome/browser/sync/profile_sync_service.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <map> | 8 #include <map> |
| 9 #include <ostream> | 9 #include <ostream> |
| 10 #include <set> | 10 #include <set> |
| (...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 235 << "is invalid: " << value; | 235 << "is invalid: " << value; |
| 236 } | 236 } |
| 237 } | 237 } |
| 238 } | 238 } |
| 239 } | 239 } |
| 240 | 240 |
| 241 void ProfileSyncService::RegisterPreferences() { | 241 void ProfileSyncService::RegisterPreferences() { |
| 242 PrefService* pref_service = profile_->GetPrefs(); | 242 PrefService* pref_service = profile_->GetPrefs(); |
| 243 if (pref_service->FindPreference(prefs::kSyncLastSyncedTime)) | 243 if (pref_service->FindPreference(prefs::kSyncLastSyncedTime)) |
| 244 return; | 244 return; |
| 245 pref_service->RegisterInt64Pref(prefs::kSyncLastSyncedTime, 0); | 245 pref_service->RegisterInt64Pref(prefs::kSyncLastSyncedTime, |
| 246 pref_service->RegisterBooleanPref(prefs::kSyncHasSetupCompleted, false); | 246 0, |
| 247 pref_service->RegisterBooleanPref(prefs::kSyncSuppressStart, false); | 247 PrefService::UNSYNCABLE_PREF); |
| 248 pref_service->RegisterBooleanPref(prefs::kSyncHasSetupCompleted, |
| 249 false, |
| 250 PrefService::UNSYNCABLE_PREF); |
| 251 pref_service->RegisterBooleanPref(prefs::kSyncSuppressStart, |
| 252 false, |
| 253 PrefService::UNSYNCABLE_PREF); |
| 248 | 254 |
| 249 // If you've never synced before, or if you're using Chrome OS, all datatypes | 255 // If you've never synced before, or if you're using Chrome OS, all datatypes |
| 250 // are on by default. | 256 // are on by default. |
| 251 // TODO(nick): Perhaps a better model would be to always default to false, | 257 // TODO(nick): Perhaps a better model would be to always default to false, |
| 252 // and explicitly call SetDataTypes() when the user shows the wizard. | 258 // and explicitly call SetDataTypes() when the user shows the wizard. |
| 253 #if defined(OS_CHROMEOS) | 259 #if defined(OS_CHROMEOS) |
| 254 bool enable_by_default = true; | 260 bool enable_by_default = true; |
| 255 #else | 261 #else |
| 256 bool enable_by_default = | 262 bool enable_by_default = |
| 257 !pref_service->HasPrefPath(prefs::kSyncHasSetupCompleted); | 263 !pref_service->HasPrefPath(prefs::kSyncHasSetupCompleted); |
| 258 #endif | 264 #endif |
| 259 | 265 |
| 260 pref_service->RegisterBooleanPref(prefs::kSyncBookmarks, true); | 266 pref_service->RegisterBooleanPref(prefs::kSyncBookmarks, |
| 261 pref_service->RegisterBooleanPref(prefs::kSyncPasswords, enable_by_default); | 267 true, |
| 262 pref_service->RegisterBooleanPref(prefs::kSyncPreferences, enable_by_default); | 268 PrefService::UNSYNCABLE_PREF); |
| 263 pref_service->RegisterBooleanPref(prefs::kSyncAutofill, enable_by_default); | 269 pref_service->RegisterBooleanPref(prefs::kSyncPasswords, |
| 264 pref_service->RegisterBooleanPref(prefs::kSyncThemes, enable_by_default); | 270 enable_by_default, |
| 265 pref_service->RegisterBooleanPref(prefs::kSyncTypedUrls, enable_by_default); | 271 PrefService::UNSYNCABLE_PREF); |
| 266 pref_service->RegisterBooleanPref(prefs::kSyncExtensions, enable_by_default); | 272 pref_service->RegisterBooleanPref(prefs::kSyncPreferences, |
| 267 pref_service->RegisterBooleanPref(prefs::kSyncApps, enable_by_default); | 273 enable_by_default, |
| 268 pref_service->RegisterBooleanPref(prefs::kSyncSessions, enable_by_default); | 274 PrefService::UNSYNCABLE_PREF); |
| 275 pref_service->RegisterBooleanPref(prefs::kSyncAutofill, |
| 276 enable_by_default, |
| 277 PrefService::UNSYNCABLE_PREF); |
| 278 pref_service->RegisterBooleanPref(prefs::kSyncThemes, |
| 279 enable_by_default, |
| 280 PrefService::UNSYNCABLE_PREF); |
| 281 pref_service->RegisterBooleanPref(prefs::kSyncTypedUrls, |
| 282 enable_by_default, |
| 283 PrefService::UNSYNCABLE_PREF); |
| 284 pref_service->RegisterBooleanPref(prefs::kSyncExtensions, |
| 285 enable_by_default, |
| 286 PrefService::UNSYNCABLE_PREF); |
| 287 pref_service->RegisterBooleanPref(prefs::kSyncApps, |
| 288 enable_by_default, |
| 289 PrefService::UNSYNCABLE_PREF); |
| 290 pref_service->RegisterBooleanPref(prefs::kSyncSessions, |
| 291 enable_by_default, |
| 292 PrefService::UNSYNCABLE_PREF); |
| 269 pref_service->RegisterBooleanPref(prefs::kKeepEverythingSynced, | 293 pref_service->RegisterBooleanPref(prefs::kKeepEverythingSynced, |
| 270 enable_by_default); | 294 enable_by_default, |
| 271 pref_service->RegisterBooleanPref(prefs::kSyncManaged, false); | 295 PrefService::UNSYNCABLE_PREF); |
| 272 pref_service->RegisterStringPref(prefs::kEncryptionBootstrapToken, ""); | 296 pref_service->RegisterBooleanPref(prefs::kSyncManaged, |
| 297 false, |
| 298 PrefService::UNSYNCABLE_PREF); |
| 299 pref_service->RegisterStringPref(prefs::kEncryptionBootstrapToken, |
| 300 "", |
| 301 PrefService::UNSYNCABLE_PREF); |
| 273 | 302 |
| 274 pref_service->RegisterBooleanPref(prefs::kSyncAutofillProfile, | 303 pref_service->RegisterBooleanPref(prefs::kSyncAutofillProfile, |
| 275 enable_by_default); | 304 enable_by_default, |
| 305 PrefService::UNSYNCABLE_PREF); |
| 276 } | 306 } |
| 277 | 307 |
| 278 void ProfileSyncService::ClearPreferences() { | 308 void ProfileSyncService::ClearPreferences() { |
| 279 PrefService* pref_service = profile_->GetPrefs(); | 309 PrefService* pref_service = profile_->GetPrefs(); |
| 280 pref_service->ClearPref(prefs::kSyncLastSyncedTime); | 310 pref_service->ClearPref(prefs::kSyncLastSyncedTime); |
| 281 pref_service->ClearPref(prefs::kSyncHasSetupCompleted); | 311 pref_service->ClearPref(prefs::kSyncHasSetupCompleted); |
| 282 pref_service->ClearPref(prefs::kEncryptionBootstrapToken); | 312 pref_service->ClearPref(prefs::kEncryptionBootstrapToken); |
| 283 | 313 |
| 284 // TODO(nick): The current behavior does not clear e.g. prefs::kSyncBookmarks. | 314 // TODO(nick): The current behavior does not clear e.g. prefs::kSyncBookmarks. |
| 285 // Is that really what we want? | 315 // Is that really what we want? |
| (...skipping 806 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1092 } | 1122 } |
| 1093 | 1123 |
| 1094 void ProfileSyncService::ActivateDataType( | 1124 void ProfileSyncService::ActivateDataType( |
| 1095 DataTypeController* data_type_controller, | 1125 DataTypeController* data_type_controller, |
| 1096 ChangeProcessor* change_processor) { | 1126 ChangeProcessor* change_processor) { |
| 1097 if (!backend_.get()) { | 1127 if (!backend_.get()) { |
| 1098 NOTREACHED(); | 1128 NOTREACHED(); |
| 1099 return; | 1129 return; |
| 1100 } | 1130 } |
| 1101 DCHECK(backend_initialized_); | 1131 DCHECK(backend_initialized_); |
| 1102 change_processor->Start(profile(), backend_->GetUserShare()); | |
| 1103 backend_->ActivateDataType(data_type_controller, change_processor); | 1132 backend_->ActivateDataType(data_type_controller, change_processor); |
| 1104 } | 1133 } |
| 1105 | 1134 |
| 1106 void ProfileSyncService::DeactivateDataType( | 1135 void ProfileSyncService::DeactivateDataType( |
| 1107 DataTypeController* data_type_controller, | 1136 DataTypeController* data_type_controller, |
| 1108 ChangeProcessor* change_processor) { | 1137 ChangeProcessor* change_processor) { |
| 1109 change_processor->Stop(); | 1138 if (!backend_.get()) |
| 1110 if (backend_.get()) | 1139 return; |
| 1111 backend_->DeactivateDataType(data_type_controller, change_processor); | 1140 backend_->DeactivateDataType(data_type_controller, change_processor); |
| 1112 } | 1141 } |
| 1113 | 1142 |
| 1114 void ProfileSyncService::SetPassphrase(const std::string& passphrase, | 1143 void ProfileSyncService::SetPassphrase(const std::string& passphrase, |
| 1115 bool is_explicit, | 1144 bool is_explicit, |
| 1116 bool is_creation) { | 1145 bool is_creation) { |
| 1117 if (ShouldPushChanges() || IsPassphraseRequired()) { | 1146 if (ShouldPushChanges() || IsPassphraseRequired()) { |
| 1118 backend_->SetPassphrase(passphrase, is_explicit); | 1147 backend_->SetPassphrase(passphrase, is_explicit); |
| 1119 } else { | 1148 } else { |
| 1120 cached_passphrase_.value = passphrase; | 1149 cached_passphrase_.value = passphrase; |
| 1121 cached_passphrase_.is_explicit = is_explicit; | 1150 cached_passphrase_.is_explicit = is_explicit; |
| (...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1297 // is initialized, all enabled data types are consistent with one | 1326 // is initialized, all enabled data types are consistent with one |
| 1298 // another, and no unrecoverable error has transpired. | 1327 // another, and no unrecoverable error has transpired. |
| 1299 if (unrecoverable_error_detected_) | 1328 if (unrecoverable_error_detected_) |
| 1300 return false; | 1329 return false; |
| 1301 | 1330 |
| 1302 if (!data_type_manager_.get()) | 1331 if (!data_type_manager_.get()) |
| 1303 return false; | 1332 return false; |
| 1304 | 1333 |
| 1305 return data_type_manager_->state() == DataTypeManager::CONFIGURED; | 1334 return data_type_manager_->state() == DataTypeManager::CONFIGURED; |
| 1306 } | 1335 } |
| OLD | NEW |