| Index: content/renderer/push_messaging_dispatcher.cc
|
| diff --git a/content/renderer/push_messaging_dispatcher.cc b/content/renderer/push_messaging_dispatcher.cc
|
| index 1de8da99d2d277d4daa1a63a0488f13dbf8a597c..f8db34bba8ab4ab941d5f4dbb2959eee2441eadd 100644
|
| --- a/content/renderer/push_messaging_dispatcher.cc
|
| +++ b/content/renderer/push_messaging_dispatcher.cc
|
| @@ -32,6 +32,9 @@ 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_UNHANDLED(handled = false)
|
| IPC_END_MESSAGE_MAP()
|
| return handled;
|
| @@ -68,6 +71,18 @@ void PushMessagingDispatcher::DoRegister(
|
| service_worker_provider_id));
|
| }
|
|
|
| +void PushMessagingDispatcher::permissionStatus(
|
| + 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,
|
| @@ -97,4 +112,13 @@ void PushMessagingDispatcher::OnRegisterError(int32 callbacks_id,
|
| registration_callbacks_.Remove(callbacks_id);
|
| }
|
|
|
| +void PushMessagingDispatcher::OnPermissionStatus(
|
| + int32 callback_id,
|
| + blink::WebPushPermissionCallback::PushPermissionStatus type) {
|
| + blink::WebPushPermissionCallback* callback =
|
| + permission_check_callbacks_.Lookup(callback_id);
|
| + callback->onSuccess(type);
|
| + permission_check_callbacks_.Remove(callback_id);
|
| +}
|
| +
|
| } // namespace content
|
|
|