OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/renderer/push_messaging_dispatcher.h" | 5 #include "content/renderer/push_messaging_dispatcher.h" |
6 | 6 |
7 #include "base/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
8 #include "content/child/service_worker/web_service_worker_provider_impl.h" | 8 #include "content/child/service_worker/web_service_worker_provider_impl.h" |
9 #include "content/common/push_messaging_messages.h" | 9 #include "content/common/push_messaging_messages.h" |
10 #include "content/renderer/manifest/manifest_manager.h" | 10 #include "content/renderer/manifest/manifest_manager.h" |
(...skipping 23 matching lines...) Expand all Loading... |
34 IPC_MESSAGE_HANDLER(PushMessagingMsg_RegisterError, OnRegisterError) | 34 IPC_MESSAGE_HANDLER(PushMessagingMsg_RegisterError, OnRegisterError) |
35 IPC_MESSAGE_UNHANDLED(handled = false) | 35 IPC_MESSAGE_UNHANDLED(handled = false) |
36 IPC_END_MESSAGE_MAP() | 36 IPC_END_MESSAGE_MAP() |
37 return handled; | 37 return handled; |
38 } | 38 } |
39 | 39 |
40 void PushMessagingDispatcher::registerPushMessaging( | 40 void PushMessagingDispatcher::registerPushMessaging( |
41 const WebString& sender_id, | 41 const WebString& sender_id, |
42 blink::WebPushRegistrationCallbacks* callbacks, | 42 blink::WebPushRegistrationCallbacks* callbacks, |
43 blink::WebServiceWorkerProvider* service_worker_provider) { | 43 blink::WebServiceWorkerProvider* service_worker_provider) { |
| 44 registerPushMessaging(callbacks, service_worker_provider); |
| 45 } |
| 46 |
| 47 void PushMessagingDispatcher::registerPushMessaging( |
| 48 blink::WebPushRegistrationCallbacks* callbacks, |
| 49 blink::WebServiceWorkerProvider* service_worker_provider) { |
44 RenderFrameImpl::FromRoutingID(routing_id())->manifest_manager()->GetManifest( | 50 RenderFrameImpl::FromRoutingID(routing_id())->manifest_manager()->GetManifest( |
45 base::Bind(&PushMessagingDispatcher::DoRegister, | 51 base::Bind(&PushMessagingDispatcher::DoRegister, |
46 base::Unretained(this), | 52 base::Unretained(this), |
47 sender_id.utf8(), | |
48 callbacks, | 53 callbacks, |
49 service_worker_provider)); | 54 service_worker_provider)); |
50 } | 55 } |
51 | 56 |
52 void PushMessagingDispatcher::DoRegister( | 57 void PushMessagingDispatcher::DoRegister( |
53 const std::string& sender_id, | |
54 blink::WebPushRegistrationCallbacks* callbacks, | 58 blink::WebPushRegistrationCallbacks* callbacks, |
55 blink::WebServiceWorkerProvider* service_worker_provider, | 59 blink::WebServiceWorkerProvider* service_worker_provider, |
56 const Manifest& manifest) { | 60 const Manifest& manifest) { |
57 DCHECK(callbacks); | 61 DCHECK(callbacks); |
58 int callbacks_id = registration_callbacks_.Add(callbacks); | 62 int callbacks_id = registration_callbacks_.Add(callbacks); |
59 int service_worker_provider_id = static_cast<WebServiceWorkerProviderImpl*>( | 63 int service_worker_provider_id = static_cast<WebServiceWorkerProviderImpl*>( |
60 service_worker_provider)->provider_id(); | 64 service_worker_provider)->provider_id(); |
61 Send(new PushMessagingHostMsg_Register( | 65 Send(new PushMessagingHostMsg_Register( |
62 routing_id(), | 66 routing_id(), |
63 callbacks_id, | 67 callbacks_id, |
64 manifest.gcm_sender_id.is_null() | 68 manifest.gcm_sender_id.is_null() |
65 ? sender_id | 69 ? std::string() |
66 : base::UTF16ToUTF8(manifest.gcm_sender_id.string()), | 70 : base::UTF16ToUTF8(manifest.gcm_sender_id.string()), |
67 blink::WebUserGestureIndicator::isProcessingUserGesture(), | 71 blink::WebUserGestureIndicator::isProcessingUserGesture(), |
68 service_worker_provider_id)); | 72 service_worker_provider_id)); |
69 } | 73 } |
70 | 74 |
71 void PushMessagingDispatcher::OnRegisterSuccess( | 75 void PushMessagingDispatcher::OnRegisterSuccess( |
72 int32 callbacks_id, | 76 int32 callbacks_id, |
73 const GURL& endpoint, | 77 const GURL& endpoint, |
74 const std::string& registration_id) { | 78 const std::string& registration_id) { |
75 blink::WebPushRegistrationCallbacks* callbacks = | 79 blink::WebPushRegistrationCallbacks* callbacks = |
(...skipping 15 matching lines...) Expand all Loading... |
91 CHECK(callbacks); | 95 CHECK(callbacks); |
92 | 96 |
93 scoped_ptr<blink::WebPushError> error(new blink::WebPushError( | 97 scoped_ptr<blink::WebPushError> error(new blink::WebPushError( |
94 blink::WebPushError::ErrorTypeAbort, | 98 blink::WebPushError::ErrorTypeAbort, |
95 WebString::fromUTF8(PushRegistrationStatusToString(status)))); | 99 WebString::fromUTF8(PushRegistrationStatusToString(status)))); |
96 callbacks->onError(error.release()); | 100 callbacks->onError(error.release()); |
97 registration_callbacks_.Remove(callbacks_id); | 101 registration_callbacks_.Remove(callbacks_id); |
98 } | 102 } |
99 | 103 |
100 } // namespace content | 104 } // namespace content |
OLD | NEW |