Index: content/browser/push_messaging/push_messaging_message_filter.cc |
diff --git a/content/browser/push_messaging/push_messaging_message_filter.cc b/content/browser/push_messaging/push_messaging_message_filter.cc |
index eec059e69b2c6eab5b3ee1ba7b514d8b53ce63ec..fd768eb7ff6aca39eade34157eab148b28d50fd8 100644 |
--- a/content/browser/push_messaging/push_messaging_message_filter.cc |
+++ b/content/browser/push_messaging/push_messaging_message_filter.cc |
@@ -549,66 +549,31 @@ void PushMessagingMessageFilter::OnUnsubscribe( |
} |
service_worker_context_->GetRegistrationUserData( |
- service_worker_registration_id, |
- {kPushRegistrationIdServiceWorkerKey, kPushSenderIdServiceWorkerKey}, |
- base::Bind(&PushMessagingMessageFilter::UnsubscribeHavingGottenIds, |
+ service_worker_registration_id, {kPushSenderIdServiceWorkerKey}, |
+ base::Bind(&PushMessagingMessageFilter::UnsubscribeHavingGottenSenderId, |
weak_factory_io_to_io_.GetWeakPtr(), request_id, |
service_worker_registration_id, |
service_worker_registration->pattern().GetOrigin())); |
} |
-void PushMessagingMessageFilter::UnsubscribeHavingGottenIds( |
+void PushMessagingMessageFilter::UnsubscribeHavingGottenSenderId( |
int request_id, |
int64_t service_worker_registration_id, |
const GURL& requesting_origin, |
- const std::vector<std::string>& push_subscription_and_sender_ids, |
+ const std::vector<std::string>& sender_ids, |
ServiceWorkerStatusCode service_worker_status) { |
DCHECK_CURRENTLY_ON(BrowserThread::IO); |
- // Note that the subscription ID (push_subscription_and_sender_ids[0]) is |
- // unused - we just needed to check if the database contained one. |
- |
- switch (service_worker_status) { |
- case SERVICE_WORKER_OK: |
- DCHECK_EQ(2u, push_subscription_and_sender_ids.size()); |
- BrowserThread::PostTask( |
- BrowserThread::UI, FROM_HERE, |
- base::Bind(&Core::UnregisterFromService, |
- base::Unretained(ui_core_.get()), request_id, |
- service_worker_registration_id, requesting_origin, |
- push_subscription_and_sender_ids[1])); |
- break; |
- case SERVICE_WORKER_ERROR_NOT_FOUND: |
- // We did not find a registration, stop here and notify the renderer that |
- // it was a success even though we did not unregister. |
- DidUnregister(request_id, |
- PUSH_UNREGISTRATION_STATUS_SUCCESS_WAS_NOT_REGISTERED); |
- break; |
- case SERVICE_WORKER_ERROR_FAILED: |
- DidUnregister(request_id, PUSH_UNREGISTRATION_STATUS_STORAGE_ERROR); |
- break; |
- case SERVICE_WORKER_ERROR_ABORT: |
- case SERVICE_WORKER_ERROR_START_WORKER_FAILED: |
- case SERVICE_WORKER_ERROR_PROCESS_NOT_FOUND: |
- case SERVICE_WORKER_ERROR_EXISTS: |
- case SERVICE_WORKER_ERROR_INSTALL_WORKER_FAILED: |
- case SERVICE_WORKER_ERROR_ACTIVATE_WORKER_FAILED: |
- case SERVICE_WORKER_ERROR_IPC_FAILED: |
- case SERVICE_WORKER_ERROR_NETWORK: |
- case SERVICE_WORKER_ERROR_SECURITY: |
- case SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED: |
- case SERVICE_WORKER_ERROR_STATE: |
- case SERVICE_WORKER_ERROR_TIMEOUT: |
- case SERVICE_WORKER_ERROR_SCRIPT_EVALUATE_FAILED: |
- case SERVICE_WORKER_ERROR_DISK_CACHE: |
- case SERVICE_WORKER_ERROR_REDUNDANT: |
- case SERVICE_WORKER_ERROR_DISALLOWED: |
- case SERVICE_WORKER_ERROR_MAX_VALUE: |
- NOTREACHED() << "Got unexpected error code: " << service_worker_status |
- << " " << ServiceWorkerStatusToString(service_worker_status); |
- DidUnregister(request_id, PUSH_UNREGISTRATION_STATUS_STORAGE_ERROR); |
- break; |
+ std::string sender_id; |
+ if (service_worker_status == SERVICE_WORKER_OK) { |
+ DCHECK_EQ(1u, sender_ids.size()); |
+ sender_id = sender_ids[0]; |
} |
+ BrowserThread::PostTask( |
+ BrowserThread::UI, FROM_HERE, |
+ base::Bind(&Core::UnregisterFromService, base::Unretained(ui_core_.get()), |
+ request_id, service_worker_registration_id, requesting_origin, |
+ sender_id)); |
} |
void PushMessagingMessageFilter::Core::UnregisterFromService( |
@@ -643,53 +608,10 @@ void PushMessagingMessageFilter::Core::DidUnregisterFromService( |
PushUnregistrationStatus unregistration_status) { |
DCHECK_CURRENTLY_ON(BrowserThread::UI); |
- switch (unregistration_status) { |
- case PUSH_UNREGISTRATION_STATUS_SUCCESS_UNREGISTERED: |
- case PUSH_UNREGISTRATION_STATUS_SUCCESS_WAS_NOT_REGISTERED: |
- case PUSH_UNREGISTRATION_STATUS_PENDING_NETWORK_ERROR: |
- case PUSH_UNREGISTRATION_STATUS_PENDING_SERVICE_ERROR: |
- BrowserThread::PostTask( |
- BrowserThread::IO, FROM_HERE, |
- base::Bind(&PushMessagingMessageFilter::ClearRegistrationData, |
- io_parent_, request_id, service_worker_registration_id, |
- unregistration_status)); |
- break; |
- case PUSH_UNREGISTRATION_STATUS_NO_SERVICE_WORKER: |
- case PUSH_UNREGISTRATION_STATUS_SERVICE_NOT_AVAILABLE: |
- case PUSH_UNREGISTRATION_STATUS_STORAGE_ERROR: |
- case PUSH_UNREGISTRATION_STATUS_NETWORK_ERROR: |
- NOTREACHED(); |
- break; |
- } |
-} |
- |
-void PushMessagingMessageFilter::ClearRegistrationData( |
- int request_id, |
- int64_t service_worker_registration_id, |
- PushUnregistrationStatus unregistration_status) { |
- DCHECK_CURRENTLY_ON(BrowserThread::IO); |
- |
- service_worker_context_->ClearRegistrationUserData( |
- service_worker_registration_id, {kPushRegistrationIdServiceWorkerKey}, |
- base::Bind(&PushMessagingMessageFilter::DidClearRegistrationData, |
- weak_factory_io_to_io_.GetWeakPtr(), request_id, |
- unregistration_status)); |
-} |
- |
-void PushMessagingMessageFilter::DidClearRegistrationData( |
- int request_id, |
- PushUnregistrationStatus unregistration_status, |
- ServiceWorkerStatusCode service_worker_status) { |
- DCHECK_CURRENTLY_ON(BrowserThread::IO); |
- |
- if (service_worker_status != SERVICE_WORKER_OK && |
- service_worker_status != SERVICE_WORKER_ERROR_NOT_FOUND) { |
- unregistration_status = PUSH_UNREGISTRATION_STATUS_STORAGE_ERROR; |
- DLOG(WARNING) << "Got unexpected error code: " << service_worker_status |
- << " " << ServiceWorkerStatusToString(service_worker_status); |
- } |
- |
- DidUnregister(request_id, unregistration_status); |
+ BrowserThread::PostTask( |
+ BrowserThread::IO, FROM_HERE, |
+ base::Bind(&PushMessagingMessageFilter::DidUnregister, io_parent_, |
+ request_id, unregistration_status)); |
} |
void PushMessagingMessageFilter::DidUnregister( |