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) { ...@@ -42,9 +42,11 @@ void DataTypeStatusTable::UpdateFailedDataTypes(const TypeErrorMap& errors) {
unrecoverable_errors_.insert(*iter); unrecoverable_errors_.insert(*iter);
break; break;
case SyncError::DATATYPE_ERROR: case SyncError::DATATYPE_ERROR:
case SyncError::DATATYPE_POLICY_ERROR:
data_type_errors_.insert(*iter); data_type_errors_.insert(*iter);
break; break;
case SyncError::DATATYPE_POLICY_ERROR:
data_type_policy_errors_.insert(*iter);
break;
case SyncError::CRYPTO_ERROR: case SyncError::CRYPTO_ERROR:
crypto_errors_.insert(*iter); crypto_errors_.insert(*iter);
break; break;
...@@ -62,6 +64,7 @@ void DataTypeStatusTable::Reset() { ...@@ -62,6 +64,7 @@ void DataTypeStatusTable::Reset() {
DVLOG(1) << "Resetting data type errors."; DVLOG(1) << "Resetting data type errors.";
unrecoverable_errors_.clear(); unrecoverable_errors_.clear();
data_type_errors_.clear(); data_type_errors_.clear();
data_type_policy_errors_.clear();
crypto_errors_.clear(); crypto_errors_.clear();
persistence_errors_.clear(); persistence_errors_.clear();
unready_errors_.clear(); unready_errors_.clear();
...@@ -78,8 +81,8 @@ void DataTypeStatusTable::ResetPersistenceErrorsFrom( ...@@ -78,8 +81,8 @@ void DataTypeStatusTable::ResetPersistenceErrorsFrom(
} }
} }
bool DataTypeStatusTable::ResetDataTypeErrorFor(ModelType type) { bool DataTypeStatusTable::ResetDataTypePolicyErrorFor(ModelType type) {
return data_type_errors_.erase(type) > 0; return data_type_policy_errors_.erase(type) > 0;
} }
bool DataTypeStatusTable::ResetUnreadyErrorFor(ModelType type) { bool DataTypeStatusTable::ResetUnreadyErrorFor(ModelType type) {
...@@ -89,6 +92,8 @@ bool DataTypeStatusTable::ResetUnreadyErrorFor(ModelType type) { ...@@ -89,6 +92,8 @@ bool DataTypeStatusTable::ResetUnreadyErrorFor(ModelType type) {
DataTypeStatusTable::TypeErrorMap DataTypeStatusTable::GetAllErrors() const { DataTypeStatusTable::TypeErrorMap DataTypeStatusTable::GetAllErrors() const {
TypeErrorMap result; TypeErrorMap result;
result.insert(data_type_errors_.begin(), data_type_errors_.end()); 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(crypto_errors_.begin(), crypto_errors_.end());
result.insert(persistence_errors_.begin(), persistence_errors_.end()); result.insert(persistence_errors_.begin(), persistence_errors_.end());
result.insert(unready_errors_.begin(), unready_errors_.end()); result.insert(unready_errors_.begin(), unready_errors_.end());
...@@ -106,6 +111,7 @@ ModelTypeSet DataTypeStatusTable::GetFailedTypes() const { ...@@ -106,6 +111,7 @@ ModelTypeSet DataTypeStatusTable::GetFailedTypes() const {
ModelTypeSet DataTypeStatusTable::GetFatalErrorTypes() const { ModelTypeSet DataTypeStatusTable::GetFatalErrorTypes() const {
ModelTypeSet result; ModelTypeSet result;
result.PutAll(GetTypesFromErrorMap(data_type_errors_)); result.PutAll(GetTypesFromErrorMap(data_type_errors_));
result.PutAll(GetTypesFromErrorMap(data_type_policy_errors_));
result.PutAll(GetTypesFromErrorMap(unrecoverable_errors_)); result.PutAll(GetTypesFromErrorMap(unrecoverable_errors_));
return result; return result;
} }
......
...@@ -40,7 +40,7 @@ class DataTypeStatusTable { ...@@ -40,7 +40,7 @@ class DataTypeStatusTable {
// Removes |type| from the data_type_errors_ set. Returns true if the type // 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 // was removed from the error set, false if the type did not have a data type
// error to begin with. // error to begin with.
bool ResetDataTypeErrorFor(ModelType type); bool ResetDataTypePolicyErrorFor(ModelType type);
// Removes |type| from the unread_errors_ set. Returns true if the 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 // was removed from the error set, false if the type did not have an unready
...@@ -81,6 +81,7 @@ class DataTypeStatusTable { ...@@ -81,6 +81,7 @@ class DataTypeStatusTable {
// disabled. These are different from unrecoverable_errors_ in that // disabled. These are different from unrecoverable_errors_ in that
// ResetDataTypeError can remove them from this list. // ResetDataTypeError can remove them from this list.
TypeErrorMap data_type_errors_; TypeErrorMap data_type_errors_;
TypeErrorMap data_type_policy_errors_;
// List of data types that failed due to the cryptographer not being ready. // List of data types that failed due to the cryptographer not being ready.
TypeErrorMap crypto_errors_; 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