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/service_worker/service_worker_script_context.h" | 5 #include "content/renderer/service_worker/service_worker_script_context.h" |
6 | 6 |
7 #include "base/debug/trace_event.h" | 7 #include "base/debug/trace_event.h" |
8 #include "base/logging.h" | 8 #include "base/logging.h" |
9 #include "base/metrics/histogram.h" | 9 #include "base/metrics/histogram.h" |
10 #include "content/child/thread_safe_sender.h" | 10 #include "content/child/thread_safe_sender.h" |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 | 70 |
71 void ServiceWorkerScriptContext::OnMessageReceived( | 71 void ServiceWorkerScriptContext::OnMessageReceived( |
72 const IPC::Message& message) { | 72 const IPC::Message& message) { |
73 bool handled = true; | 73 bool handled = true; |
74 IPC_BEGIN_MESSAGE_MAP(ServiceWorkerScriptContext, message) | 74 IPC_BEGIN_MESSAGE_MAP(ServiceWorkerScriptContext, message) |
75 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ActivateEvent, OnActivateEvent) | 75 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ActivateEvent, OnActivateEvent) |
76 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_FetchEvent, OnFetchEvent) | 76 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_FetchEvent, OnFetchEvent) |
77 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_InstallEvent, OnInstallEvent) | 77 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_InstallEvent, OnInstallEvent) |
78 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_SyncEvent, OnSyncEvent) | 78 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_SyncEvent, OnSyncEvent) |
79 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_PushEvent, OnPushEvent) | 79 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_PushEvent, OnPushEvent) |
| 80 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_GeofencingEvent, OnGeofencingEvent) |
80 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_MessageToWorker, OnPostMessage) | 81 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_MessageToWorker, OnPostMessage) |
81 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetClientDocuments, | 82 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetClientDocuments, |
82 OnDidGetClientDocuments) | 83 OnDidGetClientDocuments) |
83 IPC_MESSAGE_UNHANDLED(handled = false) | 84 IPC_MESSAGE_UNHANDLED(handled = false) |
84 IPC_END_MESSAGE_MAP() | 85 IPC_END_MESSAGE_MAP() |
85 | 86 |
86 // TODO(gavinp): Would it be preferable to put an AddListener() method to | 87 // TODO(gavinp): Would it be preferable to put an AddListener() method to |
87 // EmbeddedWorkerContextClient? | 88 // EmbeddedWorkerContextClient? |
88 if (!handled) | 89 if (!handled) |
89 handled = cache_storage_dispatcher_->OnMessageReceived(message); | 90 handled = cache_storage_dispatcher_->OnMessageReceived(message); |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
218 | 219 |
219 void ServiceWorkerScriptContext::OnPushEvent(int request_id, | 220 void ServiceWorkerScriptContext::OnPushEvent(int request_id, |
220 const std::string& data) { | 221 const std::string& data) { |
221 TRACE_EVENT0("ServiceWorker", | 222 TRACE_EVENT0("ServiceWorker", |
222 "ServiceWorkerScriptContext::OnPushEvent"); | 223 "ServiceWorkerScriptContext::OnPushEvent"); |
223 proxy_->dispatchPushEvent(request_id, blink::WebString::fromUTF8(data)); | 224 proxy_->dispatchPushEvent(request_id, blink::WebString::fromUTF8(data)); |
224 Send(new ServiceWorkerHostMsg_PushEventFinished( | 225 Send(new ServiceWorkerHostMsg_PushEventFinished( |
225 GetRoutingID(), request_id)); | 226 GetRoutingID(), request_id)); |
226 } | 227 } |
227 | 228 |
| 229 void ServiceWorkerScriptContext::OnGeofencingEvent( |
| 230 int request_id, |
| 231 blink::WebGeofencingEventType event_type, |
| 232 const std::string& region_id, |
| 233 const blink::WebCircularGeofencingRegion& region) { |
| 234 TRACE_EVENT0("ServiceWorker", |
| 235 "ServiceWorkerScriptContext::OnGeofencingEvent"); |
| 236 proxy_->dispatchGeofencingEvent( |
| 237 request_id, event_type, blink::WebString::fromUTF8(region_id), region); |
| 238 Send(new ServiceWorkerHostMsg_GeofencingEventFinished(GetRoutingID(), |
| 239 request_id)); |
| 240 } |
| 241 |
228 void ServiceWorkerScriptContext::OnPostMessage( | 242 void ServiceWorkerScriptContext::OnPostMessage( |
229 const base::string16& message, | 243 const base::string16& message, |
230 const std::vector<int>& sent_message_port_ids, | 244 const std::vector<int>& sent_message_port_ids, |
231 const std::vector<int>& new_routing_ids) { | 245 const std::vector<int>& new_routing_ids) { |
232 TRACE_EVENT0("ServiceWorker", | 246 TRACE_EVENT0("ServiceWorker", |
233 "ServiceWorkerScriptContext::OnPostEvent"); | 247 "ServiceWorkerScriptContext::OnPostEvent"); |
234 std::vector<WebMessagePortChannelImpl*> ports; | 248 std::vector<WebMessagePortChannelImpl*> ports; |
235 if (!sent_message_port_ids.empty()) { | 249 if (!sent_message_port_ids.empty()) { |
236 base::MessageLoopProxy* loop_proxy = embedded_context_->main_thread_proxy(); | 250 base::MessageLoopProxy* loop_proxy = embedded_context_->main_thread_proxy(); |
237 ports.resize(sent_message_port_ids.size()); | 251 ports.resize(sent_message_port_ids.size()); |
(...skipping 23 matching lines...) Expand all Loading... |
261 return; | 275 return; |
262 } | 276 } |
263 scoped_ptr<blink::WebServiceWorkerClientsInfo> info( | 277 scoped_ptr<blink::WebServiceWorkerClientsInfo> info( |
264 new blink::WebServiceWorkerClientsInfo); | 278 new blink::WebServiceWorkerClientsInfo); |
265 info->clientIDs = client_ids; | 279 info->clientIDs = client_ids; |
266 callbacks->onSuccess(info.release()); | 280 callbacks->onSuccess(info.release()); |
267 pending_clients_callbacks_.Remove(request_id); | 281 pending_clients_callbacks_.Remove(request_id); |
268 } | 282 } |
269 | 283 |
270 } // namespace content | 284 } // namespace content |
OLD | NEW |