Chromium Code Reviews| 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 38435a89e6eda14438c43c61be2d24ec7796a441..4cce7cbcc8b72dfced8b6502a95a642f21e92c41 100644 |
| --- a/chrome/browser/sync/glue/frontend_data_type_controller.cc |
| +++ b/chrome/browser/sync/glue/frontend_data_type_controller.cc |
| @@ -30,7 +30,7 @@ FrontendDataTypeController::FrontendDataTypeController( |
| ProfileSyncComponentsFactory* profile_sync_factory, |
| Profile* profile, |
| ProfileSyncService* sync_service) |
| - : DataTypeController(ui_thread, error_callback, DisableTypeCallback()), |
| + : DataTypeController(ui_thread, error_callback), |
| profile_sync_factory_(profile_sync_factory), |
| profile_(profile), |
| sync_service_(sync_service), |
| @@ -145,17 +145,21 @@ sync_driver::DataTypeController::State FrontendDataTypeController::state() |
| return state_; |
| } |
| -void FrontendDataTypeController::OnSingleDatatypeUnrecoverableError( |
| - const tracked_objects::Location& from_here, const std::string& message) { |
| - RecordUnrecoverableError(from_here, message); |
| - syncer::SyncError error( |
| - from_here, syncer::SyncError::DATATYPE_ERROR, message, type()); |
| - sync_service_->DisableDatatype(error); |
| +void FrontendDataTypeController::OnSingleDataTypeUnrecoverableError( |
| + const syncer::SyncError& error) { |
| + DCHECK_EQ(type(), error.model_type()); |
| + RecordUnrecoverableError(error.location(), error.message()); |
| + if (!start_callback_.is_null()) { |
|
haitaol1
2014/08/07 00:49:48
What happens if error happens after association?
Nicolas Zea
2014/08/07 18:14:54
The previous patch maade it so that the start call
haitaol1
2014/08/07 18:24:15
But on line 290 below, start_callback_ is reset.
Nicolas Zea
2014/08/07 22:50:19
Looks like I forgot to handle the legacy datatype
|
| + syncer::SyncMergeResult local_merge_result(type()); |
| + local_merge_result.set_error(error); |
| + start_callback_.Run(RUNTIME_ERROR, |
| + local_merge_result, |
| + syncer::SyncMergeResult(type())); |
| + } |
| } |
| FrontendDataTypeController::FrontendDataTypeController() |
| - : DataTypeController(base::MessageLoopProxy::current(), base::Closure(), |
| - DisableTypeCallback()), |
| + : DataTypeController(base::MessageLoopProxy::current(), base::Closure()), |
| profile_sync_factory_(NULL), |
| profile_(NULL), |
| sync_service_(NULL), |