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/child/push_messaging/push_provider.h" | 5 #include "content/child/push_messaging/push_provider.h" |
6 | 6 |
7 #include "base/lazy_instance.h" | 7 #include "base/lazy_instance.h" |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "base/stl_util.h" | 9 #include "base/stl_util.h" |
10 #include "base/threading/thread_local.h" | 10 #include "base/threading/thread_local.h" |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
90 DCHECK(service_worker_registration); | 90 DCHECK(service_worker_registration); |
91 DCHECK(callbacks); | 91 DCHECK(callbacks); |
92 int request_id = push_dispatcher_->GenerateRequestId(CurrentWorkerId()); | 92 int request_id = push_dispatcher_->GenerateRequestId(CurrentWorkerId()); |
93 permission_status_callbacks_[request_id] = callbacks; | 93 permission_status_callbacks_[request_id] = callbacks; |
94 int64 service_worker_registration_id = | 94 int64 service_worker_registration_id = |
95 GetServiceWorkerRegistrationId(service_worker_registration); | 95 GetServiceWorkerRegistrationId(service_worker_registration); |
96 thread_safe_sender_->Send(new PushMessagingHostMsg_GetPermissionStatus( | 96 thread_safe_sender_->Send(new PushMessagingHostMsg_GetPermissionStatus( |
97 request_id, service_worker_registration_id)); | 97 request_id, service_worker_registration_id)); |
98 } | 98 } |
99 | 99 |
100 void PushProvider::unregister( | |
101 blink::WebServiceWorkerRegistration* service_worker_registration, | |
102 blink::WebPushUnregisterCallbacks* callback) { | |
Michael van Ouwerkerk
2014/12/12 13:55:41
Please rename callback to callbacks for consistenc
mlamouri (slow - plz ping)
2014/12/15 11:29:36
I prefer not. See below.
| |
103 DCHECK(service_worker_registration); | |
104 DCHECK(callback); | |
105 | |
106 int request_id = push_dispatcher_->GenerateRequestId(CurrentWorkerId()); | |
107 unregister_callbacks_[request_id] = callback; | |
108 | |
109 int64 service_worker_registration_id = | |
110 GetServiceWorkerRegistrationId(service_worker_registration); | |
111 thread_safe_sender_->Send(new PushMessagingHostMsg_Unregister( | |
112 request_id, service_worker_registration_id)); | |
113 } | |
114 | |
100 bool PushProvider::OnMessageReceived(const IPC::Message& message) { | 115 bool PushProvider::OnMessageReceived(const IPC::Message& message) { |
101 bool handled = true; | 116 bool handled = true; |
102 IPC_BEGIN_MESSAGE_MAP(PushProvider, message) | 117 IPC_BEGIN_MESSAGE_MAP(PushProvider, message) |
103 IPC_MESSAGE_HANDLER(PushMessagingMsg_RegisterFromWorkerSuccess, | 118 IPC_MESSAGE_HANDLER(PushMessagingMsg_RegisterFromWorkerSuccess, |
104 OnRegisterFromWorkerSuccess); | 119 OnRegisterFromWorkerSuccess); |
105 IPC_MESSAGE_HANDLER(PushMessagingMsg_RegisterFromWorkerError, | 120 IPC_MESSAGE_HANDLER(PushMessagingMsg_RegisterFromWorkerError, |
106 OnRegisterFromWorkerError); | 121 OnRegisterFromWorkerError); |
107 IPC_MESSAGE_HANDLER(PushMessagingMsg_GetPermissionStatusSuccess, | 122 IPC_MESSAGE_HANDLER(PushMessagingMsg_GetPermissionStatusSuccess, |
108 OnGetPermissionStatusSuccess); | 123 OnGetPermissionStatusSuccess); |
109 IPC_MESSAGE_HANDLER(PushMessagingMsg_GetPermissionStatusError, | 124 IPC_MESSAGE_HANDLER(PushMessagingMsg_GetPermissionStatusError, |
110 OnGetPermissionStatusError); | 125 OnGetPermissionStatusError); |
126 IPC_MESSAGE_HANDLER(PushMessagingMsg_UnregisterResponse, | |
127 OnUnregisterResponse); | |
111 IPC_MESSAGE_UNHANDLED(handled = false) | 128 IPC_MESSAGE_UNHANDLED(handled = false) |
112 IPC_END_MESSAGE_MAP() | 129 IPC_END_MESSAGE_MAP() |
113 | 130 |
114 return handled; | 131 return handled; |
115 } | 132 } |
116 | 133 |
117 void PushProvider::OnRegisterFromWorkerSuccess( | 134 void PushProvider::OnRegisterFromWorkerSuccess( |
118 int request_id, | 135 int request_id, |
119 const GURL& endpoint, | 136 const GURL& endpoint, |
120 const std::string& registration_id) { | 137 const std::string& registration_id) { |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
164 const auto& it = permission_status_callbacks_.find(request_id); | 181 const auto& it = permission_status_callbacks_.find(request_id); |
165 if (it == permission_status_callbacks_.end()) | 182 if (it == permission_status_callbacks_.end()) |
166 return; | 183 return; |
167 | 184 |
168 scoped_ptr<blink::WebPushPermissionStatusCallbacks> callbacks(it->second); | 185 scoped_ptr<blink::WebPushPermissionStatusCallbacks> callbacks(it->second); |
169 permission_status_callbacks_.erase(it); | 186 permission_status_callbacks_.erase(it); |
170 | 187 |
171 callbacks->onError(); | 188 callbacks->onError(); |
172 } | 189 } |
173 | 190 |
191 void PushProvider::OnUnregisterResponse(int request_id, bool response) { | |
192 const auto& it = unregister_callbacks_.find(request_id); | |
193 if (it == unregister_callbacks_.end()) | |
194 return; | |
195 | |
196 scoped_ptr<blink::WebPushUnregisterCallbacks> callback(it->second); | |
Michael van Ouwerkerk
2014/12/12 13:55:41
s/callback/callbacks/
mlamouri (slow - plz ping)
2014/12/15 11:29:37
As much as we need to keep the silly class name be
| |
197 unregister_callbacks_.erase(it); | |
198 | |
199 callback->onSuccess(&response); | |
200 } | |
201 | |
174 } // namespace content | 202 } // namespace content |
OLD | NEW |