| Index: components/search_engines/search_engine_data_type_controller.cc
|
| diff --git a/components/search_engines/search_engine_data_type_controller.cc b/components/search_engines/search_engine_data_type_controller.cc
|
| index 6492095eb028a29b21d89e37dc0fe3664ca4fe6b..e405667c5f5026e20d343f6abf6ab6be82fb668f 100644
|
| --- a/components/search_engines/search_engine_data_type_controller.cc
|
| +++ b/components/search_engines/search_engine_data_type_controller.cc
|
| @@ -7,15 +7,10 @@
|
| namespace browser_sync {
|
|
|
| SearchEngineDataTypeController::SearchEngineDataTypeController(
|
| - const scoped_refptr<base::SingleThreadTaskRunner>& ui_thread,
|
| - const base::Closure& error_callback,
|
| + const base::Closure& dump_stack,
|
| sync_driver::SyncClient* sync_client,
|
| TemplateURLService* template_url_service)
|
| - : UIDataTypeController(ui_thread,
|
| - error_callback,
|
| - syncer::SEARCH_ENGINES,
|
| - sync_client),
|
| - ui_thread_(ui_thread),
|
| + : UIDataTypeController(syncer::SEARCH_ENGINES, dump_stack, sync_client),
|
| template_url_service_(template_url_service) {}
|
|
|
| TemplateURLService::Subscription*
|
| @@ -27,6 +22,7 @@ SearchEngineDataTypeController::~SearchEngineDataTypeController() {}
|
|
|
| // We want to start the TemplateURLService before we begin associating.
|
| bool SearchEngineDataTypeController::StartModels() {
|
| + DCHECK(CalledOnValidThread());
|
| // If the TemplateURLService is loaded, continue with association. We force
|
| // a load here to prevent the rest of Sync from waiting on
|
| // TemplateURLService's lazy load.
|
| @@ -37,19 +33,20 @@ bool SearchEngineDataTypeController::StartModels() {
|
| }
|
|
|
| // Register a callback and continue when the TemplateURLService is loaded.
|
| - template_url_subscription_ =
|
| - template_url_service_->RegisterOnLoadedCallback(base::Bind(
|
| - &SearchEngineDataTypeController::OnTemplateURLServiceLoaded, this));
|
| + template_url_subscription_ = template_url_service_->RegisterOnLoadedCallback(
|
| + base::Bind(&SearchEngineDataTypeController::OnTemplateURLServiceLoaded,
|
| + base::AsWeakPtr(this)));
|
|
|
| return false; // Don't continue Start.
|
| }
|
|
|
| void SearchEngineDataTypeController::StopModels() {
|
| + DCHECK(CalledOnValidThread());
|
| template_url_subscription_.reset();
|
| }
|
|
|
| void SearchEngineDataTypeController::OnTemplateURLServiceLoaded() {
|
| - DCHECK(ui_thread_->BelongsToCurrentThread());
|
| + DCHECK(CalledOnValidThread());
|
| DCHECK_EQ(MODEL_STARTING, state_);
|
| template_url_subscription_.reset();
|
| OnModelLoaded();
|
|
|