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

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, 10 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..9da6850fea30d3f4b5da435f41ff12fcbcf9a9e3 100644
--- a/components/sync_driver/non_blocking_data_type_controller.cc
+++ b/components/sync_driver/non_blocking_data_type_controller.cc
@@ -55,7 +55,7 @@ void NonBlockingDataTypeController::LoadModels(
FROM_HERE,
base::Bind(
&syncer_v2::SharedModelTypeProcessor::OnSyncStarting,
- type_processor(),
+ base::Unretained(type_processor()),
skym 2016/03/04 22:12:28 Danger!
Gang Wu 2016/03/08 20:35:25 Done.
base::Bind(&NonBlockingDataTypeController::OnProcessorStarted,
this)))) {
LoadModelsDone(
@@ -151,7 +151,7 @@ void NonBlockingDataTypeController::Stop() {
RunOnModelThread(
FROM_HERE,
base::Bind(&syncer_v2::SharedModelTypeProcessor::DisconnectSync,
- type_processor()));
+ base::Unretained(type_processor())));
skym 2016/03/04 22:12:28 I think it's important we have a weak ptr to verif
Gang Wu 2016/03/08 20:35:25 Done.
}
std::string NonBlockingDataTypeController::name() const {
@@ -213,9 +213,16 @@ void NonBlockingDataTypeController::RecordUnrecoverableError() {
syncer::MODEL_TYPE_COUNT);
}
-base::WeakPtr<syncer_v2::SharedModelTypeProcessor>
+syncer_v2::SharedModelTypeProcessor*
NonBlockingDataTypeController::type_processor() const {
- return type_processor_;
+ base::WeakPtr<syncer_v2::ModelTypeService> model_type_service =
+ sync_client_->GetModelTypeServiceForType(type());
+ if (!model_type_service.get()) {
skym 2016/03/04 22:12:28 This is only safe on the model thread.
Gang Wu 2016/03/08 20:35:25 Done.
+ return NULL;
+ }
+
+ return static_cast<syncer_v2::SharedModelTypeProcessor*>(
+ model_type_service->change_processor());
}
syncer::ModelType NonBlockingDataTypeController::type() const {
@@ -231,13 +238,7 @@ void NonBlockingDataTypeController::InitializeProcessorOnModelThread() {
// TODO(gangwu): Add SyncError and then call start_callback with it. also
// 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));
+ model_type_service->InitializeProcessor(type());
}
void NonBlockingDataTypeController::InitializeProcessor() {

Powered by Google App Engine
This is Rietveld 408576698