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

Unified Diff: components/autofill/core/browser/webdata/autofill_profile_data_type_controller.cc

Issue 2289143003: [Sync] Convert DTCs to be not RefCounted and NonThreadSafe. (Closed)
Patch Set: Rebase. Created 4 years, 3 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/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);
}

Powered by Google App Engine
This is Rietveld 408576698