Index: components/invalidation/gcm_invalidation_bridge.cc |
diff --git a/components/invalidation/gcm_invalidation_bridge.cc b/components/invalidation/gcm_invalidation_bridge.cc |
index 23f40afa2d236bf00260c92f8ccb6537dffab135..691be33a0e4088329e0ce8ee816d990f2bfc8e2d 100644 |
--- a/components/invalidation/gcm_invalidation_bridge.cc |
+++ b/components/invalidation/gcm_invalidation_bridge.cc |
@@ -165,8 +165,10 @@ GCMInvalidationBridge::GCMInvalidationBridge( |
weak_factory_(this) {} |
GCMInvalidationBridge::~GCMInvalidationBridge() { |
- if (subscribed_for_incoming_messages_) |
+ if (subscribed_for_incoming_messages_) { |
gcm_driver_->RemoveAppHandler(kInvalidationsAppId); |
+ gcm_driver_->RemoveConnectionObserver(this); |
+ } |
} |
scoped_ptr<syncer::GCMNetworkChannelDelegate> |
@@ -285,6 +287,7 @@ void GCMInvalidationBridge::SubscribeForIncomingMessages() { |
DCHECK(!subscribed_for_incoming_messages_); |
gcm_driver_->AddAppHandler(kInvalidationsAppId, this); |
+ gcm_driver_->AddConnectionObserver(this); |
core_thread_task_runner_->PostTask( |
FROM_HERE, |
base::Bind(&GCMInvalidationBridge::Core::OnConnectionStateChanged, |