| Index: sync/notifier/chrome_invalidation_client.cc
|
| diff --git a/sync/notifier/chrome_invalidation_client.cc b/sync/notifier/chrome_invalidation_client.cc
|
| index 7b47fc52243810c0f46731a26ac66b4850ce8578..f0a3deea865561197d37f28fbfd02754571904f3 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.
|
|
|