OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 <map> | 7 #include <map> |
8 #include <set> | 8 #include <set> |
9 | 9 |
10 #include "app/l10n_util.h" | 10 #include "app/l10n_util.h" |
(...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
407 syncable::ModelTypeSet types; | 407 syncable::ModelTypeSet types; |
408 // If sync setup hasn't finished, we don't want to initialize routing info | 408 // If sync setup hasn't finished, we don't want to initialize routing info |
409 // for any data types so that we don't download updates for types that the | 409 // for any data types so that we don't download updates for types that the |
410 // user chooses not to sync on the first DownloadUpdatesCommand. | 410 // user chooses not to sync on the first DownloadUpdatesCommand. |
411 if (HasSyncSetupCompleted()) { | 411 if (HasSyncSetupCompleted()) { |
412 GetPreferredDataTypes(&types); | 412 GetPreferredDataTypes(&types); |
413 } | 413 } |
414 | 414 |
415 SyncCredentials credentials = GetCredentials(); | 415 SyncCredentials credentials = GetCredentials(); |
416 | 416 |
417 backend_->Initialize(sync_service_url_, | 417 backend_->Initialize(this, |
| 418 sync_service_url_, |
418 types, | 419 types, |
419 profile_->GetRequestContext(), | 420 profile_->GetRequestContext(), |
420 credentials, | 421 credentials, |
421 delete_sync_data_folder, | 422 delete_sync_data_folder, |
422 notifier_options_); | 423 notifier_options_); |
423 } | 424 } |
424 | 425 |
425 void ProfileSyncService::CreateBackend() { | 426 void ProfileSyncService::CreateBackend() { |
426 backend_.reset(new SyncBackendHost(this, profile_)); | 427 backend_.reset(new SyncBackendHost(profile_)); |
427 } | 428 } |
428 | 429 |
429 void ProfileSyncService::StartUp() { | 430 void ProfileSyncService::StartUp() { |
430 // Don't start up multiple times. | 431 // Don't start up multiple times. |
431 if (backend_.get()) { | 432 if (backend_.get()) { |
432 VLOG(1) << "Skipping bringing up backend host."; | 433 VLOG(1) << "Skipping bringing up backend host."; |
433 return; | 434 return; |
434 } | 435 } |
435 | 436 |
436 DCHECK(AreCredentialsAvailable()); | 437 DCHECK(AreCredentialsAvailable()); |
(...skipping 569 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1006 bool ProfileSyncService::IsUsingSecondaryPassphrase() const { | 1007 bool ProfileSyncService::IsUsingSecondaryPassphrase() const { |
1007 return backend_.get() && (backend_->IsUsingExplicitPassphrase() || | 1008 return backend_.get() && (backend_->IsUsingExplicitPassphrase() || |
1008 (tried_implicit_gaia_remove_when_bug_62103_fixed_ && | 1009 (tried_implicit_gaia_remove_when_bug_62103_fixed_ && |
1009 observed_passphrase_required_)); | 1010 observed_passphrase_required_)); |
1010 } | 1011 } |
1011 | 1012 |
1012 bool ProfileSyncService::IsCryptographerReady() const { | 1013 bool ProfileSyncService::IsCryptographerReady() const { |
1013 return backend_.get() && backend_->IsCryptographerReady(); | 1014 return backend_.get() && backend_->IsCryptographerReady(); |
1014 } | 1015 } |
1015 | 1016 |
| 1017 SyncBackendHost* ProfileSyncService::GetBackendForTest() { |
| 1018 // We don't check |backend_initialized_|; we assume the test class |
| 1019 // knows what it's doing. |
| 1020 return backend_.get(); |
| 1021 } |
| 1022 |
1016 void ProfileSyncService::ConfigureDataTypeManager() { | 1023 void ProfileSyncService::ConfigureDataTypeManager() { |
1017 if (!data_type_manager_.get()) { | 1024 if (!data_type_manager_.get()) { |
1018 data_type_manager_.reset( | 1025 data_type_manager_.reset( |
1019 factory_->CreateDataTypeManager(backend_.get(), | 1026 factory_->CreateDataTypeManager(backend_.get(), |
1020 data_type_controllers_)); | 1027 data_type_controllers_)); |
1021 registrar_.Add(this, | 1028 registrar_.Add(this, |
1022 NotificationType::SYNC_CONFIGURE_START, | 1029 NotificationType::SYNC_CONFIGURE_START, |
1023 Source<DataTypeManager>(data_type_manager_.get())); | 1030 Source<DataTypeManager>(data_type_manager_.get())); |
1024 registrar_.Add(this, | 1031 registrar_.Add(this, |
1025 NotificationType::SYNC_CONFIGURE_DONE, | 1032 NotificationType::SYNC_CONFIGURE_DONE, |
1026 Source<DataTypeManager>(data_type_manager_.get())); | 1033 Source<DataTypeManager>(data_type_manager_.get())); |
1027 } | 1034 } |
1028 | 1035 |
1029 syncable::ModelTypeSet types; | 1036 syncable::ModelTypeSet types; |
1030 GetPreferredDataTypes(&types); | 1037 GetPreferredDataTypes(&types); |
1031 data_type_manager_->Configure(types); | 1038 data_type_manager_->Configure(types); |
1032 } | 1039 } |
1033 | 1040 |
| 1041 sync_api::UserShare* ProfileSyncService::GetUserShare() const { |
| 1042 if (backend_.get() && backend_initialized_) { |
| 1043 return backend_->GetUserShare(); |
| 1044 } |
| 1045 NOTREACHED(); |
| 1046 return NULL; |
| 1047 } |
| 1048 |
| 1049 const browser_sync::sessions::SyncSessionSnapshot* |
| 1050 ProfileSyncService::GetLastSessionSnapshot() const { |
| 1051 if (backend_.get() && backend_initialized_) { |
| 1052 return backend_->GetLastSessionSnapshot(); |
| 1053 } |
| 1054 NOTREACHED(); |
| 1055 return NULL; |
| 1056 } |
| 1057 |
| 1058 bool ProfileSyncService::HasUnsyncedItems() const { |
| 1059 if (backend_.get() && backend_initialized_) { |
| 1060 return backend_->HasUnsyncedItems(); |
| 1061 } |
| 1062 NOTREACHED(); |
| 1063 return false; |
| 1064 } |
| 1065 |
| 1066 void ProfileSyncService::GetModelSafeRoutingInfo( |
| 1067 browser_sync::ModelSafeRoutingInfo* out) { |
| 1068 if (backend_.get() && backend_initialized_) { |
| 1069 backend_->GetModelSafeRoutingInfo(out); |
| 1070 } else { |
| 1071 NOTREACHED(); |
| 1072 } |
| 1073 } |
| 1074 |
| 1075 syncable::AutofillMigrationState |
| 1076 ProfileSyncService::GetAutofillMigrationState() { |
| 1077 if (backend_.get() && backend_initialized_) { |
| 1078 return backend_->GetAutofillMigrationState(); |
| 1079 } |
| 1080 NOTREACHED(); |
| 1081 return syncable::NOT_DETERMINED; |
| 1082 } |
| 1083 |
| 1084 void ProfileSyncService::SetAutofillMigrationState( |
| 1085 syncable::AutofillMigrationState state) { |
| 1086 if (backend_.get() && backend_initialized_) { |
| 1087 backend_->SetAutofillMigrationState(state); |
| 1088 } else { |
| 1089 NOTREACHED(); |
| 1090 } |
| 1091 } |
| 1092 |
| 1093 syncable::AutofillMigrationDebugInfo |
| 1094 ProfileSyncService::GetAutofillMigrationDebugInfo() { |
| 1095 if (backend_.get() && backend_initialized_) { |
| 1096 return backend_->GetAutofillMigrationDebugInfo(); |
| 1097 } |
| 1098 NOTREACHED(); |
| 1099 syncable::AutofillMigrationDebugInfo debug_info = { 0 }; |
| 1100 return debug_info; |
| 1101 } |
| 1102 |
| 1103 void ProfileSyncService::SetAutofillMigrationDebugInfo( |
| 1104 syncable::AutofillMigrationDebugInfo::PropertyToSet property_to_set, |
| 1105 const syncable::AutofillMigrationDebugInfo& info) { |
| 1106 if (backend_.get() && backend_initialized_) { |
| 1107 backend_->SetAutofillMigrationDebugInfo(property_to_set, info); |
| 1108 } else { |
| 1109 NOTREACHED(); |
| 1110 } |
| 1111 } |
| 1112 |
1034 void ProfileSyncService::ActivateDataType( | 1113 void ProfileSyncService::ActivateDataType( |
1035 DataTypeController* data_type_controller, | 1114 DataTypeController* data_type_controller, |
1036 ChangeProcessor* change_processor) { | 1115 ChangeProcessor* change_processor) { |
1037 if (!backend_.get()) { | 1116 if (!backend_.get()) { |
1038 NOTREACHED(); | 1117 NOTREACHED(); |
1039 return; | 1118 return; |
1040 } | 1119 } |
1041 DCHECK(backend_initialized_); | 1120 DCHECK(backend_initialized_); |
1042 change_processor->Start(profile(), backend_->GetUserShareHandle()); | 1121 change_processor->Start(profile(), backend_->GetUserShare()); |
1043 backend_->ActivateDataType(data_type_controller, change_processor); | 1122 backend_->ActivateDataType(data_type_controller, change_processor); |
1044 } | 1123 } |
1045 | 1124 |
1046 void ProfileSyncService::DeactivateDataType( | 1125 void ProfileSyncService::DeactivateDataType( |
1047 DataTypeController* data_type_controller, | 1126 DataTypeController* data_type_controller, |
1048 ChangeProcessor* change_processor) { | 1127 ChangeProcessor* change_processor) { |
1049 change_processor->Stop(); | 1128 change_processor->Stop(); |
1050 if (backend_.get()) | 1129 if (backend_.get()) |
1051 backend_->DeactivateDataType(data_type_controller, change_processor); | 1130 backend_->DeactivateDataType(data_type_controller, change_processor); |
1052 } | 1131 } |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1224 // is initialized, all enabled data types are consistent with one | 1303 // is initialized, all enabled data types are consistent with one |
1225 // another, and no unrecoverable error has transpired. | 1304 // another, and no unrecoverable error has transpired. |
1226 if (unrecoverable_error_detected_) | 1305 if (unrecoverable_error_detected_) |
1227 return false; | 1306 return false; |
1228 | 1307 |
1229 if (!data_type_manager_.get()) | 1308 if (!data_type_manager_.get()) |
1230 return false; | 1309 return false; |
1231 | 1310 |
1232 return data_type_manager_->state() == DataTypeManager::CONFIGURED; | 1311 return data_type_manager_->state() == DataTypeManager::CONFIGURED; |
1233 } | 1312 } |
OLD | NEW |