| Index: content/renderer/push_messaging_dispatcher.cc
|
| diff --git a/content/renderer/push_messaging_dispatcher.cc b/content/renderer/push_messaging_dispatcher.cc
|
| index d21f6f5c6ca0efc181f94f77e8bb5a180d2dda97..96ad014ad9c44cf465f62556192c673e4c2c8090 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;
|
| @@ -66,11 +71,23 @@ void PushMessagingDispatcher::DoRegister(
|
| Send(new PushMessagingHostMsg_Register(
|
| routing_id(),
|
| callbacks_id,
|
| - sender_id,
|
| + manifest.gcm_sender_id.is_null()
|
| + ? std::string()
|
| + : base::UTF16ToUTF8(manifest.gcm_sender_id.string()),
|
| blink::WebUserGestureIndicator::isProcessingUserGesture(),
|
| 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,
|
| @@ -100,4 +117,20 @@ 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);
|
| + callback->onSuccess(&status);
|
| + permission_check_callbacks_.Remove(callback_id);
|
| +}
|
| +
|
| +void PushMessagingDispatcher::OnPermissionStatusFailure(int32 callback_id) {
|
| + blink::WebPushPermissionCallback* callback =
|
| + permission_check_callbacks_.Lookup(callback_id);
|
| + callback->onError();
|
| + permission_check_callbacks_.Remove(callback_id);
|
| +}
|
| +
|
| } // namespace content
|
|
|