| Index: chrome/browser/sync/profile_sync_service.cc
|
| diff --git a/chrome/browser/sync/profile_sync_service.cc b/chrome/browser/sync/profile_sync_service.cc
|
| index 5c17fb0f3e3c01b4bd833b558a4d80e13bc5a721..c8258ae0b9a2770f0dde039f834aee5b7d342694 100644
|
| --- a/chrome/browser/sync/profile_sync_service.cc
|
| +++ b/chrome/browser/sync/profile_sync_service.cc
|
| @@ -497,6 +497,11 @@ void ProfileSyncService::StartUp() {
|
| if (backend_.get()) {
|
| backend_->UpdateRegisteredInvalidationIds(
|
| invalidator_registrar_->GetAllRegisteredIds());
|
| + for (AckHandleReplayQueue::const_iterator it = ack_replay_queue_.begin();
|
| + it != ack_replay_queue_.end(); ++it) {
|
| + backend_->AcknowledgeInvalidation(it->first, it->second);
|
| + }
|
| + ack_replay_queue_.clear();
|
| }
|
|
|
| if (!sync_global_error_.get()) {
|
| @@ -532,6 +537,18 @@ void ProfileSyncService::UnregisterInvalidationHandler(
|
| invalidator_registrar_->UnregisterHandler(handler);
|
| }
|
|
|
| +void ProfileSyncService::AcknowledgeInvalidation(
|
| + const invalidation::ObjectId& id,
|
| + const syncer::AckHandle& ack_handle) {
|
| + if (backend_.get()) {
|
| + backend_->AcknowledgeInvalidation(id, ack_handle);
|
| + } else {
|
| + // If |backend_| is NULL, save the acknowledgements to replay when
|
| + // it's created and initialized.
|
| + ack_replay_queue_.push_back(std::make_pair(id, ack_handle));
|
| + }
|
| +}
|
| +
|
| syncer::InvalidatorState ProfileSyncService::GetInvalidatorState() const {
|
| return invalidator_registrar_->GetInvalidatorState();
|
| }
|
|
|