Index: chrome/browser/services/gcm/push_messaging_service_impl.cc |
diff --git a/chrome/browser/services/gcm/push_messaging_service_impl.cc b/chrome/browser/services/gcm/push_messaging_service_impl.cc |
index fb7d8cded3ea6e13b0da733e8eb19932ada6e7b0..b0283e64bf044644972f28b42ae87fcedea6cdc3 100644 |
--- a/chrome/browser/services/gcm/push_messaging_service_impl.cc |
+++ b/chrome/browser/services/gcm/push_messaging_service_impl.cc |
@@ -262,7 +262,8 @@ void PushMessagingServiceImpl::DeliverMessageCallback( |
case content::PUSH_DELIVERY_STATUS_UNKNOWN_APP_ID: |
case content::PUSH_DELIVERY_STATUS_PERMISSION_DENIED: |
case content::PUSH_DELIVERY_STATUS_NO_SERVICE_WORKER: |
- Unregister(app_id_guid, true /*retry_on_failure*/, UnregisterCallback()); |
+ Unregister(app_id_guid, message.sender_id, true /* retry_on_failure */, |
+ UnregisterCallback()); |
break; |
} |
} |
@@ -617,6 +618,7 @@ void PushMessagingServiceImpl::DidRequestPermission( |
void PushMessagingServiceImpl::Unregister( |
const GURL& requesting_origin, |
int64 service_worker_registration_id, |
+ const std::string& sender_id, |
bool retry_on_failure, |
const content::PushMessagingService::UnregisterCallback& callback) { |
DCHECK(gcm_profile_service_->driver()); |
@@ -629,11 +631,13 @@ void PushMessagingServiceImpl::Unregister( |
return; |
} |
- Unregister(application_id.app_id_guid(), retry_on_failure, callback); |
+ Unregister(application_id.app_id_guid(), sender_id, retry_on_failure, |
+ callback); |
} |
void PushMessagingServiceImpl::Unregister( |
const std::string& app_id_guid, |
+ const std::string& sender_id, |
bool retry_on_failure, |
const content::PushMessagingService::UnregisterCallback& callback) { |
DCHECK(gcm_profile_service_->driver()); |
@@ -649,11 +653,16 @@ void PushMessagingServiceImpl::Unregister( |
application_id.DeleteFromDisk(profile_); |
} |
- gcm_profile_service_->driver()->Unregister( |
- app_id_guid, |
+ const auto& unregister_callback = |
base::Bind(&PushMessagingServiceImpl::DidUnregister, |
weak_factory_.GetWeakPtr(), |
- app_id_guid, retry_on_failure, callback)); |
+ app_id_guid, retry_on_failure, callback); |
+#if defined(OS_ANDROID) |
Peter Beverloo
2015/02/17 21:51:05
nit: leave a comment about why this difference is
johnme
2015/02/17 22:05:10
Done.
|
+ gcm_profile_service_->driver()->UnregisterWithSenderId(app_id_guid, sender_id, |
+ unregister_callback); |
+#else |
+ gcm_profile_service_->driver()->Unregister(app_id_guid, unregister_callback); |
+#endif |
} |
void PushMessagingServiceImpl::DidUnregister( |