diff options
Diffstat (limited to 'sync/notifier/chrome_invalidation_client.cc')
-rw-r--r-- | sync/notifier/chrome_invalidation_client.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sync/notifier/chrome_invalidation_client.cc b/sync/notifier/chrome_invalidation_client.cc index 7b47fc5..f0a3dee 100644 --- a/sync/notifier/chrome_invalidation_client.cc +++ b/sync/notifier/chrome_invalidation_client.cc @@ -103,7 +103,10 @@ void ChromeInvalidationClient::UpdateCredentials( void ChromeInvalidationClient::RegisterIds(const ObjectIdSet& ids) { DCHECK(CalledOnValidThread()); registered_ids_ = ids; - if (GetState() == NO_NOTIFICATION_ERROR && registration_manager_.get()) { + // |ticl_state_| can go to NO_NOTIFICATION_ERROR even without a + // 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_->SetRegisteredIds(registered_ids_); } // TODO(akalin): Clear invalidation versions for unregistered types. |