Chromium Code Reviews| Index: chrome/browser/sync/glue/sync_backend_host.cc |
| diff --git a/chrome/browser/sync/glue/sync_backend_host.cc b/chrome/browser/sync/glue/sync_backend_host.cc |
| index e92d73ecb8b721d93cafa84163f1e69d7f9d05f3..4b28fd5697462fcacc3140a270f757c5fedf7467 100644 |
| --- a/chrome/browser/sync/glue/sync_backend_host.cc |
| +++ b/chrome/browser/sync/glue/sync_backend_host.cc |
| @@ -378,6 +378,7 @@ void SyncBackendHost::Initialize( |
| &sync_notifier_factory_, |
| delete_sync_data_folder, |
| sync_prefs_->GetEncryptionBootstrapToken(), |
| + sync_prefs_->GetKeystoreEncryptionBootstrapToken(), |
| sync_api::SyncManager::NON_TEST, |
| unrecoverable_error_handler, |
| report_unrecoverable_error_function)); |
| @@ -720,6 +721,7 @@ void SyncBackendHost::RequestConfigureSyncer( |
| } |
| void SyncBackendHost::FinishConfigureDataTypesOnFrontendLoop( |
| + const std::string& keystore_bootstrap_token, |
|
rlarocque
2012/06/13 23:35:04
Is it really necessary to send the token back on e
Nicolas Zea
2012/06/15 00:42:07
Yeah, I guess the bootstrap token doesn't really r
rlarocque
2012/06/15 19:02:00
I'm not sure that's much better. Wouldn't it make
Nicolas Zea
2012/06/15 20:15:30
This is effectively the same logic used in the boo
|
| const syncable::ModelTypeSet& types_to_configure, |
| const syncable::ModelTypeSet& configured_types, |
| const base::Callback<void(syncable::ModelTypeSet)>& ready_task) { |
| @@ -742,6 +744,11 @@ void SyncBackendHost::FinishConfigureDataTypesOnFrontendLoop( |
| base::Bind(&SyncBackendHost::Core::DoUpdateEnabledTypes, core_.get(), |
| configured_types)); |
| + if (!keystore_bootstrap_token.empty()) { |
| + DVLOG(1) << "Persisting keystore encryption bootstrap token."; |
| + sync_prefs_->SetKeystoreEncryptionBootstrapToken(keystore_bootstrap_token); |
| + } |
| + |
| if (!ready_task.is_null()) |
| ready_task.Run(failed_configuration_types); |
| } |
| @@ -760,6 +767,7 @@ SyncBackendHost::DoInitializeOptions::DoInitializeOptions( |
| sync_notifier::SyncNotifierFactory* sync_notifier_factory, |
| bool delete_sync_data_folder, |
| const std::string& restored_key_for_bootstrapping, |
| + const std::string& restored_keystore_key_for_bootstrapping, |
| sync_api::SyncManager::TestingMode testing_mode, |
| UnrecoverableErrorHandler* unrecoverable_error_handler, |
| ReportUnrecoverableErrorFunction report_unrecoverable_error_function) |
| @@ -776,6 +784,8 @@ SyncBackendHost::DoInitializeOptions::DoInitializeOptions( |
| sync_notifier_factory(sync_notifier_factory), |
| delete_sync_data_folder(delete_sync_data_folder), |
| restored_key_for_bootstrapping(restored_key_for_bootstrapping), |
| + restored_keystore_key_for_bootstrapping( |
| + restored_keystore_key_for_bootstrapping), |
| testing_mode(testing_mode), |
| unrecoverable_error_handler(unrecoverable_error_handler), |
| report_unrecoverable_error_function( |
| @@ -1010,6 +1020,7 @@ void SyncBackendHost::Core::DoInitialize(const DoInitializeOptions& options) { |
| options.chrome_sync_notification_bridge, |
| options.sync_notifier_factory->CreateSyncNotifier()), |
| options.restored_key_for_bootstrapping, |
| + options.restored_keystore_key_for_bootstrapping, |
| CommandLine::ForCurrentProcess()->HasSwitch( |
| switches::kSyncKeystoreEncryption), |
| options.testing_mode, |
| @@ -1131,8 +1142,13 @@ void SyncBackendHost::Core::DoFinishConfigureDataTypes( |
| syncable::ModelTypeSet configured_types = |
| sync_manager_->InitialSyncEndedTypes(); |
| configured_types.RetainAll(types_to_config); |
| + |
| + std::string keystore_token; |
| + sync_manager_->GetKeystoreKeyBootstrapToken(&keystore_token); |
| + |
| host_.Call(FROM_HERE, |
| &SyncBackendHost::FinishConfigureDataTypesOnFrontendLoop, |
| + keystore_token, |
| types_to_config, |
| configured_types, |
| ready_task); |