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

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: Use HTTP origins instead of HTTPS origins for layout tests 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 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698