Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(255)

Unified Diff: components/sync_driver/non_blocking_data_type_controller.cc

Issue 1763953002: [USS] Change the place where SharedModelTypeProcessor got created (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/sync_driver/non_blocking_data_type_controller.cc
diff --git a/components/sync_driver/non_blocking_data_type_controller.cc b/components/sync_driver/non_blocking_data_type_controller.cc
index f2996ab1e97325dfd0b5577de28efb704b36a651..5271a6fa6923c771c89941e1fa9baacdff44b4b1 100644
--- a/components/sync_driver/non_blocking_data_type_controller.cc
+++ b/components/sync_driver/non_blocking_data_type_controller.cc
@@ -12,6 +12,8 @@
#include "base/single_thread_task_runner.h"
#include "components/sync_driver/backend_data_type_configurer.h"
#include "components/sync_driver/sync_client.h"
+#include "sync/api/model_type_change_processor.h"
+#include "sync/api/model_type_service.h"
#include "sync/api/sync_error.h"
#include "sync/api/sync_merge_result.h"
#include "sync/internal_api/public/activation_context.h"
@@ -53,11 +55,8 @@ void NonBlockingDataTypeController::LoadModels(
// Start the type processor on the model thread.
if (!RunOnModelThread(
FROM_HERE,
- base::Bind(
- &syncer_v2::SharedModelTypeProcessor::OnSyncStarting,
- type_processor(),
- base::Bind(&NonBlockingDataTypeController::OnProcessorStarted,
- this)))) {
+ base::Bind(&NonBlockingDataTypeController::LoadModelsOnModelThread,
+ this))) {
LoadModelsDone(
UNRECOVERABLE_ERROR,
syncer::SyncError(FROM_HERE, syncer::SyncError::DATATYPE_ERROR,
@@ -65,6 +64,11 @@ void NonBlockingDataTypeController::LoadModels(
}
}
+void NonBlockingDataTypeController::LoadModelsOnModelThread() {
+ type_processor()->OnSyncStarting(
+ base::Bind(&NonBlockingDataTypeController::OnProcessorStarted, this));
+}
+
void NonBlockingDataTypeController::LoadModelsDone(
ConfigureResult result,
const syncer::SyncError& error) {
@@ -150,8 +154,11 @@ void NonBlockingDataTypeController::Stop() {
RunOnModelThread(
FROM_HERE,
- base::Bind(&syncer_v2::SharedModelTypeProcessor::DisconnectSync,
- type_processor()));
+ base::Bind(&NonBlockingDataTypeController::StopOnModelThread, this));
+}
+
+void NonBlockingDataTypeController::StopOnModelThread() {
maxbogue 2016/03/15 17:37:33 Why did you switch to having this extra function i
Gang Wu 2016/03/22 00:33:39 Doing this because my previous patch, change it ba
+ type_processor()->DisconnectSync();
}
std::string NonBlockingDataTypeController::name() const {
@@ -232,12 +239,12 @@ void NonBlockingDataTypeController::InitializeProcessorOnModelThread() {
// set an error state to |state_|.
}
- scoped_ptr<syncer_v2::SharedModelTypeProcessor> shared_model_type_processor(
- make_scoped_ptr(new syncer_v2::SharedModelTypeProcessor(
- type(), model_type_service.get())));
- type_processor_ = shared_model_type_processor->AsWeakPtrForUI();
- model_type_service->set_change_processor(
- std::move(shared_model_type_processor));
+ syncer_v2::ModelTypeChangeProcessor* processor =
+ model_type_service->InitializeProcessor(base::Bind(
maxbogue 2016/03/15 17:37:33 As we discussed at the very end of the meeting, th
Gang Wu 2016/03/22 00:33:39 Done.
+ &NonBlockingDataTypeController::CreateSharedModelTypeProcessor,
+ this));
+ DCHECK(processor);
+ DCHECK_EQ(type_processor_.get(), processor);
}
void NonBlockingDataTypeController::InitializeProcessor() {
@@ -249,4 +256,16 @@ void NonBlockingDataTypeController::InitializeProcessor() {
this));
}
+scoped_ptr<syncer_v2::ModelTypeChangeProcessor>
+NonBlockingDataTypeController::CreateSharedModelTypeProcessor(
maxbogue 2016/03/15 17:37:33 This shouldn't be in the DTC. It needs to be passe
Gang Wu 2016/03/22 00:33:39 Done.
+ syncer_v2::ModelTypeService* service) {
+ DCHECK(!type_processor_.get());
+ scoped_ptr<syncer_v2::SharedModelTypeProcessor> shared_model_type_processor(
+ make_scoped_ptr(
+ new syncer_v2::SharedModelTypeProcessor(type(), service)));
+ type_processor_ = shared_model_type_processor->AsWeakPtrForUI();
+ return make_scoped_ptr<syncer_v2::ModelTypeChangeProcessor>(
+ shared_model_type_processor.release());
+}
+
} // namespace sync_driver_v2

Powered by Google App Engine
This is Rietveld 408576698