| Index: components/invalidation/impl/gcm_network_channel.cc
|
| diff --git a/components/invalidation/impl/gcm_network_channel.cc b/components/invalidation/impl/gcm_network_channel.cc
|
| index 6204ecc957e97051e99588e5ad016ed8b843616e..5b2aafeb81a01c78ad6d420f9ff989f56673e8ed 100644
|
| --- a/components/invalidation/impl/gcm_network_channel.cc
|
| +++ b/components/invalidation/impl/gcm_network_channel.cc
|
| @@ -121,8 +121,10 @@ GCMNetworkChannel::GCMNetworkChannel(
|
| diagnostic_info_(this),
|
| weak_factory_(this) {
|
| net::NetworkChangeNotifier::AddNetworkChangeObserver(this);
|
| - delegate_->Initialize(base::Bind(&GCMNetworkChannel::OnConnectionStateChanged,
|
| - weak_factory_.GetWeakPtr()));
|
| + delegate_->Initialize(
|
| + base::Bind(&GCMNetworkChannel::OnConnectionStateChanged,
|
| + weak_factory_.GetWeakPtr()),
|
| + base::Bind(&GCMNetworkChannel::OnStoreReset, weak_factory_.GetWeakPtr()));
|
| Register();
|
| }
|
|
|
| @@ -194,7 +196,7 @@ void GCMNetworkChannel::OnGetTokenComplete(
|
| const GoogleServiceAuthError& error,
|
| const std::string& token) {
|
| DCHECK(CalledOnValidThread());
|
| - if (cached_message_.empty()) {
|
| + if (cached_message_.empty() || registration_id_.empty()) {
|
| // Nothing to do.
|
| return;
|
| }
|
| @@ -302,6 +304,11 @@ void GCMNetworkChannel::OnConnectionStateChanged(bool online) {
|
| UpdateGcmChannelState(online);
|
| }
|
|
|
| +void GCMNetworkChannel::OnStoreReset() {
|
| + // TODO(crbug.com/661660): Tell server the registration ID is no longer valid.
|
| + registration_id_.clear();
|
| +}
|
| +
|
| void GCMNetworkChannel::OnNetworkChanged(
|
| net::NetworkChangeNotifier::ConnectionType connection_type) {
|
| // Network connection is restored. Let's notify cacheinvalidations so it has
|
|
|