Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(974)

Unified Diff: content/child/push_messaging/push_provider.cc

Issue 793403002: Implement WebPushProvider.unregister() in Chromium. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@mvan_2
Patch Set: review comments Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/child/push_messaging/push_provider.cc
diff --git a/content/child/push_messaging/push_provider.cc b/content/child/push_messaging/push_provider.cc
index 0075650634acd47807f74ea2b277aefb8234ec91..86acb58670856df2eb9099257c39b8e1509ccf9d 100644
--- a/content/child/push_messaging/push_provider.cc
+++ b/content/child/push_messaging/push_provider.cc
@@ -13,7 +13,6 @@
#include "content/child/thread_safe_sender.h"
#include "content/child/worker_task_runner.h"
#include "content/common/push_messaging_messages.h"
-#include "third_party/WebKit/public/platform/WebPushError.h"
#include "third_party/WebKit/public/platform/WebPushRegistration.h"
#include "third_party/WebKit/public/platform/WebString.h"
@@ -91,6 +90,21 @@ void PushProvider::getPermissionStatus(
request_id, service_worker_registration_id));
}
+void PushProvider::unregister(
johnme 2014/12/16 16:31:59 Please move this below registerPushMessaging. Reme
mlamouri (slow - plz ping) 2014/12/16 18:26:16 Coding style says that we have to follow declarati
+ blink::WebServiceWorkerRegistration* service_worker_registration,
+ blink::WebPushUnregisterCallbacks* callbacks) {
+ DCHECK(service_worker_registration);
+ DCHECK(callbacks);
+
+ int request_id = push_dispatcher_->GenerateRequestId(CurrentWorkerId());
+ unregister_callbacks_.AddWithID(callbacks, request_id);
+
+ int64 service_worker_registration_id =
+ GetServiceWorkerRegistrationId(service_worker_registration);
+ thread_safe_sender_->Send(new PushMessagingHostMsg_Unregister(
+ request_id, service_worker_registration_id));
+}
+
bool PushProvider::OnMessageReceived(const IPC::Message& message) {
bool handled = true;
IPC_BEGIN_MESSAGE_MAP(PushProvider, message)
@@ -102,6 +116,10 @@ bool PushProvider::OnMessageReceived(const IPC::Message& message) {
OnGetPermissionStatusSuccess);
IPC_MESSAGE_HANDLER(PushMessagingMsg_GetPermissionStatusError,
OnGetPermissionStatusError);
+ IPC_MESSAGE_HANDLER(PushMessagingMsg_UnregisterSuccess,
johnme 2014/12/16 16:31:59 Please move this above GetPermissionStatusSuccess.
mlamouri (slow - plz ping) 2014/12/16 18:26:16 Done.
+ OnUnregisterSuccess);
+ IPC_MESSAGE_HANDLER(PushMessagingMsg_UnregisterError,
+ OnUnregisterError);
IPC_MESSAGE_UNHANDLED(handled = false)
IPC_END_MESSAGE_MAP()
@@ -165,4 +183,31 @@ void PushProvider::OnGetPermissionStatusError(int request_id) {
permission_status_callbacks_.Remove(request_id);
}
+void PushProvider::OnUnregisterSuccess(int request_id, bool did_unregister) {
+ blink::WebPushUnregisterCallbacks* callbacks =
+ unregister_callbacks_.Lookup(request_id);
+ if (!callbacks)
+ return;
+
+ callbacks->onSuccess(&did_unregister);
+
+ unregister_callbacks_.Remove(request_id);
+}
+
+void PushProvider::OnUnregisterError(
+ int request_id,
+ blink::WebPushError::ErrorType error_type,
+ const std::string& error_message) {
+ blink::WebPushUnregisterCallbacks* callbacks =
+ unregister_callbacks_.Lookup(request_id);
+ if (!callbacks)
+ return;
+
+ scoped_ptr<blink::WebPushError> error(new blink::WebPushError(
+ error_type, blink::WebString::fromUTF8(error_message)));
+ callbacks->onError(error.release());
+
+ unregister_callbacks_.Remove(request_id);
+}
+
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698