Commit f0fdb821 authored by pavely's avatar pavely Committed by Commit bot

Unregister GCMInvalidationBridge from GCMDriver when user signs out.

Currently when user signs out GCMInvalidationBridge stays registered
with GCMDriver preventing it from shutting down.
GCMInvalidationBridge needs to unregister when user signs out.

BUG=446349
R=jianli@chromium.org

Review URL: https://codereview.chromium.org/899353002

Cr-Commit-Position: refs/heads/master@{#315103}
parent f6016191
......@@ -280,6 +280,23 @@ void GCMInvalidationBridge::RegisterFinished(
result));
}
void GCMInvalidationBridge::Unregister() {
DCHECK(CalledOnValidThread());
// No-op if GCMClient is disabled.
if (gcm_driver_ == NULL)
return;
gcm_driver_->Unregister(
kInvalidationsAppId,
base::Bind(&GCMInvalidationBridge::UnregisterFinishedNoOp));
}
// static
void GCMInvalidationBridge::UnregisterFinishedNoOp(
gcm::GCMClient::Result result) {
// No-op.
}
void GCMInvalidationBridge::SubscribeForIncomingMessages() {
// No-op if GCMClient is disabled.
if (gcm_driver_ == NULL)
......@@ -357,5 +374,4 @@ void GCMInvalidationBridge::OnDisconnected() {
false));
}
} // namespace invalidation
......@@ -86,6 +86,10 @@ class GCMInvalidationBridge : public gcm::GCMAppHandler,
const std::string& registration_id,
gcm::GCMClient::Result result);
void Unregister();
static void UnregisterFinishedNoOp(gcm::GCMClient::Result result);
private:
gcm::GCMDriver* const gcm_driver_;
IdentityProvider* const identity_provider_;
......
......@@ -262,6 +262,9 @@ void TiclInvalidationService::OnActiveAccountLogout() {
access_token_request_.reset();
request_access_token_retry_timer_.Stop();
if (gcm_invalidation_bridge_)
gcm_invalidation_bridge_->Unregister();
if (IsStarted()) {
StopInvalidator();
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment