Index: chrome/browser/sync/glue/password_data_type_controller.cc |
diff --git a/chrome/browser/sync/glue/password_data_type_controller.cc b/chrome/browser/sync/glue/password_data_type_controller.cc |
index c48386077ced4614d367446e4d3b5fd85085bb89..b43b5ba277a9e1a59a0de4a84c71b329c41d70d2 100644 |
--- a/chrome/browser/sync/glue/password_data_type_controller.cc |
+++ b/chrome/browser/sync/glue/password_data_type_controller.cc |
@@ -43,6 +43,16 @@ void PasswordDataTypeController::Start(StartCallback* start_callback) { |
return; |
} |
+ password_store_ = profile_->GetPasswordStore(Profile::EXPLICIT_ACCESS); |
+ if (!password_store_.get()) { |
+ LOG(ERROR) << "PasswordStore not initialized, password datatype controller" |
+ << " aborting."; |
+ state_ = NOT_RUNNING; |
+ start_callback->Run(ABORTED); |
+ delete start_callback; |
+ return; |
+ } |
+ |
if (!sync_service_->IsCryptographerReady()) { |
start_callback->Run(NEEDS_CRYPTO); |
delete start_callback; |
@@ -50,10 +60,7 @@ void PasswordDataTypeController::Start(StartCallback* start_callback) { |
} |
start_callback_.reset(start_callback); |
- |
set_state(ASSOCIATING); |
- password_store_ = profile_->GetPasswordStore(Profile::EXPLICIT_ACCESS); |
- DCHECK(password_store_.get()); |
password_store_->ScheduleTask( |
NewRunnableMethod(this, &PasswordDataTypeController::StartImpl)); |
} |