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 <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/lazy_instance.h" | 9 #include "base/lazy_instance.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
254 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ActivateEvent, OnActivateEvent) | 254 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ActivateEvent, OnActivateEvent) |
255 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_FetchEvent, OnFetchEvent) | 255 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_FetchEvent, OnFetchEvent) |
256 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_InstallEvent, OnInstallEvent) | 256 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_InstallEvent, OnInstallEvent) |
257 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_NotificationClickEvent, | 257 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_NotificationClickEvent, |
258 OnNotificationClickEvent) | 258 OnNotificationClickEvent) |
259 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_PushEvent, OnPushEvent) | 259 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_PushEvent, OnPushEvent) |
260 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_GeofencingEvent, OnGeofencingEvent) | 260 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_GeofencingEvent, OnGeofencingEvent) |
261 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_MessageToWorker, OnPostMessage) | 261 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_MessageToWorker, OnPostMessage) |
262 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_CrossOriginMessageToWorker, | 262 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_CrossOriginMessageToWorker, |
263 OnCrossOriginMessageToWorker) | 263 OnCrossOriginMessageToWorker) |
| 264 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetClient, OnDidGetClient) |
264 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetClients, OnDidGetClients) | 265 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetClients, OnDidGetClients) |
265 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_OpenWindowResponse, | 266 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_OpenWindowResponse, |
266 OnOpenWindowResponse) | 267 OnOpenWindowResponse) |
267 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_OpenWindowError, | 268 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_OpenWindowError, |
268 OnOpenWindowError) | 269 OnOpenWindowError) |
269 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_FocusClientResponse, | 270 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_FocusClientResponse, |
270 OnFocusClientResponse) | 271 OnFocusClientResponse) |
271 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_NavigateClientResponse, | 272 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_NavigateClientResponse, |
272 OnNavigateClientResponse) | 273 OnNavigateClientResponse) |
273 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_NavigateClientError, | 274 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_NavigateClientError, |
(...skipping 12 matching lines...) Expand all Loading... |
286 mojo::ServiceProviderPtr exposed_services) { | 287 mojo::ServiceProviderPtr exposed_services) { |
287 context_->service_registry.Bind(std::move(services)); | 288 context_->service_registry.Bind(std::move(services)); |
288 context_->service_registry.BindRemoteServiceProvider( | 289 context_->service_registry.BindRemoteServiceProvider( |
289 std::move(exposed_services)); | 290 std::move(exposed_services)); |
290 } | 291 } |
291 | 292 |
292 blink::WebURL ServiceWorkerContextClient::scope() const { | 293 blink::WebURL ServiceWorkerContextClient::scope() const { |
293 return service_worker_scope_; | 294 return service_worker_scope_; |
294 } | 295 } |
295 | 296 |
| 297 void ServiceWorkerContextClient::getClient( |
| 298 const blink::WebString& id, |
| 299 blink::WebServiceWorkerClientCallbacks* callbacks) { |
| 300 DCHECK(callbacks); |
| 301 int request_id = context_->client_callbacks.Add(callbacks); |
| 302 Send(new ServiceWorkerHostMsg_GetClient( |
| 303 GetRoutingID(), request_id, base::UTF16ToUTF8(base::StringPiece16(id)))); |
| 304 } |
| 305 |
296 void ServiceWorkerContextClient::getClients( | 306 void ServiceWorkerContextClient::getClients( |
297 const blink::WebServiceWorkerClientQueryOptions& weboptions, | 307 const blink::WebServiceWorkerClientQueryOptions& weboptions, |
298 blink::WebServiceWorkerClientsCallbacks* callbacks) { | 308 blink::WebServiceWorkerClientsCallbacks* callbacks) { |
299 DCHECK(callbacks); | 309 DCHECK(callbacks); |
300 int request_id = context_->clients_callbacks.Add(callbacks); | 310 int request_id = context_->clients_callbacks.Add(callbacks); |
301 ServiceWorkerClientQueryOptions options; | 311 ServiceWorkerClientQueryOptions options; |
302 options.client_type = weboptions.clientType; | 312 options.client_type = weboptions.clientType; |
303 options.include_uncontrolled = weboptions.includeUncontrolled; | 313 options.include_uncontrolled = weboptions.includeUncontrolled; |
304 Send(new ServiceWorkerHostMsg_GetClients( | 314 Send(new ServiceWorkerHostMsg_GetClients( |
305 GetRoutingID(), request_id, options)); | 315 GetRoutingID(), request_id, options)); |
(...skipping 510 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
816 sent_message_ports, new_routing_ids, | 826 sent_message_ports, new_routing_ids, |
817 main_thread_task_runner_); | 827 main_thread_task_runner_); |
818 | 828 |
819 blink::WebCrossOriginServiceWorkerClient web_client; | 829 blink::WebCrossOriginServiceWorkerClient web_client; |
820 web_client.origin = client.origin; | 830 web_client.origin = client.origin; |
821 web_client.targetURL = client.target_url; | 831 web_client.targetURL = client.target_url; |
822 web_client.clientID = client.message_port_id; | 832 web_client.clientID = client.message_port_id; |
823 proxy_->dispatchCrossOriginMessageEvent(web_client, message, ports); | 833 proxy_->dispatchCrossOriginMessageEvent(web_client, message, ports); |
824 } | 834 } |
825 | 835 |
| 836 void ServiceWorkerContextClient::OnDidGetClient( |
| 837 int request_id, |
| 838 const ServiceWorkerClientInfo& client) { |
| 839 TRACE_EVENT0("ServiceWorker", "ServiceWorkerContextClient::OnDidGetClient"); |
| 840 blink::WebServiceWorkerClientCallbacks* callbacks = |
| 841 context_->client_callbacks.Lookup(request_id); |
| 842 if (!callbacks) { |
| 843 NOTREACHED() << "Got stray response: " << request_id; |
| 844 return; |
| 845 } |
| 846 callbacks->onSuccess(adoptWebPtr(new blink::WebServiceWorkerClientInfo( |
| 847 ToWebServiceWorkerClientInfo(client)))); |
| 848 context_->client_callbacks.Remove(request_id); |
| 849 } |
| 850 |
826 void ServiceWorkerContextClient::OnDidGetClients( | 851 void ServiceWorkerContextClient::OnDidGetClients( |
827 int request_id, const std::vector<ServiceWorkerClientInfo>& clients) { | 852 int request_id, const std::vector<ServiceWorkerClientInfo>& clients) { |
828 TRACE_EVENT0("ServiceWorker", | 853 TRACE_EVENT0("ServiceWorker", |
829 "ServiceWorkerContextClient::OnDidGetClients"); | 854 "ServiceWorkerContextClient::OnDidGetClients"); |
830 blink::WebServiceWorkerClientsCallbacks* callbacks = | 855 blink::WebServiceWorkerClientsCallbacks* callbacks = |
831 context_->clients_callbacks.Lookup(request_id); | 856 context_->clients_callbacks.Lookup(request_id); |
832 if (!callbacks) { | 857 if (!callbacks) { |
833 NOTREACHED() << "Got stray response: " << request_id; | 858 NOTREACHED() << "Got stray response: " << request_id; |
834 return; | 859 return; |
835 } | 860 } |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
991 } | 1016 } |
992 | 1017 |
993 base::WeakPtr<ServiceWorkerContextClient> | 1018 base::WeakPtr<ServiceWorkerContextClient> |
994 ServiceWorkerContextClient::GetWeakPtr() { | 1019 ServiceWorkerContextClient::GetWeakPtr() { |
995 DCHECK(worker_task_runner_->RunsTasksOnCurrentThread()); | 1020 DCHECK(worker_task_runner_->RunsTasksOnCurrentThread()); |
996 DCHECK(context_); | 1021 DCHECK(context_); |
997 return context_->weak_factory.GetWeakPtr(); | 1022 return context_->weak_factory.GetWeakPtr(); |
998 } | 1023 } |
999 | 1024 |
1000 } // namespace content | 1025 } // namespace content |
OLD | NEW |