| 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 770e5c31b4129e28e3ead78528aa14d9bf13138f..e686024334dfcfe872872725474a35493db8d0dc 100644
|
| --- a/chrome/browser/sync/glue/frontend_data_type_controller.cc
|
| +++ b/chrome/browser/sync/glue/frontend_data_type_controller.cc
|
| @@ -195,7 +195,14 @@ void FrontendDataTypeController::OnUnrecoverableError(
|
| const tracked_objects::Location& from_here, const std::string& message) {
|
| // The ProfileSyncService will invoke our Stop() method in response to this.
|
| RecordUnrecoverableError(from_here, message);
|
| - sync_service_->OnUnrecoverableError(from_here, message);
|
| +
|
| + // We dont know the current state of the caller. Posting a task will allow
|
| + // the caller to unwind the stack before we process unrecoverable error.
|
| + MessageLoop::current()->PostTask(from_here,
|
| + base::Bind(&ProfileSyncService::OnUnrecoverableError,
|
| + sync_service_->AsWeakPtr(),
|
| + from_here,
|
| + message));
|
| }
|
|
|
| AssociatorInterface* FrontendDataTypeController::model_associator() const {
|
|
|