| Index: components/sync/driver/non_ui_data_type_controller.cc
|
| diff --git a/components/sync/driver/non_ui_data_type_controller.cc b/components/sync/driver/non_ui_data_type_controller.cc
|
| index ede715594d5f409d7fd2f8846e64c5c1e9645204..ef15bc1c07fcccee90f9cd21d152a2bd41a39a0e 100644
|
| --- a/components/sync/driver/non_ui_data_type_controller.cc
|
| +++ b/components/sync/driver/non_ui_data_type_controller.cc
|
| @@ -4,6 +4,8 @@
|
|
|
| #include "components/sync/driver/non_ui_data_type_controller.h"
|
|
|
| +#include <utility>
|
| +
|
| #include "base/logging.h"
|
| #include "base/threading/thread_task_runner_handle.h"
|
| #include "components/sync/base/bind_to_task_runner.h"
|
| @@ -27,9 +29,17 @@ SharedChangeProcessor* NonUIDataTypeController::CreateSharedChangeProcessor() {
|
| NonUIDataTypeController::NonUIDataTypeController(
|
| ModelType type,
|
| const base::Closure& dump_stack,
|
| - SyncClient* sync_client)
|
| - : DirectoryDataTypeController(type, dump_stack, sync_client),
|
| - state_(NOT_RUNNING) {}
|
| + SyncClient* sync_client,
|
| + ModelSafeGroup model_safe_group,
|
| + const scoped_refptr<base::SequencedTaskRunner>& backend_thread)
|
| + : DirectoryDataTypeController(type,
|
| + dump_stack,
|
| + sync_client,
|
| + model_safe_group),
|
| + user_share_(nullptr),
|
| + processor_factory_(new GenericChangeProcessorFactory()),
|
| + state_(NOT_RUNNING),
|
| + backend_thread_(backend_thread) {}
|
|
|
| void NonUIDataTypeController::LoadModels(
|
| const ModelLoadCallback& model_load_callback) {
|
| @@ -77,6 +87,13 @@ void NonUIDataTypeController::StopModels() {
|
| DCHECK(CalledOnValidThread());
|
| }
|
|
|
| +bool NonUIDataTypeController::PostTaskOnBackendThread(
|
| + const tracked_objects::Location& from_here,
|
| + const base::Closure& task) {
|
| + DCHECK(CalledOnValidThread());
|
| + return backend_thread_->PostTask(from_here, task);
|
| +}
|
| +
|
| void NonUIDataTypeController::StartAssociating(
|
| const StartCallback& start_callback) {
|
| DCHECK(CalledOnValidThread());
|
| @@ -134,8 +151,17 @@ DataTypeController::State NonUIDataTypeController::state() const {
|
| return state_;
|
| }
|
|
|
| +void NonUIDataTypeController::SetGenericChangeProcessorFactoryForTest(
|
| + std::unique_ptr<GenericChangeProcessorFactory> factory) {
|
| + DCHECK_EQ(state_, NOT_RUNNING);
|
| + processor_factory_ = std::move(factory);
|
| +}
|
| +
|
| NonUIDataTypeController::NonUIDataTypeController()
|
| - : DirectoryDataTypeController(UNSPECIFIED, base::Closure(), nullptr) {}
|
| + : DirectoryDataTypeController(UNSPECIFIED,
|
| + base::Closure(),
|
| + nullptr,
|
| + GROUP_PASSIVE) {}
|
|
|
| NonUIDataTypeController::~NonUIDataTypeController() {}
|
|
|
| @@ -204,7 +230,8 @@ bool NonUIDataTypeController::StartAssociationAsync() {
|
| &SharedChangeProcessor::StartAssociation, shared_change_processor_,
|
| BindToCurrentThread(base::Bind(&NonUIDataTypeController::StartDone,
|
| base::AsWeakPtr(this))),
|
| - sync_client_, user_share_, base::Passed(CreateErrorHandler())));
|
| + sync_client_, processor_factory_.get(), user_share_,
|
| + base::Passed(CreateErrorHandler())));
|
| }
|
|
|
| ChangeProcessor* NonUIDataTypeController::GetChangeProcessor() const {
|
|
|