Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(258)

Unified Diff: trunk/src/components/sync_driver/ui_data_type_controller.cc

Issue 468643002: Revert 288464 "[Sync] Cleanup datatype configuration error handl..." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: trunk/src/components/sync_driver/ui_data_type_controller.cc
===================================================================
--- trunk/src/components/sync_driver/ui_data_type_controller.cc (revision 289114)
+++ trunk/src/components/sync_driver/ui_data_type_controller.cc (working copy)
@@ -145,11 +145,6 @@
}
if (!shared_change_processor_->CryptoReadyIfNecessary()) {
- syncer::SyncError error(FROM_HERE,
- syncer::SyncError::CRYPTO_ERROR,
- "",
- type());
- local_merge_result.set_error(error);
StartDone(NEEDS_CRYPTO,
local_merge_result,
syncer_merge_result);
@@ -242,7 +237,7 @@
}
void UIDataTypeController::StartDone(
- ConfigureResult start_result,
+ StartResult start_result,
const syncer::SyncMergeResult& local_merge_result,
const syncer::SyncMergeResult& syncer_merge_result) {
DCHECK(ui_thread_->BelongsToCurrentThread());
@@ -262,7 +257,12 @@
}
}
- start_callback_.Run(start_result, local_merge_result, syncer_merge_result);
+ // We have to release the callback before we call it, since it's possible
+ // invoking the callback will trigger a call to Stop(), which will get
+ // confused by the non-NULL start_callback_.
+ StartCallback callback = start_callback_;
+ start_callback_.Reset();
+ callback.Run(start_result, local_merge_result, syncer_merge_result);
}
void UIDataTypeController::Stop() {
@@ -285,6 +285,7 @@
// still in MODEL_STARTING.
return;
}
+ DCHECK(start_callback_.is_null());
StopModels();
@@ -326,15 +327,8 @@
// TODO(tim): We double-upload some errors. See bug 383480.
if (!error_callback_.is_null())
error_callback_.Run();
- 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,
- local_merge_result,
- syncer::SyncMergeResult(type()));
- }
+ if (!disable_callback().is_null())
+ disable_callback().Run(from_here, message);
}
void UIDataTypeController::RecordAssociationTime(base::TimeDelta time) {
@@ -345,7 +339,7 @@
#undef PER_DATA_TYPE_MACRO
}
-void UIDataTypeController::RecordStartFailure(ConfigureResult result) {
+void UIDataTypeController::RecordStartFailure(StartResult result) {
DCHECK(ui_thread_->BelongsToCurrentThread());
UMA_HISTOGRAM_ENUMERATION("Sync.DataTypeStartFailures",
ModelTypeToHistogramInt(type()),

Powered by Google App Engine
This is Rietveld 408576698