Commit 494689df authored by Mikel Astiz's avatar Mikel Astiz Committed by Commit Bot

Split policy errors in sync datatype status table

This allows a more controller clearing of the policy errors via the
repurposed ResetDataTypePolicyErrorFor(), which doesn't have any caller
as of today.

Bug: 990802
Change-Id: I90aefa3437cc1ef9a130b2df62c29e6940bee8c5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1735165Reviewed-by: default avatarMarc Treib <treib@chromium.org>
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#684301}
parent 9d357a52
......@@ -42,9 +42,11 @@ void DataTypeStatusTable::UpdateFailedDataTypes(const TypeErrorMap& errors) {
unrecoverable_errors_.insert(*iter);
break;
case SyncError::DATATYPE_ERROR:
case SyncError::DATATYPE_POLICY_ERROR:
data_type_errors_.insert(*iter);
break;
case SyncError::DATATYPE_POLICY_ERROR:
data_type_policy_errors_.insert(*iter);
break;
case SyncError::CRYPTO_ERROR:
crypto_errors_.insert(*iter);
break;
......@@ -62,6 +64,7 @@ void DataTypeStatusTable::Reset() {
DVLOG(1) << "Resetting data type errors.";
unrecoverable_errors_.clear();
data_type_errors_.clear();
data_type_policy_errors_.clear();
crypto_errors_.clear();
persistence_errors_.clear();
unready_errors_.clear();
......@@ -78,8 +81,8 @@ void DataTypeStatusTable::ResetPersistenceErrorsFrom(
}
}
bool DataTypeStatusTable::ResetDataTypeErrorFor(ModelType type) {
return data_type_errors_.erase(type) > 0;
bool DataTypeStatusTable::ResetDataTypePolicyErrorFor(ModelType type) {
return data_type_policy_errors_.erase(type) > 0;
}
bool DataTypeStatusTable::ResetUnreadyErrorFor(ModelType type) {
......@@ -89,6 +92,8 @@ bool DataTypeStatusTable::ResetUnreadyErrorFor(ModelType type) {
DataTypeStatusTable::TypeErrorMap DataTypeStatusTable::GetAllErrors() const {
TypeErrorMap result;
result.insert(data_type_errors_.begin(), data_type_errors_.end());
result.insert(data_type_policy_errors_.begin(),
data_type_policy_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());
......@@ -106,6 +111,7 @@ ModelTypeSet DataTypeStatusTable::GetFailedTypes() const {
ModelTypeSet DataTypeStatusTable::GetFatalErrorTypes() const {
ModelTypeSet result;
result.PutAll(GetTypesFromErrorMap(data_type_errors_));
result.PutAll(GetTypesFromErrorMap(data_type_policy_errors_));
result.PutAll(GetTypesFromErrorMap(unrecoverable_errors_));
return result;
}
......
......@@ -40,7 +40,7 @@ class DataTypeStatusTable {
// Removes |type| from the data_type_errors_ set. Returns true if the type
// was removed from the error set, false if the type did not have a data type
// error to begin with.
bool ResetDataTypeErrorFor(ModelType type);
bool ResetDataTypePolicyErrorFor(ModelType type);
// Removes |type| from the unread_errors_ set. Returns true if the type
// was removed from the error set, false if the type did not have an unready
......@@ -81,6 +81,7 @@ class DataTypeStatusTable {
// disabled. These are different from unrecoverable_errors_ in that
// ResetDataTypeError can remove them from this list.
TypeErrorMap data_type_errors_;
TypeErrorMap data_type_policy_errors_;
// List of data types that failed due to the cryptographer not being ready.
TypeErrorMap crypto_errors_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment