Index: sync/sessions/data_type_tracker.cc |
diff --git a/sync/sessions/data_type_tracker.cc b/sync/sessions/data_type_tracker.cc |
index da50bbfb4c5da3ba005ea8214aa7e2a0dcb908de..8103c003db710c440f1afca37abbc4e1c22ef9e2 100644 |
--- a/sync/sessions/data_type_tracker.cc |
+++ b/sync/sessions/data_type_tracker.cc |
@@ -15,7 +15,8 @@ DataTypeTracker::DataTypeTracker() |
: local_nudge_count_(0), |
local_refresh_request_count_(0), |
payload_buffer_size_(NudgeTracker::kDefaultMaxPayloadsPerType), |
- initial_sync_required_(false) { |
+ initial_sync_required_(false), |
+ sync_required_to_resolve_conflict_(false) { |
} |
DataTypeTracker::~DataTypeTracker() { } |
@@ -92,6 +93,10 @@ void DataTypeTracker::RecordInitialSyncRequired() { |
initial_sync_required_ = true; |
} |
+void DataTypeTracker::RecordCommitConflict() { |
+ sync_required_to_resolve_conflict_ = true; |
+} |
+ |
void DataTypeTracker::RecordSuccessfulSyncCycle() { |
// If we were throttled, then we would have been excluded from this cycle's |
// GetUpdates and Commit actions. Our state remains unchanged. |
@@ -119,6 +124,7 @@ void DataTypeTracker::RecordSuccessfulSyncCycle() { |
} |
initial_sync_required_ = false; |
+ sync_required_to_resolve_conflict_ = false; |
} |
// This limit will take effect on all future invalidations received. |
@@ -133,7 +139,7 @@ bool DataTypeTracker::IsSyncRequired() const { |
bool DataTypeTracker::IsGetUpdatesRequired() const { |
return !IsThrottled() && |
(HasRefreshRequestPending() || HasPendingInvalidation() || |
- IsInitialSyncRequired()); |
+ IsInitialSyncRequired() || IsSyncRequiredToResolveConflict()); |
} |
bool DataTypeTracker::HasLocalChangePending() const { |
@@ -152,6 +158,10 @@ bool DataTypeTracker::IsInitialSyncRequired() const { |
return initial_sync_required_; |
} |
+bool DataTypeTracker::IsSyncRequiredToResolveConflict() const { |
+ return sync_required_to_resolve_conflict_; |
+} |
+ |
void DataTypeTracker::SetLegacyNotificationHint( |
sync_pb::DataTypeProgressMarker* progress) const { |
DCHECK(!IsThrottled()) |
@@ -192,6 +202,8 @@ void DataTypeTracker::FillGetUpdatesTriggersMessage( |
msg->set_local_modification_nudges(local_nudge_count_); |
msg->set_datatype_refresh_nudges(local_refresh_request_count_); |
msg->set_initial_sync_in_progress(initial_sync_required_); |
+ msg->set_sync_for_resolve_conflict_in_progress( |
+ sync_required_to_resolve_conflict_); |
} |
bool DataTypeTracker::IsThrottled() const { |