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 cb3d87a590863bd9adb9244fb92af7b1262e5e9e..8c7a0110bc0884117e57ddd9c4450b766ed977ec 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; |
} |
} |
@@ -581,6 +581,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()); |
@@ -588,16 +589,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)); |
} |