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

Unified Diff: components/sync_driver/failed_data_types_handler.cc

Issue 420633002: [Sync] Cleanup datatype configuration error handling. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix compile 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: components/sync_driver/failed_data_types_handler.cc
diff --git a/components/sync_driver/failed_data_types_handler.cc b/components/sync_driver/failed_data_types_handler.cc
index cb18febac7f2f30b0abe80b6a4c0dde1a13a6c74..8ee9c1dea6531b27a649af9be3d10e0a18255ff1 100644
--- a/components/sync_driver/failed_data_types_handler.cc
+++ b/components/sync_driver/failed_data_types_handler.cc
@@ -32,6 +32,8 @@ bool FailedDataTypesHandler::UpdateFailedDataTypes(const TypeErrorMap& errors) {
if (errors.empty())
return false;
+ DVLOG(1) << "Setting " << errors.size() << " new failed types.";
+
for (TypeErrorMap::const_iterator iter = errors.begin(); iter != errors.end();
++iter) {
syncer::SyncError::ErrorType failure_type = iter->second.error_type();
@@ -91,11 +93,11 @@ bool FailedDataTypesHandler::ResetUnreadyErrorFor(syncer::ModelType type) {
FailedDataTypesHandler::TypeErrorMap FailedDataTypesHandler::GetAllErrors()
const {
TypeErrorMap result;
- result = unrecoverable_errors_;
result.insert(data_type_errors_.begin(), data_type_errors_.end());
result.insert(crypto_errors_.begin(), crypto_errors_.end());
result.insert(persistence_errors_.begin(), persistence_errors_.end());
result.insert(unready_errors_.begin(), unready_errors_.end());
+ result.insert(unrecoverable_errors_.begin(), unrecoverable_errors_.end());
return result;
}
@@ -108,8 +110,9 @@ syncer::ModelTypeSet FailedDataTypesHandler::GetFailedTypes() const {
syncer::ModelTypeSet FailedDataTypesHandler::GetFatalErrorTypes()
const {
- syncer::ModelTypeSet result = GetTypesFromErrorMap(unrecoverable_errors_);
+ syncer::ModelTypeSet result;
result.PutAll(GetTypesFromErrorMap(data_type_errors_));
+ result.PutAll(GetTypesFromErrorMap(unrecoverable_errors_));
return result;
}
@@ -128,10 +131,25 @@ syncer::ModelTypeSet FailedDataTypesHandler::GetUnreadyErrorTypes() const {
return result;
}
+syncer::ModelTypeSet FailedDataTypesHandler::GetUnrecoverableErrorTypes()
+ const {
+ syncer::ModelTypeSet result = GetTypesFromErrorMap(unrecoverable_errors_);
+ return result;
+}
+
+syncer::SyncError FailedDataTypesHandler::GetUnrecoverableError() const {
+ // Just return the first one. It is assumed all the unrecoverable errors
+ // have the same cause. The others are just tracked to know which types
+ // were involved.
+ return (unrecoverable_errors_.empty()
+ ? syncer::SyncError()
+ : unrecoverable_errors_.begin()->second);
+}
+
bool FailedDataTypesHandler::AnyFailedDataType() const {
// Note: persistence errors are not failed types. They just trigger automatic
// unapply + getupdates, at which point they are associated like normal.
- return !unrecoverable_errors_.empty() ||
+ return unrecoverable_errors_.empty() ||
!data_type_errors_.empty() ||
!crypto_errors_.empty();
}
« no previous file with comments | « components/sync_driver/failed_data_types_handler.h ('k') | components/sync_driver/fake_data_type_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698