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 6e473b5c8bd8e085297c9e62cf39cfc6aa215c5c..1a5ae1151c0e878223b7787206ee93f75db2c031 100644 |
--- a/components/sync/driver/shared_change_processor.cc |
+++ b/components/sync/driver/shared_change_processor.cc |
@@ -12,7 +12,6 @@ |
#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" |
@@ -51,8 +50,9 @@ SharedChangeProcessor::~SharedChangeProcessor() { |
} |
void SharedChangeProcessor::StartAssociation( |
- StartDoneCallback start_done, |
- SyncClient* const sync_client, |
+ const StartDoneCallback& start_done, |
+ const SyncClient::ServiceProvider& service_provider, |
+ SyncApiComponentFactory* driver_factory, |
GenericChangeProcessorFactory* processor_factory, |
UserShare* user_share, |
std::unique_ptr<DataTypeErrorHandler> error_handler) { |
@@ -67,7 +67,7 @@ void SharedChangeProcessor::StartAssociation( |
// disconnected at this point, so all our accesses to the syncer from this |
// point on are through it. |
local_service_ = |
- Connect(sync_client, processor_factory, user_share, |
+ Connect(service_provider, driver_factory, 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 @@ void SharedChangeProcessor::StartAssociation( |
} |
base::WeakPtr<SyncableService> SharedChangeProcessor::Connect( |
- SyncClient* sync_client, |
+ const SyncClient::ServiceProvider& service_provider, |
+ SyncApiComponentFactory* driver_factory, |
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 = |
- sync_client->GetSyncableServiceForType(type_); |
+ base::WeakPtr<SyncableService> local_service = service_provider.Run(); |
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, sync_client) |
- .release(); |
+ generic_change_processor_ = |
+ processor_factory |
+ ->CreateGenericChangeProcessor(type_, user_share, |
+ error_handler_->Copy(), local_service, |
+ merge_result, driver_factory) |
+ .release(); |
// If available, propagate attachment service to the syncable service. |
std::unique_ptr<AttachmentService> attachment_service = |
generic_change_processor_->GetAttachmentService(); |