| Index: components/sync/driver/shared_change_processor.cc
|
| diff --git a/components/sync/driver/shared_change_processor.cc b/components/sync/driver/shared_change_processor.cc
|
| index 1a5ae1151c0e878223b7787206ee93f75db2c031..6e473b5c8bd8e085297c9e62cf39cfc6aa215c5c 100644
|
| --- a/components/sync/driver/shared_change_processor.cc
|
| +++ b/components/sync/driver/shared_change_processor.cc
|
| @@ -12,6 +12,7 @@
|
| #include "components/sync/driver/generic_change_processor.h"
|
| #include "components/sync/driver/generic_change_processor_factory.h"
|
| #include "components/sync/driver/shared_change_processor_ref.h"
|
| +#include "components/sync/driver/sync_client.h"
|
| #include "components/sync/model/sync_change.h"
|
| #include "components/sync/model/syncable_service.h"
|
|
|
| @@ -50,9 +51,8 @@
|
| }
|
|
|
| void SharedChangeProcessor::StartAssociation(
|
| - const StartDoneCallback& start_done,
|
| - const SyncClient::ServiceProvider& service_provider,
|
| - SyncApiComponentFactory* driver_factory,
|
| + StartDoneCallback start_done,
|
| + SyncClient* const sync_client,
|
| GenericChangeProcessorFactory* processor_factory,
|
| UserShare* user_share,
|
| std::unique_ptr<DataTypeErrorHandler> error_handler) {
|
| @@ -67,7 +67,7 @@
|
| // disconnected at this point, so all our accesses to the syncer from this
|
| // point on are through it.
|
| local_service_ =
|
| - Connect(service_provider, driver_factory, processor_factory, user_share,
|
| + Connect(sync_client, processor_factory, user_share,
|
| std::move(error_handler), weak_ptr_factory.GetWeakPtr());
|
| if (!local_service_.get()) {
|
| SyncError error(FROM_HERE, SyncError::DATATYPE_ERROR,
|
| @@ -139,31 +139,31 @@
|
| }
|
|
|
| base::WeakPtr<SyncableService> SharedChangeProcessor::Connect(
|
| - const SyncClient::ServiceProvider& service_provider,
|
| - SyncApiComponentFactory* driver_factory,
|
| + SyncClient* sync_client,
|
| GenericChangeProcessorFactory* processor_factory,
|
| UserShare* user_share,
|
| std::unique_ptr<DataTypeErrorHandler> error_handler,
|
| const base::WeakPtr<SyncMergeResult>& merge_result) {
|
| + DCHECK(sync_client);
|
| DCHECK(error_handler);
|
| backend_task_runner_ = base::SequencedTaskRunnerHandle::Get();
|
| AutoLock lock(monitor_lock_);
|
| if (disconnected_)
|
| return base::WeakPtr<SyncableService>();
|
| error_handler_ = std::move(error_handler);
|
| - base::WeakPtr<SyncableService> local_service = service_provider.Run();
|
| + base::WeakPtr<SyncableService> local_service =
|
| + sync_client->GetSyncableServiceForType(type_);
|
| if (!local_service.get()) {
|
| LOG(WARNING) << "SyncableService destroyed before DTC was stopped.";
|
| disconnected_ = true;
|
| return base::WeakPtr<SyncableService>();
|
| }
|
|
|
| - generic_change_processor_ =
|
| - processor_factory
|
| - ->CreateGenericChangeProcessor(type_, user_share,
|
| - error_handler_->Copy(), local_service,
|
| - merge_result, driver_factory)
|
| - .release();
|
| + generic_change_processor_ = processor_factory
|
| + ->CreateGenericChangeProcessor(
|
| + type_, user_share, error_handler_->Copy(),
|
| + local_service, merge_result, sync_client)
|
| + .release();
|
| // If available, propagate attachment service to the syncable service.
|
| std::unique_ptr<AttachmentService> attachment_service =
|
| generic_change_processor_->GetAttachmentService();
|
|
|