| Index: trunk/src/components/sync_driver/non_ui_data_type_controller.cc
|
| ===================================================================
|
| --- trunk/src/components/sync_driver/non_ui_data_type_controller.cc (revision 289354)
|
| +++ trunk/src/components/sync_driver/non_ui_data_type_controller.cc (working copy)
|
| @@ -24,9 +24,8 @@
|
| NonUIDataTypeController::NonUIDataTypeController(
|
| scoped_refptr<base::MessageLoopProxy> ui_thread,
|
| const base::Closure& error_callback,
|
| - const DisableTypeCallback& disable_callback,
|
| SyncApiComponentFactory* sync_factory)
|
| - : DataTypeController(ui_thread, error_callback, disable_callback),
|
| + : DataTypeController(ui_thread, error_callback),
|
| sync_factory_(sync_factory),
|
| state_(NOT_RUNNING),
|
| ui_thread_(ui_thread) {
|
| @@ -111,6 +110,7 @@
|
|
|
| void NonUIDataTypeController::Stop() {
|
| DCHECK(ui_thread_->BelongsToCurrentThread());
|
| +
|
| if (state() == NOT_RUNNING)
|
| return;
|
|
|
| @@ -166,22 +166,20 @@
|
| return state_;
|
| }
|
|
|
| -void NonUIDataTypeController::OnSingleDatatypeUnrecoverableError(
|
| - const tracked_objects::Location& from_here, const std::string& message) {
|
| +void NonUIDataTypeController::OnSingleDataTypeUnrecoverableError(
|
| + const syncer::SyncError& error) {
|
| DCHECK(!ui_thread_->BelongsToCurrentThread());
|
| // TODO(tim): We double-upload some errors. See bug 383480.
|
| if (!error_callback_.is_null())
|
| error_callback_.Run();
|
| - ui_thread_->PostTask(from_here,
|
| + ui_thread_->PostTask(error.location(),
|
| base::Bind(&NonUIDataTypeController::DisableImpl,
|
| this,
|
| - from_here,
|
| - message));
|
| + error));
|
| }
|
|
|
| NonUIDataTypeController::NonUIDataTypeController()
|
| - : DataTypeController(base::MessageLoopProxy::current(), base::Closure(),
|
| - DisableTypeCallback()),
|
| + : DataTypeController(base::MessageLoopProxy::current(), base::Closure()),
|
| sync_factory_(NULL) {}
|
|
|
| NonUIDataTypeController::~NonUIDataTypeController() {}
|
| @@ -272,15 +270,12 @@
|
| }
|
|
|
| void NonUIDataTypeController::DisableImpl(
|
| - const tracked_objects::Location& from_here,
|
| - const std::string& message) {
|
| + const syncer::SyncError& error) {
|
| DCHECK(ui_thread_->BelongsToCurrentThread());
|
| UMA_HISTOGRAM_ENUMERATION("Sync.DataTypeRunFailures",
|
| ModelTypeToHistogramInt(type()),
|
| syncer::MODEL_TYPE_COUNT);
|
| if (!start_callback_.is_null()) {
|
| - syncer::SyncError error(
|
| - from_here, syncer::SyncError::DATATYPE_ERROR, message, type());
|
| syncer::SyncMergeResult local_merge_result(type());
|
| local_merge_result.set_error(error);
|
| start_callback_.Run(RUNTIME_ERROR,
|
|
|