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 e8d111b8b44e77a8d4e09857a9b96f6732ecea55..7e7afac7fe32375252bb26a0911183636222d6d7 100644 |
--- a/chrome/browser/services/gcm/push_messaging_service_impl.cc |
+++ b/chrome/browser/services/gcm/push_messaging_service_impl.cc |
@@ -198,7 +198,7 @@ void PushMessagingServiceImpl::OnMessage( |
// |origin| may have lost push permission. Unregister and drop this message. |
if (!HasPermission(application_id.origin)) { |
- Unregister(application_id, UnregisterCallback()); |
+ Unregister(application_id, message.sender_id, UnregisterCallback()); |
return; |
} |
@@ -248,7 +248,7 @@ void PushMessagingServiceImpl::DeliverMessageCallback( |
case content::PUSH_DELIVERY_STATUS_SERVICE_WORKER_ERROR: |
break; |
case content::PUSH_DELIVERY_STATUS_NO_SERVICE_WORKER: |
- Unregister(application_id, UnregisterCallback()); |
+ Unregister(application_id, message.sender_id, UnregisterCallback()); |
break; |
} |
} |
@@ -580,6 +580,7 @@ void PushMessagingServiceImpl::DidRequestPermission( |
void PushMessagingServiceImpl::Unregister( |
const GURL& requesting_origin, |
int64 service_worker_registration_id, |
+ const std::string& sender_id, |
const content::PushMessagingService::UnregisterCallback& callback) { |
DCHECK(gcm_profile_service_->driver()); |
@@ -587,16 +588,18 @@ void PushMessagingServiceImpl::Unregister( |
requesting_origin, service_worker_registration_id); |
DCHECK(application_id.IsValid()); |
- Unregister(application_id, callback); |
+ Unregister(application_id, sender_id, callback); |
} |
void PushMessagingServiceImpl::Unregister( |
const PushMessagingApplicationId& application_id, |
+ const std::string& sender_id, |
const content::PushMessagingService::UnregisterCallback& callback) { |
DCHECK(gcm_profile_service_->driver()); |
gcm_profile_service_->driver()->Unregister( |
application_id.ToString(), |
+ std::vector<std::string>(1, sender_id), |
base::Bind(&PushMessagingServiceImpl::DidUnregister, |
weak_factory_.GetWeakPtr(), callback)); |
} |