| Index: sync/engine/backoff_delay_provider.cc
|
| diff --git a/sync/engine/backoff_delay_provider.cc b/sync/engine/backoff_delay_provider.cc
|
| index f8e2750876fd9a87d10ce49d0203efca41bef458..bff3fd61c6e1d23456d657711a548a679cf9c72c 100644
|
| --- a/sync/engine/backoff_delay_provider.cc
|
| +++ b/sync/engine/backoff_delay_provider.cc
|
| @@ -97,6 +97,11 @@ TimeDelta BackoffDelayProvider::GetInitialDelay(
|
| return short_initial_backoff_;
|
| }
|
|
|
| + // If a datatype decides the GetUpdates must be retried (e.g. because the
|
| + // context has been updated since the request), use the short delay.
|
| + if (state.last_download_updates_result == DATATYPE_TRIGGERED_RETRY)
|
| + return short_initial_backoff_;
|
| +
|
| // When the server tells us we have a conflict, then we should download the
|
| // latest updates so we can see the conflict ourselves, resolve it locally,
|
| // then try again to commit. Running another sync cycle will do all these
|
| @@ -105,9 +110,8 @@ TimeDelta BackoffDelayProvider::GetInitialDelay(
|
| // TODO(sync): We shouldn't need to handle this in BackoffDelayProvider.
|
| // There should be a way to deal with protocol errors before we get to this
|
| // point.
|
| - if (state.commit_result == SERVER_RETURN_CONFLICT) {
|
| + if (state.commit_result == SERVER_RETURN_CONFLICT)
|
| return short_initial_backoff_;
|
| - }
|
|
|
| return default_initial_backoff_;
|
| }
|
|
|