Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(190)

Side by Side Diff: content/renderer/service_worker/service_worker_context_client.cc

Issue 1439333002: Service Worker: Add Clients.get(id) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase; address comments Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698