| 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 |