| 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 {
|
|
|