| Index: chrome/browser/sync/glue/frontend_data_type_controller.cc
|
| diff --git a/chrome/browser/sync/glue/frontend_data_type_controller.cc b/chrome/browser/sync/glue/frontend_data_type_controller.cc
|
| index 03c592d8471909a2d75fd1c9d649f06a2efbeb83..d822897a2677ccc77d39280fb014eeca748a9792 100644
|
| --- a/chrome/browser/sync/glue/frontend_data_type_controller.cc
|
| +++ b/chrome/browser/sync/glue/frontend_data_type_controller.cc
|
| @@ -44,7 +44,7 @@ FrontendDataTypeController::FrontendDataTypeController(
|
| void FrontendDataTypeController::LoadModels(
|
| const ModelLoadCallback& model_load_callback) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| - DCHECK(!model_load_callback.is_null());
|
| + model_load_callback_ = model_load_callback;
|
|
|
| if (state_ != NOT_RUNNING) {
|
| model_load_callback.Run(type(),
|
| @@ -55,9 +55,6 @@ void FrontendDataTypeController::LoadModels(
|
| return;
|
| }
|
|
|
| - DCHECK(model_load_callback_.is_null());
|
| -
|
| - model_load_callback_ = model_load_callback;
|
| state_ = MODEL_STARTING;
|
| if (!StartModels()) {
|
| // If we are waiting for some external service to load before associating
|
| @@ -72,13 +69,10 @@ void FrontendDataTypeController::LoadModels(
|
|
|
| void FrontendDataTypeController::OnModelLoaded() {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| - DCHECK(!model_load_callback_.is_null());
|
| DCHECK_EQ(state_, MODEL_STARTING);
|
|
|
| state_ = MODEL_LOADED;
|
| - ModelLoadCallback model_load_callback = model_load_callback_;
|
| - model_load_callback_.Reset();
|
| - model_load_callback.Run(type(), syncer::SyncError());
|
| + model_load_callback_.Run(type(), syncer::SyncError());
|
| }
|
|
|
| void FrontendDataTypeController::StartAssociating(
|
| @@ -150,15 +144,12 @@ void FrontendDataTypeController::OnSingleDataTypeUnrecoverableError(
|
| const syncer::SyncError& error) {
|
| DCHECK_EQ(type(), error.model_type());
|
| RecordUnrecoverableError(error.location(), error.message());
|
| - if (!start_callback_.is_null()) {
|
| + if (!model_load_callback_.is_null()) {
|
| syncer::SyncMergeResult local_merge_result(type());
|
| local_merge_result.set_error(error);
|
| base::MessageLoop::current()->PostTask(
|
| FROM_HERE,
|
| - base::Bind(start_callback_,
|
| - RUNTIME_ERROR,
|
| - local_merge_result,
|
| - syncer::SyncMergeResult(type())));
|
| + base::Bind(model_load_callback_, type(), error));
|
| }
|
| }
|
|
|
| @@ -260,13 +251,10 @@ void FrontendDataTypeController::AbortModelLoad() {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| CleanUp();
|
| state_ = NOT_RUNNING;
|
| - ModelLoadCallback model_load_callback = model_load_callback_;
|
| - model_load_callback_.Reset();
|
| - model_load_callback.Run(type(),
|
| - syncer::SyncError(FROM_HERE,
|
| - syncer::SyncError::DATATYPE_ERROR,
|
| - "Aborted",
|
| - type()));
|
| + model_load_callback_.Run(
|
| + type(),
|
| + syncer::SyncError(
|
| + FROM_HERE, syncer::SyncError::DATATYPE_ERROR, "Aborted", type()));
|
| }
|
|
|
| void FrontendDataTypeController::StartDone(
|
|
|