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 scoped_ptr<blink::WebServiceWorkerClientInfo> info; | |
847 info.reset(new blink::WebServiceWorkerClientInfo( | |
848 ToWebServiceWorkerClientInfo(client))); | |
nhiroki
2016/02/03 09:39:59
Can you declare and initialize |info| at once?
jungkees
2016/02/03 14:15:07
Done.
| |
849 callbacks->onSuccess(adoptWebPtr(info.release())); | |
850 context_->client_callbacks.Remove(request_id); | |
851 } | |
852 | |
826 void ServiceWorkerContextClient::OnDidGetClients( | 853 void ServiceWorkerContextClient::OnDidGetClients( |
827 int request_id, const std::vector<ServiceWorkerClientInfo>& clients) { | 854 int request_id, const std::vector<ServiceWorkerClientInfo>& clients) { |
828 TRACE_EVENT0("ServiceWorker", | 855 TRACE_EVENT0("ServiceWorker", |
829 "ServiceWorkerContextClient::OnDidGetClients"); | 856 "ServiceWorkerContextClient::OnDidGetClients"); |
830 blink::WebServiceWorkerClientsCallbacks* callbacks = | 857 blink::WebServiceWorkerClientsCallbacks* callbacks = |
831 context_->clients_callbacks.Lookup(request_id); | 858 context_->clients_callbacks.Lookup(request_id); |
832 if (!callbacks) { | 859 if (!callbacks) { |
833 NOTREACHED() << "Got stray response: " << request_id; | 860 NOTREACHED() << "Got stray response: " << request_id; |
834 return; | 861 return; |
835 } | 862 } |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
991 } | 1018 } |
992 | 1019 |
993 base::WeakPtr<ServiceWorkerContextClient> | 1020 base::WeakPtr<ServiceWorkerContextClient> |
994 ServiceWorkerContextClient::GetWeakPtr() { | 1021 ServiceWorkerContextClient::GetWeakPtr() { |
995 DCHECK(worker_task_runner_->RunsTasksOnCurrentThread()); | 1022 DCHECK(worker_task_runner_->RunsTasksOnCurrentThread()); |
996 DCHECK(context_); | 1023 DCHECK(context_); |
997 return context_->weak_factory.GetWeakPtr(); | 1024 return context_->weak_factory.GetWeakPtr(); |
998 } | 1025 } |
999 | 1026 |
1000 } // namespace content | 1027 } // namespace content |
OLD | NEW |