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(); |