| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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_context_client.h" | 5 #include "content/renderer/service_worker/service_worker_context_client.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/lazy_instance.h" | 10 #include "base/lazy_instance.h" |
| (...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 246 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ExtendableMessageEvent, | 246 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ExtendableMessageEvent, |
| 247 OnExtendableMessageEvent) | 247 OnExtendableMessageEvent) |
| 248 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_FetchEvent, OnFetchEvent) | 248 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_FetchEvent, OnFetchEvent) |
| 249 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_InstallEvent, OnInstallEvent) | 249 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_InstallEvent, OnInstallEvent) |
| 250 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_NotificationClickEvent, | 250 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_NotificationClickEvent, |
| 251 OnNotificationClickEvent) | 251 OnNotificationClickEvent) |
| 252 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_NotificationCloseEvent, | 252 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_NotificationCloseEvent, |
| 253 OnNotificationCloseEvent) | 253 OnNotificationCloseEvent) |
| 254 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_PushEvent, OnPushEvent) | 254 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_PushEvent, OnPushEvent) |
| 255 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_GeofencingEvent, OnGeofencingEvent) | 255 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_GeofencingEvent, OnGeofencingEvent) |
| 256 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_MessageToWorker, OnPostMessage) | |
| 257 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetClient, OnDidGetClient) | 256 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetClient, OnDidGetClient) |
| 258 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetClients, OnDidGetClients) | 257 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetClients, OnDidGetClients) |
| 259 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_OpenWindowResponse, | 258 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_OpenWindowResponse, |
| 260 OnOpenWindowResponse) | 259 OnOpenWindowResponse) |
| 261 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_OpenWindowError, | 260 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_OpenWindowError, |
| 262 OnOpenWindowError) | 261 OnOpenWindowError) |
| 263 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_FocusClientResponse, | 262 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_FocusClientResponse, |
| 264 OnFocusClientResponse) | 263 OnFocusClientResponse) |
| 265 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_NavigateClientResponse, | 264 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_NavigateClientResponse, |
| 266 OnNavigateClientResponse) | 265 OnNavigateClientResponse) |
| (...skipping 563 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 830 const std::string& region_id, | 829 const std::string& region_id, |
| 831 const blink::WebCircularGeofencingRegion& region) { | 830 const blink::WebCircularGeofencingRegion& region) { |
| 832 TRACE_EVENT0("ServiceWorker", | 831 TRACE_EVENT0("ServiceWorker", |
| 833 "ServiceWorkerContextClient::OnGeofencingEvent"); | 832 "ServiceWorkerContextClient::OnGeofencingEvent"); |
| 834 proxy_->dispatchGeofencingEvent( | 833 proxy_->dispatchGeofencingEvent( |
| 835 request_id, event_type, blink::WebString::fromUTF8(region_id), region); | 834 request_id, event_type, blink::WebString::fromUTF8(region_id), region); |
| 836 Send(new ServiceWorkerHostMsg_GeofencingEventFinished( | 835 Send(new ServiceWorkerHostMsg_GeofencingEventFinished( |
| 837 GetRoutingID(), request_id, blink::WebServiceWorkerEventResultCompleted)); | 836 GetRoutingID(), request_id, blink::WebServiceWorkerEventResultCompleted)); |
| 838 } | 837 } |
| 839 | 838 |
| 840 void ServiceWorkerContextClient::OnPostMessage( | |
| 841 const base::string16& message, | |
| 842 const std::vector<TransferredMessagePort>& sent_message_ports, | |
| 843 const std::vector<int>& new_routing_ids) { | |
| 844 TRACE_EVENT0("ServiceWorker", | |
| 845 "ServiceWorkerContextClient::OnPostEvent"); | |
| 846 blink::WebMessagePortChannelArray ports = | |
| 847 WebMessagePortChannelImpl::CreatePorts( | |
| 848 sent_message_ports, new_routing_ids, | |
| 849 main_thread_task_runner_); | |
| 850 | |
| 851 // dispatchMessageEvent is expected to execute onmessage function | |
| 852 // synchronously. | |
| 853 base::TimeTicks before = base::TimeTicks::Now(); | |
| 854 proxy_->dispatchMessageEvent(message, ports); | |
| 855 UMA_HISTOGRAM_MEDIUM_TIMES( | |
| 856 "ServiceWorker.MessageEvent.Time", | |
| 857 base::TimeTicks::Now() - before); | |
| 858 } | |
| 859 | |
| 860 void ServiceWorkerContextClient::OnDidGetClient( | 839 void ServiceWorkerContextClient::OnDidGetClient( |
| 861 int request_id, | 840 int request_id, |
| 862 const ServiceWorkerClientInfo& client) { | 841 const ServiceWorkerClientInfo& client) { |
| 863 TRACE_EVENT0("ServiceWorker", "ServiceWorkerContextClient::OnDidGetClient"); | 842 TRACE_EVENT0("ServiceWorker", "ServiceWorkerContextClient::OnDidGetClient"); |
| 864 blink::WebServiceWorkerClientCallbacks* callbacks = | 843 blink::WebServiceWorkerClientCallbacks* callbacks = |
| 865 context_->client_callbacks.Lookup(request_id); | 844 context_->client_callbacks.Lookup(request_id); |
| 866 if (!callbacks) { | 845 if (!callbacks) { |
| 867 NOTREACHED() << "Got stray response: " << request_id; | 846 NOTREACHED() << "Got stray response: " << request_id; |
| 868 return; | 847 return; |
| 869 } | 848 } |
| (...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1045 } | 1024 } |
| 1046 | 1025 |
| 1047 base::WeakPtr<ServiceWorkerContextClient> | 1026 base::WeakPtr<ServiceWorkerContextClient> |
| 1048 ServiceWorkerContextClient::GetWeakPtr() { | 1027 ServiceWorkerContextClient::GetWeakPtr() { |
| 1049 DCHECK(worker_task_runner_->RunsTasksOnCurrentThread()); | 1028 DCHECK(worker_task_runner_->RunsTasksOnCurrentThread()); |
| 1050 DCHECK(context_); | 1029 DCHECK(context_); |
| 1051 return context_->weak_factory.GetWeakPtr(); | 1030 return context_->weak_factory.GetWeakPtr(); |
| 1052 } | 1031 } |
| 1053 | 1032 |
| 1054 } // namespace content | 1033 } // namespace content |
| OLD | NEW |