Chromium Code Reviews| Index: content/renderer/push_messaging_dispatcher.cc |
| diff --git a/content/renderer/push_messaging_dispatcher.cc b/content/renderer/push_messaging_dispatcher.cc |
| index 7c9d05a662792e30aa9ac008ac1e50b925b100b6..aa428424f2b4644f4c18a6d8cee32fae7be49553 100644 |
| --- a/content/renderer/push_messaging_dispatcher.cc |
| +++ b/content/renderer/push_messaging_dispatcher.cc |
| @@ -32,6 +32,11 @@ bool PushMessagingDispatcher::OnMessageReceived(const IPC::Message& message) { |
| IPC_BEGIN_MESSAGE_MAP(PushMessagingDispatcher, message) |
| IPC_MESSAGE_HANDLER(PushMessagingMsg_RegisterSuccess, OnRegisterSuccess) |
| IPC_MESSAGE_HANDLER(PushMessagingMsg_RegisterError, OnRegisterError) |
| + IPC_MESSAGE_HANDLER(PushMessagingMsg_PermissionStatusResult, |
| + OnPermissionStatus) |
| + IPC_MESSAGE_HANDLER(PushMessagingMsg_PermissionStatusFailure, |
| + OnPermissionStatusFailure) |
| + |
| IPC_MESSAGE_UNHANDLED(handled = false) |
| IPC_END_MESSAGE_MAP() |
| return handled; |
| @@ -65,6 +70,16 @@ void PushMessagingDispatcher::DoRegister( |
| service_worker_provider_id)); |
| } |
| +void PushMessagingDispatcher::getPermissionStatus( |
| + blink::WebPushPermissionCallback* callback, |
| + blink::WebServiceWorkerProvider* service_worker_provider) { |
| + int permission_callback_id = permission_check_callbacks_.Add(callback); |
| + int service_worker_provider_id = static_cast<WebServiceWorkerProviderImpl*>( |
| + service_worker_provider)->provider_id(); |
| + Send(new PushMessagingHostMsg_PermissionStatus( |
| + routing_id(), service_worker_provider_id, permission_callback_id)); |
| +} |
| + |
| void PushMessagingDispatcher::OnRegisterSuccess( |
| int32 callbacks_id, |
| const GURL& endpoint, |
| @@ -94,4 +109,22 @@ void PushMessagingDispatcher::OnRegisterError(int32 callbacks_id, |
| registration_callbacks_.Remove(callbacks_id); |
| } |
| +void PushMessagingDispatcher::OnPermissionStatus( |
| + int32 callback_id, |
| + blink::WebPushPermissionStatus status) { |
| + blink::WebPushPermissionCallback* callback = |
| + permission_check_callbacks_.Lookup(callback_id); |
| + DCHECK(callback); |
|
jam
2014/10/29 20:08:58
here and below, this doesn't do much. in release,
Miguel Garcia
2014/10/30 12:27:15
It's kind of a nice way of saying. Hey I am callba
|
| + callback->onSuccess(&status); |
| + permission_check_callbacks_.Remove(callback_id); |
| +} |
| + |
| +void PushMessagingDispatcher::OnPermissionStatusFailure(int32 callback_id) { |
| + blink::WebPushPermissionCallback* callback = |
| + permission_check_callbacks_.Lookup(callback_id); |
| + DCHECK(callback); |
| + callback->onError(); |
| + permission_check_callbacks_.Remove(callback_id); |
| +} |
| + |
| } // namespace content |