| Index: chrome/browser/sync/glue/sync_backend_host.cc
|
| diff --git a/chrome/browser/sync/glue/sync_backend_host.cc b/chrome/browser/sync/glue/sync_backend_host.cc
|
| index 2f91728d69096ca2a55838b0e751a67550093421..ff2fb7e3b974cb23e30765c483bc9518208659e0 100644
|
| --- a/chrome/browser/sync/glue/sync_backend_host.cc
|
| +++ b/chrome/browser/sync/glue/sync_backend_host.cc
|
| @@ -1494,13 +1494,14 @@ void SyncBackendHost::OnInvalidatorStateChange(syncer::InvalidatorState state) {
|
|
|
| void SyncBackendHost::OnIncomingInvalidation(
|
| const syncer::ObjectIdInvalidationMap& invalidation_map) {
|
| - // TODO(dcheng): Acknowledge immediately for now. Fix this once the
|
| - // invalidator doesn't repeatedly ping for unacknowledged invaliations, since
|
| - // it conflicts with the sync scheduler's internal backoff algorithm.
|
| - // See http://crbug.com/124149 for more information.
|
| - for (syncer::ObjectIdInvalidationMap::const_iterator it =
|
| - invalidation_map.begin(); it != invalidation_map.end(); ++it) {
|
| - invalidator_->AcknowledgeInvalidation(it->first, it->second.ack_handle);
|
| + // TODO(rlarocque): Acknowledge these invalidations only after the syncer has
|
| + // acted on them and saved the results to disk.
|
| + syncer::ObjectIdSet ids = invalidation_map.GetObjectIds();
|
| + for (syncer::ObjectIdSet::const_iterator it = ids.begin();
|
| + it != ids.end(); ++it) {
|
| + const syncer::AckHandle& handle =
|
| + invalidation_map.ForObject(*it).back().GetAckHandle();
|
| + invalidator_->AcknowledgeInvalidation(*it, handle);
|
| }
|
|
|
| registrar_->sync_thread()->message_loop()->PostTask(
|
|
|