Chromium Code Reviews| Index: sync/notifier/chrome_invalidation_client.cc |
| diff --git a/sync/notifier/chrome_invalidation_client.cc b/sync/notifier/chrome_invalidation_client.cc |
| index 6ec46595a0df5420ca9f347dc42252cc9779bf22..d50b1bcb2d9bdd8e0103e6beb7754dfed960257c 100644 |
| --- a/sync/notifier/chrome_invalidation_client.cc |
| +++ b/sync/notifier/chrome_invalidation_client.cc |
| @@ -109,9 +109,8 @@ void ChromeInvalidationClient::UpdateRegisteredIds(const ObjectIdSet& ids) { |
| // working XMPP connection (as observed by us), so check it instead |
| // of GetState() (see http://crbug.com/139424). |
| if (ticl_state_ == NO_NOTIFICATION_ERROR && registration_manager_.get()) { |
| - registration_manager_->UpdateRegisteredIds(registered_ids_); |
| + DoRegistrationUpdate(); |
| } |
| - // TODO(akalin): Clear invalidation versions for unregistered types. |
| } |
| void ChromeInvalidationClient::Ready( |
| @@ -120,7 +119,7 @@ void ChromeInvalidationClient::Ready( |
| DCHECK_EQ(client, invalidation_client_.get()); |
| ticl_state_ = NO_NOTIFICATION_ERROR; |
| EmitStateChange(); |
| - registration_manager_->UpdateRegisteredIds(registered_ids_); |
| + DoRegistrationUpdate(); |
| } |
| void ChromeInvalidationClient::Invalidate( |
| @@ -285,6 +284,18 @@ void ChromeInvalidationClient::WriteState(const std::string& state) { |
| FROM_HERE, &InvalidationStateTracker::SetInvalidationState, state); |
| } |
| +void ChromeInvalidationClient::DoRegistrationUpdate() { |
| + DCHECK(CalledOnValidThread()); |
| + const ObjectIdSet& unregistered_ids = |
| + registration_manager_->UpdateRegisteredIds(registered_ids_); |
| + for (ObjectIdSet::const_iterator it = unregistered_ids.begin(); |
| + it != unregistered_ids.end(); |
| + ++it) { |
| + invalidation_state_tracker_.Call( |
|
akalin
2012/08/22 19:57:30
resurrecting my old comment, make Forget take a se
dcheng
2012/08/24 01:35:25
Done.
|
| + FROM_HERE, &InvalidationStateTracker::Forget, *it); |
| + } |
| +} |
| + |
| void ChromeInvalidationClient::StopForTest() { |
| DCHECK(CalledOnValidThread()); |
| Stop(); |