| 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 3c3c8d82b7c6b0d661522f231c1e81ca4675b0ef..62b9aae0afbac08a38ba7fb06e0f0aeaeae32dd0 100644
|
| --- a/chrome/browser/sync/glue/sync_backend_host.cc
|
| +++ b/chrome/browser/sync/glue/sync_backend_host.cc
|
| @@ -6,6 +6,7 @@
|
|
|
| #include <algorithm>
|
|
|
| +#include "base/compiler_specific.h"
|
| #include "base/command_line.h"
|
| #include "base/file_util.h"
|
| #include "base/task.h"
|
| @@ -50,21 +51,16 @@ namespace browser_sync {
|
| using sessions::SyncSessionSnapshot;
|
| using sync_api::SyncCredentials;
|
|
|
| -SyncBackendHost::SyncBackendHost(
|
| - SyncFrontend* frontend,
|
| - Profile* profile,
|
| - const FilePath& profile_path,
|
| - const DataTypeController::TypeMap& data_type_controllers)
|
| - : core_thread_("Chrome_SyncCoreThread"),
|
| +SyncBackendHost::SyncBackendHost(SyncFrontend* frontend, Profile* profile)
|
| + : core_(new Core(ALLOW_THIS_IN_INITIALIZER_LIST(this))),
|
| + core_thread_("Chrome_SyncCoreThread"),
|
| frontend_loop_(MessageLoop::current()),
|
| profile_(profile),
|
| frontend_(frontend),
|
| - sync_data_folder_path_(profile_path.Append(kSyncDataFolderName)),
|
| - data_type_controllers_(data_type_controllers),
|
| + sync_data_folder_path_(
|
| + profile_->GetPath().Append(kSyncDataFolderName)),
|
| last_auth_error_(AuthError::None()),
|
| syncapi_initialized_(false) {
|
| -
|
| - core_ = new Core(this);
|
| }
|
|
|
| SyncBackendHost::SyncBackendHost()
|
| @@ -322,8 +318,10 @@ void SyncBackendHost::ConfigureAutofillMigration() {
|
| }
|
| }
|
|
|
| -void SyncBackendHost::ConfigureDataTypes(const syncable::ModelTypeSet& types,
|
| - CancelableTask* ready_task) {
|
| +void SyncBackendHost::ConfigureDataTypes(
|
| + const DataTypeController::TypeMap& data_type_controllers,
|
| + const syncable::ModelTypeSet& types,
|
| + CancelableTask* ready_task) {
|
| // Only one configure is allowed at a time.
|
| DCHECK(!configure_ready_task_.get());
|
| DCHECK(syncapi_initialized_);
|
| @@ -337,8 +335,8 @@ void SyncBackendHost::ConfigureDataTypes(const syncable::ModelTypeSet& types,
|
| {
|
| AutoLock lock(registrar_lock_);
|
| for (DataTypeController::TypeMap::const_iterator it =
|
| - data_type_controllers_.begin();
|
| - it != data_type_controllers_.end(); ++it) {
|
| + data_type_controllers.begin();
|
| + it != data_type_controllers.end(); ++it) {
|
| syncable::ModelType type = (*it).first;
|
|
|
| // If a type is not specified, remove it from the routing_info.
|
| @@ -459,21 +457,23 @@ void SyncBackendHost::Core::NotifyResumed() {
|
| }
|
|
|
| void SyncBackendHost::Core::NotifyPassphraseRequired(bool for_decryption) {
|
| - NotificationService::current()->Notify(
|
| - NotificationType::SYNC_PASSPHRASE_REQUIRED,
|
| - Source<SyncBackendHost>(host_),
|
| - Details<bool>(&for_decryption));
|
| + if (!host_ || !host_->frontend_)
|
| + return;
|
| +
|
| + DCHECK_EQ(MessageLoop::current(), host_->frontend_loop_);
|
| +
|
| + host_->frontend_->OnPassphraseRequired(for_decryption);
|
| }
|
|
|
| void SyncBackendHost::Core::NotifyPassphraseAccepted(
|
| const std::string& bootstrap_token) {
|
| - if (!host_)
|
| + if (!host_ || !host_->frontend_)
|
| return;
|
| +
|
| + DCHECK_EQ(MessageLoop::current(), host_->frontend_loop_);
|
| +
|
| host_->PersistEncryptionBootstrapToken(bootstrap_token);
|
| - NotificationService::current()->Notify(
|
| - NotificationType::SYNC_PASSPHRASE_ACCEPTED,
|
| - Source<SyncBackendHost>(host_),
|
| - NotificationService::NoDetails());
|
| + host_->frontend_->OnPassphraseAccepted();
|
| }
|
|
|
| void SyncBackendHost::Core::NotifyUpdatedToken(const std::string& token) {
|
|
|