| Index: sync/internal_api/sync_manager_impl.cc
|
| diff --git a/sync/internal_api/sync_manager_impl.cc b/sync/internal_api/sync_manager_impl.cc
|
| index d95ba0b47541349748c57c2798e6b2732a1176b6..78adc78b132498182c8b57fe2a68dd7ace657812 100644
|
| --- a/sync/internal_api/sync_manager_impl.cc
|
| +++ b/sync/internal_api/sync_manager_impl.cc
|
| @@ -628,6 +628,13 @@ void SyncManagerImpl::UnregisterInvalidationHandler(
|
| invalidator_->UnregisterHandler(handler);
|
| }
|
|
|
| +void SyncManagerImpl::AcknowledgeInvalidation(
|
| + const invalidation::ObjectId& id, const syncer::AckHandle& ack_handle) {
|
| + DCHECK(thread_checker_.CalledOnValidThread());
|
| + DCHECK(initialized_);
|
| + invalidator_->Acknowledge(id, ack_handle);
|
| +}
|
| +
|
| void SyncManagerImpl::AddObserver(SyncManager::Observer* observer) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| observers_.AddObserver(observer);
|
| @@ -1231,6 +1238,16 @@ void SyncManagerImpl::OnInvalidatorStateChange(InvalidatorState state) {
|
| void SyncManagerImpl::OnIncomingInvalidation(
|
| const ObjectIdInvalidationMap& invalidation_map) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| +
|
| + // 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 (ObjectIdInvalidationMap::const_iterator it = invalidation_map.begin();
|
| + it != invalidation_map.end(); ++it) {
|
| + invalidator_->Acknowledge(it->first, it->second.ack_handle);
|
| + }
|
| +
|
| const ModelTypeInvalidationMap& type_invalidation_map =
|
| ObjectIdInvalidationMapToModelTypeInvalidationMap(invalidation_map);
|
| if (type_invalidation_map.empty()) {
|
|
|