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

Unified Diff: components/sync/model_impl/shared_model_type_processor.cc

Issue 2618483003: [Sync] Introduce ModelError for USS error handling. (Closed)
Patch Set: Fix iOS reading list. Created 3 years, 11 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/model_impl/shared_model_type_processor.cc
diff --git a/components/sync/model_impl/shared_model_type_processor.cc b/components/sync/model_impl/shared_model_type_processor.cc
index 6b5816f90a209628f7a6ad2a741908e70f139088..910e62d3b7706a32df1fbfdf455257e8fc932fca 100644
--- a/components/sync/model_impl/shared_model_type_processor.cc
+++ b/components/sync/model_impl/shared_model_type_processor.cc
@@ -23,10 +23,7 @@ namespace syncer {
SharedModelTypeProcessor::SharedModelTypeProcessor(ModelType type,
ModelTypeSyncBridge* bridge)
: type_(type),
- is_metadata_loaded_(false),
- is_initial_pending_data_loaded_(false),
bridge_(bridge),
- error_handler_(nullptr),
weak_ptr_factory_(this) {
DCHECK(bridge);
}
@@ -59,7 +56,7 @@ void SharedModelTypeProcessor::OnMetadataLoaded(
// Flip this flag here to cover all cases where we don't need to load data.
is_initial_pending_data_loaded_ = true;
- if (error.IsSet()) {
+ if (error.IsSet() && !start_error_.IsSet()) {
start_error_ = error;
ConnectIfReady();
skym 2017/01/05 17:03:49 While you're in here, would be nice to explain why
maxbogue 2017/01/07 00:12:39 n/a, I think?
return;
@@ -144,9 +141,18 @@ bool SharedModelTypeProcessor::IsTrackingMetadata() {
return model_type_state_.initial_sync_done();
}
+void SharedModelTypeProcessor::OnUnrecoverableError(const SyncError& error) {
+ if (error_handler_) {
+ error_handler_->OnUnrecoverableError(error);
+ } else if (!start_error_.IsSet()) {
+ start_error_ = error;
+ }
+}
+
SyncError SharedModelTypeProcessor::CreateAndUploadError(
const tracked_objects::Location& location,
- const std::string& message) {
+ const std::string& message,
+ ModelType type) {
skym 2017/01/05 17:03:49 Doesn't seem like type is very useful to be part o
maxbogue 2017/01/07 00:12:39 n/a
if (error_handler_) {
return error_handler_->CreateAndUploadError(location, message, type_);
} else {
@@ -154,6 +160,11 @@ SyncError SharedModelTypeProcessor::CreateAndUploadError(
}
}
+std::unique_ptr<DataTypeErrorHandler> SharedModelTypeProcessor::Copy() const {
+ NOTREACHED();
skym 2017/01/05 17:03:49 I think this probably deserves a comment. Could ex
maxbogue 2017/01/07 00:12:39 n/a
+ return nullptr;
+}
+
void SharedModelTypeProcessor::ConnectSync(
std::unique_ptr<CommitQueue> worker) {
DCHECK(CalledOnValidThread());
@@ -561,7 +572,7 @@ void SharedModelTypeProcessor::OnInitialPendingDataLoaded(
std::unique_ptr<DataBatch> data_batch) {
DCHECK(!is_initial_pending_data_loaded_);
- if (error.IsSet()) {
+ if (error.IsSet() && !start_error_.IsSet()) {
start_error_ = error;
} else {
ConsumeDataBatch(std::move(data_batch));

Powered by Google App Engine
This is Rietveld 408576698