| Index: components/autofill/core/browser/webdata/autofill_profile_data_type_controller.cc
|
| diff --git a/components/autofill/core/browser/webdata/autofill_profile_data_type_controller.cc b/components/autofill/core/browser/webdata/autofill_profile_data_type_controller.cc
|
| index d37048b312849135be075b3fc2dfc9801b8a330e..166abbb905a27401783887a5043fe74890531773 100644
|
| --- a/components/autofill/core/browser/webdata/autofill_profile_data_type_controller.cc
|
| +++ b/components/autofill/core/browser/webdata/autofill_profile_data_type_controller.cc
|
| @@ -17,34 +17,30 @@ using autofill::AutofillWebDataService;
|
| namespace browser_sync {
|
|
|
| AutofillProfileDataTypeController::AutofillProfileDataTypeController(
|
| - const scoped_refptr<base::SingleThreadTaskRunner>& ui_thread,
|
| const scoped_refptr<base::SingleThreadTaskRunner>& db_thread,
|
| - const base::Closure& error_callback,
|
| + const base::Closure& dump_stack,
|
| sync_driver::SyncClient* sync_client,
|
| const scoped_refptr<autofill::AutofillWebDataService>& web_data_service)
|
| - : NonUIDataTypeController(ui_thread, error_callback, sync_client),
|
| - ui_thread_(ui_thread),
|
| + : NonUIDataTypeController(syncer::AUTOFILL_PROFILE,
|
| + dump_stack,
|
| + sync_client),
|
| db_thread_(db_thread),
|
| sync_client_(sync_client),
|
| web_data_service_(web_data_service),
|
| callback_registered_(false) {}
|
|
|
| -syncer::ModelType AutofillProfileDataTypeController::type() const {
|
| - return syncer::AUTOFILL_PROFILE;
|
| -}
|
| -
|
| syncer::ModelSafeGroup AutofillProfileDataTypeController::model_safe_group()
|
| const {
|
| return syncer::GROUP_DB;
|
| }
|
|
|
| void AutofillProfileDataTypeController::WebDatabaseLoaded() {
|
| - DCHECK(ui_thread_->BelongsToCurrentThread());
|
| + DCHECK(CalledOnValidThread());
|
| OnModelLoaded();
|
| }
|
|
|
| void AutofillProfileDataTypeController::OnPersonalDataChanged() {
|
| - DCHECK(ui_thread_->BelongsToCurrentThread());
|
| + DCHECK(CalledOnValidThread());
|
| DCHECK_EQ(state(), MODEL_STARTING);
|
|
|
| sync_client_->GetPersonalDataManager()->RemoveObserver(this);
|
| @@ -55,8 +51,9 @@ void AutofillProfileDataTypeController::OnPersonalDataChanged() {
|
| if (web_data_service_->IsDatabaseLoaded()) {
|
| OnModelLoaded();
|
| } else if (!callback_registered_) {
|
| - web_data_service_->RegisterDBLoadedCallback(base::Bind(
|
| - &AutofillProfileDataTypeController::WebDatabaseLoaded, this));
|
| + web_data_service_->RegisterDBLoadedCallback(
|
| + base::Bind(&AutofillProfileDataTypeController::WebDatabaseLoaded,
|
| + base::AsWeakPtr(this)));
|
| callback_registered_ = true;
|
| }
|
| }
|
| @@ -66,12 +63,12 @@ AutofillProfileDataTypeController::~AutofillProfileDataTypeController() {}
|
| bool AutofillProfileDataTypeController::PostTaskOnBackendThread(
|
| const tracked_objects::Location& from_here,
|
| const base::Closure& task) {
|
| - DCHECK(ui_thread_->BelongsToCurrentThread());
|
| + DCHECK(CalledOnValidThread());
|
| return db_thread_->PostTask(from_here, task);
|
| }
|
|
|
| bool AutofillProfileDataTypeController::StartModels() {
|
| - DCHECK(ui_thread_->BelongsToCurrentThread());
|
| + DCHECK(CalledOnValidThread());
|
| DCHECK_EQ(state(), MODEL_STARTING);
|
| // Waiting for the personal data is subtle: we do this as the PDM resets
|
| // its cache of unique IDs once it gets loaded. If we were to proceed with
|
| @@ -90,8 +87,9 @@ bool AutofillProfileDataTypeController::StartModels() {
|
| return true;
|
|
|
| if (!callback_registered_) {
|
| - web_data_service_->RegisterDBLoadedCallback(base::Bind(
|
| - &AutofillProfileDataTypeController::WebDatabaseLoaded, this));
|
| + web_data_service_->RegisterDBLoadedCallback(
|
| + base::Bind(&AutofillProfileDataTypeController::WebDatabaseLoaded,
|
| + base::AsWeakPtr(this)));
|
| callback_registered_ = true;
|
| }
|
|
|
| @@ -99,7 +97,7 @@ bool AutofillProfileDataTypeController::StartModels() {
|
| }
|
|
|
| void AutofillProfileDataTypeController::StopModels() {
|
| - DCHECK(ui_thread_->BelongsToCurrentThread());
|
| + DCHECK(CalledOnValidThread());
|
| sync_client_->GetPersonalDataManager()->RemoveObserver(this);
|
| }
|
|
|
|
|