| 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 "base/lazy_instance.h" | 7 #include "base/lazy_instance.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 "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
| (...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 249 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ActivateEvent, OnActivateEvent) | 249 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ActivateEvent, OnActivateEvent) |
| 250 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_FetchEvent, OnFetchEvent) | 250 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_FetchEvent, OnFetchEvent) |
| 251 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_InstallEvent, OnInstallEvent) | 251 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_InstallEvent, OnInstallEvent) |
| 252 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_NotificationClickEvent, | 252 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_NotificationClickEvent, |
| 253 OnNotificationClickEvent) | 253 OnNotificationClickEvent) |
| 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) | 256 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_MessageToWorker, OnPostMessage) |
| 257 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_CrossOriginMessageToWorker, | 257 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_CrossOriginMessageToWorker, |
| 258 OnCrossOriginMessageToWorker) | 258 OnCrossOriginMessageToWorker) |
| 259 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetClient, OnDidGetClient) |
| 259 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetClients, OnDidGetClients) | 260 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetClients, OnDidGetClients) |
| 260 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_OpenWindowResponse, | 261 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_OpenWindowResponse, |
| 261 OnOpenWindowResponse) | 262 OnOpenWindowResponse) |
| 262 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_OpenWindowError, | 263 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_OpenWindowError, |
| 263 OnOpenWindowError) | 264 OnOpenWindowError) |
| 264 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_FocusClientResponse, | 265 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_FocusClientResponse, |
| 265 OnFocusClientResponse) | 266 OnFocusClientResponse) |
| 266 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_NavigateClientResponse, | 267 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_NavigateClientResponse, |
| 267 OnNavigateClientResponse) | 268 OnNavigateClientResponse) |
| 268 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_NavigateClientError, | 269 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_NavigateClientError, |
| (...skipping 11 matching lines...) Expand all Loading... |
| 280 mojo::InterfaceRequest<mojo::ServiceProvider> services, | 281 mojo::InterfaceRequest<mojo::ServiceProvider> services, |
| 281 mojo::ServiceProviderPtr exposed_services) { | 282 mojo::ServiceProviderPtr exposed_services) { |
| 282 context_->service_registry.Bind(services.Pass()); | 283 context_->service_registry.Bind(services.Pass()); |
| 283 context_->service_registry.BindRemoteServiceProvider(exposed_services.Pass()); | 284 context_->service_registry.BindRemoteServiceProvider(exposed_services.Pass()); |
| 284 } | 285 } |
| 285 | 286 |
| 286 blink::WebURL ServiceWorkerContextClient::scope() const { | 287 blink::WebURL ServiceWorkerContextClient::scope() const { |
| 287 return service_worker_scope_; | 288 return service_worker_scope_; |
| 288 } | 289 } |
| 289 | 290 |
| 291 void ServiceWorkerContextClient::getClient( |
| 292 const blink::WebString& id, |
| 293 blink::WebServiceWorkerClientCallbacks* callbacks) { |
| 294 DCHECK(callbacks); |
| 295 int request_id = context_->client_callbacks.Add(callbacks); |
| 296 Send(new ServiceWorkerHostMsg_GetClient( |
| 297 GetRoutingID(), request_id, base::UTF16ToUTF8(base::StringPiece16(id)))); |
| 298 } |
| 299 |
| 290 void ServiceWorkerContextClient::getClients( | 300 void ServiceWorkerContextClient::getClients( |
| 291 const blink::WebServiceWorkerClientQueryOptions& weboptions, | 301 const blink::WebServiceWorkerClientQueryOptions& weboptions, |
| 292 blink::WebServiceWorkerClientsCallbacks* callbacks) { | 302 blink::WebServiceWorkerClientsCallbacks* callbacks) { |
| 293 DCHECK(callbacks); | 303 DCHECK(callbacks); |
| 294 int request_id = context_->clients_callbacks.Add(callbacks); | 304 int request_id = context_->clients_callbacks.Add(callbacks); |
| 295 ServiceWorkerClientQueryOptions options; | 305 ServiceWorkerClientQueryOptions options; |
| 296 options.client_type = weboptions.clientType; | 306 options.client_type = weboptions.clientType; |
| 297 options.include_uncontrolled = weboptions.includeUncontrolled; | 307 options.include_uncontrolled = weboptions.includeUncontrolled; |
| 298 Send(new ServiceWorkerHostMsg_GetClients( | 308 Send(new ServiceWorkerHostMsg_GetClients( |
| 299 GetRoutingID(), request_id, options)); | 309 GetRoutingID(), request_id, options)); |
| (...skipping 506 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 806 sent_message_ports, new_routing_ids, | 816 sent_message_ports, new_routing_ids, |
| 807 main_thread_task_runner_); | 817 main_thread_task_runner_); |
| 808 | 818 |
| 809 blink::WebCrossOriginServiceWorkerClient web_client; | 819 blink::WebCrossOriginServiceWorkerClient web_client; |
| 810 web_client.origin = client.origin; | 820 web_client.origin = client.origin; |
| 811 web_client.targetURL = client.target_url; | 821 web_client.targetURL = client.target_url; |
| 812 web_client.clientID = client.message_port_id; | 822 web_client.clientID = client.message_port_id; |
| 813 proxy_->dispatchCrossOriginMessageEvent(web_client, message, ports); | 823 proxy_->dispatchCrossOriginMessageEvent(web_client, message, ports); |
| 814 } | 824 } |
| 815 | 825 |
| 826 void ServiceWorkerContextClient::OnDidGetClient( |
| 827 int request_id, |
| 828 const ServiceWorkerClientInfo& client) { |
| 829 TRACE_EVENT0("ServiceWorker", "ServiceWorkerContextClient::OnDidGetClient"); |
| 830 blink::WebServiceWorkerClientCallbacks* callbacks = |
| 831 context_->client_callbacks.Lookup(request_id); |
| 832 if (!callbacks) { |
| 833 NOTREACHED() << "Got stray response: " << request_id; |
| 834 return; |
| 835 } |
| 836 scoped_ptr<blink::WebServiceWorkerClientInfo> info; |
| 837 info.reset(new blink::WebServiceWorkerClientInfo( |
| 838 ToWebServiceWorkerClientInfo(client))); |
| 839 callbacks->onSuccess(adoptWebPtr(info.release())); |
| 840 context_->client_callbacks.Remove(request_id); |
| 841 } |
| 842 |
| 816 void ServiceWorkerContextClient::OnDidGetClients( | 843 void ServiceWorkerContextClient::OnDidGetClients( |
| 817 int request_id, const std::vector<ServiceWorkerClientInfo>& clients) { | 844 int request_id, const std::vector<ServiceWorkerClientInfo>& clients) { |
| 818 TRACE_EVENT0("ServiceWorker", | 845 TRACE_EVENT0("ServiceWorker", |
| 819 "ServiceWorkerContextClient::OnDidGetClients"); | 846 "ServiceWorkerContextClient::OnDidGetClients"); |
| 820 blink::WebServiceWorkerClientsCallbacks* callbacks = | 847 blink::WebServiceWorkerClientsCallbacks* callbacks = |
| 821 context_->clients_callbacks.Lookup(request_id); | 848 context_->clients_callbacks.Lookup(request_id); |
| 822 if (!callbacks) { | 849 if (!callbacks) { |
| 823 NOTREACHED() << "Got stray response: " << request_id; | 850 NOTREACHED() << "Got stray response: " << request_id; |
| 824 return; | 851 return; |
| 825 } | 852 } |
| (...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 981 } | 1008 } |
| 982 | 1009 |
| 983 base::WeakPtr<ServiceWorkerContextClient> | 1010 base::WeakPtr<ServiceWorkerContextClient> |
| 984 ServiceWorkerContextClient::GetWeakPtr() { | 1011 ServiceWorkerContextClient::GetWeakPtr() { |
| 985 DCHECK(worker_task_runner_->RunsTasksOnCurrentThread()); | 1012 DCHECK(worker_task_runner_->RunsTasksOnCurrentThread()); |
| 986 DCHECK(context_); | 1013 DCHECK(context_); |
| 987 return context_->weak_factory.GetWeakPtr(); | 1014 return context_->weak_factory.GetWeakPtr(); |
| 988 } | 1015 } |
| 989 | 1016 |
| 990 } // namespace content | 1017 } // namespace content |
| OLD | NEW |