| Index: sync/internal_api/sync_manager_impl.cc
|
| diff --git a/sync/internal_api/sync_manager_impl.cc b/sync/internal_api/sync_manager_impl.cc
|
| index ef614cdc05a97ff6c4c8b71b59735b97a832b56e..30bbafd2b4f5c72ac351eb3f595e6fdf1ea5330e 100644
|
| --- a/sync/internal_api/sync_manager_impl.cc
|
| +++ b/sync/internal_api/sync_manager_impl.cc
|
| @@ -303,53 +303,38 @@ void SyncManagerImpl::ConfigureSyncer(
|
| scheduler_->ScheduleConfiguration(params);
|
| }
|
|
|
| -void SyncManagerImpl::Init(
|
| - const base::FilePath& database_location,
|
| - const WeakHandle<JsEventHandler>& event_handler,
|
| - const GURL& service_url,
|
| - scoped_ptr<HttpPostProviderFactory> post_factory,
|
| - const std::vector<scoped_refptr<ModelSafeWorker> >& workers,
|
| - ExtensionsActivity* extensions_activity,
|
| - SyncManager::ChangeDelegate* change_delegate,
|
| - const SyncCredentials& credentials,
|
| - const std::string& invalidator_client_id,
|
| - const std::string& restored_key_for_bootstrapping,
|
| - const std::string& restored_keystore_key_for_bootstrapping,
|
| - InternalComponentsFactory* internal_components_factory,
|
| - Encryptor* encryptor,
|
| - scoped_ptr<UnrecoverableErrorHandler> unrecoverable_error_handler,
|
| - ReportUnrecoverableErrorFunction report_unrecoverable_error_function,
|
| - CancelationSignal* cancelation_signal) {
|
| +void SyncManagerImpl::Init(InitArgs* args) {
|
| CHECK(!initialized_);
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| - DCHECK(post_factory.get());
|
| - DCHECK(!credentials.email.empty());
|
| - DCHECK(!credentials.sync_token.empty());
|
| - DCHECK(!credentials.scope_set.empty());
|
| - DCHECK(cancelation_signal);
|
| + DCHECK(args->post_factory.get());
|
| + DCHECK(!args->credentials.email.empty());
|
| + DCHECK(!args->credentials.sync_token.empty());
|
| + DCHECK(!args->credentials.scope_set.empty());
|
| + DCHECK(args->cancelation_signal);
|
| DVLOG(1) << "SyncManager starting Init...";
|
|
|
| weak_handle_this_ = MakeWeakHandle(weak_ptr_factory_.GetWeakPtr());
|
|
|
| - change_delegate_ = change_delegate;
|
| + change_delegate_ = args->change_delegate;
|
|
|
| AddObserver(&js_sync_manager_observer_);
|
| - SetJsEventHandler(event_handler);
|
| + SetJsEventHandler(args->event_handler);
|
|
|
| AddObserver(&debug_info_event_listener_);
|
|
|
| - database_path_ = database_location.Append(
|
| + database_path_ = args->database_location.Append(
|
| syncable::Directory::kSyncDatabaseFilename);
|
| - unrecoverable_error_handler_ = unrecoverable_error_handler.Pass();
|
| - report_unrecoverable_error_function_ = report_unrecoverable_error_function;
|
| + unrecoverable_error_handler_ = args->unrecoverable_error_handler.Pass();
|
| + report_unrecoverable_error_function_ =
|
| + args->report_unrecoverable_error_function;
|
|
|
| allstatus_.SetHasKeystoreKey(
|
| - !restored_keystore_key_for_bootstrapping.empty());
|
| + !args->restored_keystore_key_for_bootstrapping.empty());
|
| sync_encryption_handler_.reset(new SyncEncryptionHandlerImpl(
|
| &share_,
|
| - encryptor,
|
| - restored_key_for_bootstrapping,
|
| - restored_keystore_key_for_bootstrapping));
|
| + args->encryptor,
|
| + args->restored_key_for_bootstrapping,
|
| + args->restored_keystore_key_for_bootstrapping));
|
| sync_encryption_handler_->AddObserver(this);
|
| sync_encryption_handler_->AddObserver(&debug_info_event_listener_);
|
| sync_encryption_handler_->AddObserver(&js_sync_encryption_handler_observer_);
|
| @@ -358,8 +343,9 @@ void SyncManagerImpl::Init(
|
| DCHECK(absolute_db_path.IsAbsolute());
|
|
|
| scoped_ptr<syncable::DirectoryBackingStore> backing_store =
|
| - internal_components_factory->BuildDirectoryBackingStore(
|
| - credentials.email, absolute_db_path).Pass();
|
| + args->internal_components_factory->BuildDirectoryBackingStore(
|
| + args->credentials.email,
|
| + absolute_db_path).Pass();
|
|
|
| DCHECK(backing_store.get());
|
| share_.directory.reset(
|
| @@ -369,13 +355,13 @@ void SyncManagerImpl::Init(
|
| report_unrecoverable_error_function_,
|
| sync_encryption_handler_.get(),
|
| sync_encryption_handler_->GetCryptographerUnsafe()));
|
| - share_.sync_credentials = credentials;
|
| + share_.sync_credentials = args->credentials;
|
|
|
| // UserShare is accessible to a lot of code that doesn't need access to the
|
| // sync token so clear sync_token from the UserShare.
|
| share_.sync_credentials.sync_token = "";
|
|
|
| - const std::string& username = credentials.email;
|
| + const std::string& username = args->credentials.email;
|
| DVLOG(1) << "Username: " << username;
|
| if (!OpenDirectory(username)) {
|
| NotifyInitializationFailure();
|
| @@ -384,11 +370,11 @@ void SyncManagerImpl::Init(
|
| }
|
|
|
| connection_manager_.reset(new SyncAPIServerConnectionManager(
|
| - service_url.host() + service_url.path(),
|
| - service_url.EffectiveIntPort(),
|
| - service_url.SchemeIsSecure(),
|
| - post_factory.release(),
|
| - cancelation_signal));
|
| + args->service_url.host() + args->service_url.path(),
|
| + args->service_url.EffectiveIntPort(),
|
| + args->service_url.SchemeIsSecure(),
|
| + args->post_factory.release(),
|
| + args->cancelation_signal));
|
| connection_manager_->set_client_id(directory()->cache_guid());
|
| connection_manager_->AddListener(this);
|
|
|
| @@ -396,10 +382,11 @@ void SyncManagerImpl::Init(
|
|
|
| DVLOG(1) << "Setting sync client ID: " << sync_id;
|
| allstatus_.SetSyncId(sync_id);
|
| - DVLOG(1) << "Setting invalidator client ID: " << invalidator_client_id;
|
| - allstatus_.SetInvalidatorClientId(invalidator_client_id);
|
| + DVLOG(1) << "Setting invalidator client ID: " << args->invalidator_client_id;
|
| + allstatus_.SetInvalidatorClientId(args->invalidator_client_id);
|
|
|
| - model_type_registry_.reset(new ModelTypeRegistry(workers, directory(), this));
|
| + model_type_registry_.reset(
|
| + new ModelTypeRegistry(args->workers, directory(), this));
|
|
|
| // Bind the SyncContext WeakPtr to this thread. This helps us crash earlier
|
| // if the pointer is misused in debug mode.
|
| @@ -414,17 +401,19 @@ void SyncManagerImpl::Init(
|
| std::vector<SyncEngineEventListener*> listeners;
|
| listeners.push_back(&allstatus_);
|
| listeners.push_back(this);
|
| - session_context_ = internal_components_factory->BuildContext(
|
| - connection_manager_.get(),
|
| - directory(),
|
| - extensions_activity,
|
| - listeners,
|
| - &debug_info_event_listener_,
|
| - model_type_registry_.get(),
|
| - invalidator_client_id).Pass();
|
| - session_context_->set_account_name(credentials.email);
|
| - scheduler_ = internal_components_factory->BuildScheduler(
|
| - name_, session_context_.get(), cancelation_signal).Pass();
|
| + session_context_ =
|
| + args->internal_components_factory->BuildContext(
|
| + connection_manager_.get(),
|
| + directory(),
|
| + args->extensions_activity,
|
| + listeners,
|
| + &debug_info_event_listener_,
|
| + model_type_registry_.get(),
|
| + args->invalidator_client_id)
|
| + .Pass();
|
| + session_context_->set_account_name(args->credentials.email);
|
| + scheduler_ = args->internal_components_factory->BuildScheduler(
|
| + name_, session_context_.get(), args->cancelation_signal).Pass();
|
|
|
| scheduler_->Start(SyncScheduler::CONFIGURATION_MODE);
|
|
|
| @@ -434,7 +423,7 @@ void SyncManagerImpl::Init(
|
| net::NetworkChangeNotifier::AddConnectionTypeObserver(this);
|
| observing_network_connectivity_changes_ = true;
|
|
|
| - UpdateCredentials(credentials);
|
| + UpdateCredentials(args->credentials);
|
|
|
| NotifyInitializationSuccess();
|
| }
|
|
|