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 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
258 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_InstallEvent, OnInstallEvent) | 258 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_InstallEvent, OnInstallEvent) |
259 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_NotificationClickEvent, | 259 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_NotificationClickEvent, |
260 OnNotificationClickEvent) | 260 OnNotificationClickEvent) |
261 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_NotificationCloseEvent, | 261 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_NotificationCloseEvent, |
262 OnNotificationCloseEvent) | 262 OnNotificationCloseEvent) |
263 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_PushEvent, OnPushEvent) | 263 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_PushEvent, OnPushEvent) |
264 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_GeofencingEvent, OnGeofencingEvent) | 264 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_GeofencingEvent, OnGeofencingEvent) |
265 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_MessageToWorker, OnPostMessage) | 265 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_MessageToWorker, OnPostMessage) |
266 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_CrossOriginMessageToWorker, | 266 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_CrossOriginMessageToWorker, |
267 OnCrossOriginMessageToWorker) | 267 OnCrossOriginMessageToWorker) |
| 268 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetClient, OnDidGetClient) |
268 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetClients, OnDidGetClients) | 269 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetClients, OnDidGetClients) |
269 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_OpenWindowResponse, | 270 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_OpenWindowResponse, |
270 OnOpenWindowResponse) | 271 OnOpenWindowResponse) |
271 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_OpenWindowError, | 272 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_OpenWindowError, |
272 OnOpenWindowError) | 273 OnOpenWindowError) |
273 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_FocusClientResponse, | 274 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_FocusClientResponse, |
274 OnFocusClientResponse) | 275 OnFocusClientResponse) |
275 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_NavigateClientResponse, | 276 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_NavigateClientResponse, |
276 OnNavigateClientResponse) | 277 OnNavigateClientResponse) |
277 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_NavigateClientError, | 278 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_NavigateClientError, |
(...skipping 12 matching lines...) Expand all Loading... |
290 mojo::shell::mojom::InterfaceProviderPtr exposed_services) { | 291 mojo::shell::mojom::InterfaceProviderPtr exposed_services) { |
291 context_->service_registry.Bind(std::move(services)); | 292 context_->service_registry.Bind(std::move(services)); |
292 context_->service_registry.BindRemoteServiceProvider( | 293 context_->service_registry.BindRemoteServiceProvider( |
293 std::move(exposed_services)); | 294 std::move(exposed_services)); |
294 } | 295 } |
295 | 296 |
296 blink::WebURL ServiceWorkerContextClient::scope() const { | 297 blink::WebURL ServiceWorkerContextClient::scope() const { |
297 return service_worker_scope_; | 298 return service_worker_scope_; |
298 } | 299 } |
299 | 300 |
| 301 void ServiceWorkerContextClient::getClient( |
| 302 const blink::WebString& id, |
| 303 blink::WebServiceWorkerClientCallbacks* callbacks) { |
| 304 DCHECK(callbacks); |
| 305 int request_id = context_->client_callbacks.Add(callbacks); |
| 306 Send(new ServiceWorkerHostMsg_GetClient( |
| 307 GetRoutingID(), request_id, base::UTF16ToUTF8(base::StringPiece16(id)))); |
| 308 } |
| 309 |
300 void ServiceWorkerContextClient::getClients( | 310 void ServiceWorkerContextClient::getClients( |
301 const blink::WebServiceWorkerClientQueryOptions& weboptions, | 311 const blink::WebServiceWorkerClientQueryOptions& weboptions, |
302 blink::WebServiceWorkerClientsCallbacks* callbacks) { | 312 blink::WebServiceWorkerClientsCallbacks* callbacks) { |
303 DCHECK(callbacks); | 313 DCHECK(callbacks); |
304 int request_id = context_->clients_callbacks.Add(callbacks); | 314 int request_id = context_->clients_callbacks.Add(callbacks); |
305 ServiceWorkerClientQueryOptions options; | 315 ServiceWorkerClientQueryOptions options; |
306 options.client_type = weboptions.clientType; | 316 options.client_type = weboptions.clientType; |
307 options.include_uncontrolled = weboptions.includeUncontrolled; | 317 options.include_uncontrolled = weboptions.includeUncontrolled; |
308 Send(new ServiceWorkerHostMsg_GetClients( | 318 Send(new ServiceWorkerHostMsg_GetClients( |
309 GetRoutingID(), request_id, options)); | 319 GetRoutingID(), request_id, options)); |
(...skipping 552 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
862 sent_message_ports, new_routing_ids, | 872 sent_message_ports, new_routing_ids, |
863 main_thread_task_runner_); | 873 main_thread_task_runner_); |
864 | 874 |
865 blink::WebCrossOriginServiceWorkerClient web_client; | 875 blink::WebCrossOriginServiceWorkerClient web_client; |
866 web_client.origin = client.origin; | 876 web_client.origin = client.origin; |
867 web_client.targetURL = client.target_url; | 877 web_client.targetURL = client.target_url; |
868 web_client.clientID = client.message_port_id; | 878 web_client.clientID = client.message_port_id; |
869 proxy_->dispatchCrossOriginMessageEvent(web_client, message, ports); | 879 proxy_->dispatchCrossOriginMessageEvent(web_client, message, ports); |
870 } | 880 } |
871 | 881 |
| 882 void ServiceWorkerContextClient::OnDidGetClient( |
| 883 int request_id, |
| 884 const ServiceWorkerClientInfo& client) { |
| 885 TRACE_EVENT0("ServiceWorker", "ServiceWorkerContextClient::OnDidGetClient"); |
| 886 blink::WebServiceWorkerClientCallbacks* callbacks = |
| 887 context_->client_callbacks.Lookup(request_id); |
| 888 if (!callbacks) { |
| 889 NOTREACHED() << "Got stray response: " << request_id; |
| 890 return; |
| 891 } |
| 892 callbacks->onSuccess(adoptWebPtr(new blink::WebServiceWorkerClientInfo( |
| 893 ToWebServiceWorkerClientInfo(client)))); |
| 894 context_->client_callbacks.Remove(request_id); |
| 895 } |
| 896 |
872 void ServiceWorkerContextClient::OnDidGetClients( | 897 void ServiceWorkerContextClient::OnDidGetClients( |
873 int request_id, const std::vector<ServiceWorkerClientInfo>& clients) { | 898 int request_id, const std::vector<ServiceWorkerClientInfo>& clients) { |
874 TRACE_EVENT0("ServiceWorker", | 899 TRACE_EVENT0("ServiceWorker", |
875 "ServiceWorkerContextClient::OnDidGetClients"); | 900 "ServiceWorkerContextClient::OnDidGetClients"); |
876 blink::WebServiceWorkerClientsCallbacks* callbacks = | 901 blink::WebServiceWorkerClientsCallbacks* callbacks = |
877 context_->clients_callbacks.Lookup(request_id); | 902 context_->clients_callbacks.Lookup(request_id); |
878 if (!callbacks) { | 903 if (!callbacks) { |
879 NOTREACHED() << "Got stray response: " << request_id; | 904 NOTREACHED() << "Got stray response: " << request_id; |
880 return; | 905 return; |
881 } | 906 } |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1037 } | 1062 } |
1038 | 1063 |
1039 base::WeakPtr<ServiceWorkerContextClient> | 1064 base::WeakPtr<ServiceWorkerContextClient> |
1040 ServiceWorkerContextClient::GetWeakPtr() { | 1065 ServiceWorkerContextClient::GetWeakPtr() { |
1041 DCHECK(worker_task_runner_->RunsTasksOnCurrentThread()); | 1066 DCHECK(worker_task_runner_->RunsTasksOnCurrentThread()); |
1042 DCHECK(context_); | 1067 DCHECK(context_); |
1043 return context_->weak_factory.GetWeakPtr(); | 1068 return context_->weak_factory.GetWeakPtr(); |
1044 } | 1069 } |
1045 | 1070 |
1046 } // namespace content | 1071 } // namespace content |
OLD | NEW |