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

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

Issue 2746783002: [ServiceWorker] Mojofy InstallEvent of Service Worker (Closed)
Patch Set: Fix the test failure Created 3 years, 7 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 <map> 7 #include <map>
8 #include <memory> 8 #include <memory>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after
266 using SimpleEventCallback = 266 using SimpleEventCallback =
267 base::OnceCallback<void(ServiceWorkerStatusCode, base::Time)>; 267 base::OnceCallback<void(ServiceWorkerStatusCode, base::Time)>;
268 using ClientsCallbacksMap = 268 using ClientsCallbacksMap =
269 IDMap<std::unique_ptr<blink::WebServiceWorkerClientsCallbacks>>; 269 IDMap<std::unique_ptr<blink::WebServiceWorkerClientsCallbacks>>;
270 using ClaimClientsCallbacksMap = 270 using ClaimClientsCallbacksMap =
271 IDMap<std::unique_ptr<blink::WebServiceWorkerClientsClaimCallbacks>>; 271 IDMap<std::unique_ptr<blink::WebServiceWorkerClientsClaimCallbacks>>;
272 using ClientCallbacksMap = 272 using ClientCallbacksMap =
273 IDMap<std::unique_ptr<blink::WebServiceWorkerClientCallbacks>>; 273 IDMap<std::unique_ptr<blink::WebServiceWorkerClientCallbacks>>;
274 using SkipWaitingCallbacksMap = 274 using SkipWaitingCallbacksMap =
275 IDMap<std::unique_ptr<blink::WebServiceWorkerSkipWaitingCallbacks>>; 275 IDMap<std::unique_ptr<blink::WebServiceWorkerSkipWaitingCallbacks>>;
276 using InstallEventCallbacksMap =
277 IDMap<std::unique_ptr<DispatchInstallEventCallback>>;
276 using ActivateEventCallbacksMap = 278 using ActivateEventCallbacksMap =
277 IDMap<std::unique_ptr<DispatchActivateEventCallback>>; 279 IDMap<std::unique_ptr<DispatchActivateEventCallback>>;
278 using BackgroundFetchAbortEventCallbacksMap = 280 using BackgroundFetchAbortEventCallbacksMap =
279 IDMap<std::unique_ptr<DispatchBackgroundFetchAbortEventCallback>>; 281 IDMap<std::unique_ptr<DispatchBackgroundFetchAbortEventCallback>>;
280 using BackgroundFetchClickEventCallbacksMap = 282 using BackgroundFetchClickEventCallbacksMap =
281 IDMap<std::unique_ptr<DispatchBackgroundFetchClickEventCallback>>; 283 IDMap<std::unique_ptr<DispatchBackgroundFetchClickEventCallback>>;
282 using BackgroundFetchFailEventCallbacksMap = 284 using BackgroundFetchFailEventCallbacksMap =
283 IDMap<std::unique_ptr<DispatchBackgroundFetchFailEventCallback>>; 285 IDMap<std::unique_ptr<DispatchBackgroundFetchFailEventCallback>>;
284 using BackgroundFetchedEventCallbacksMap = 286 using BackgroundFetchedEventCallbacksMap =
285 IDMap<std::unique_ptr<DispatchBackgroundFetchedEventCallback>>; 287 IDMap<std::unique_ptr<DispatchBackgroundFetchedEventCallback>>;
286 using SyncEventCallbacksMap = IDMap<std::unique_ptr<SyncCallback>>; 288 using SyncEventCallbacksMap = IDMap<std::unique_ptr<SyncCallback>>;
287 using NotificationClickEventCallbacksMap = 289 using NotificationClickEventCallbacksMap =
288 IDMap<std::unique_ptr<DispatchNotificationClickEventCallback>>; 290 IDMap<std::unique_ptr<DispatchNotificationClickEventCallback>>;
289 using NotificationCloseEventCallbacksMap = 291 using NotificationCloseEventCallbacksMap =
290 IDMap<std::unique_ptr<DispatchNotificationCloseEventCallback>>; 292 IDMap<std::unique_ptr<DispatchNotificationCloseEventCallback>>;
291 using PushEventCallbacksMap = 293 using PushEventCallbacksMap =
292 IDMap<std::unique_ptr<DispatchPushEventCallback>>; 294 IDMap<std::unique_ptr<DispatchPushEventCallback>>;
293 using ExtendableMessageEventCallbacksMap = 295 using ExtendableMessageEventCallbacksMap =
294 IDMap<std::unique_ptr<DispatchExtendableMessageEventCallback>>; 296 IDMap<std::unique_ptr<DispatchExtendableMessageEventCallback>>;
295 using NavigationPreloadRequestsMap = IDMap< 297 using NavigationPreloadRequestsMap = IDMap<
296 std::unique_ptr<ServiceWorkerContextClient::NavigationPreloadRequest>>; 298 std::unique_ptr<ServiceWorkerContextClient::NavigationPreloadRequest>>;
299 using InstallEventMethodsMap =
300 std::map<int, mojom::ServiceWorkerInstallEventMethodsAssociatedPtr>;
297 301
298 explicit WorkerContextData(ServiceWorkerContextClient* owner) 302 explicit WorkerContextData(ServiceWorkerContextClient* owner)
299 : event_dispatcher_binding(owner), 303 : event_dispatcher_binding(owner),
300 weak_factory(owner), 304 weak_factory(owner),
301 proxy_weak_factory(owner->proxy_) {} 305 proxy_weak_factory(owner->proxy_) {}
302 306
303 ~WorkerContextData() { 307 ~WorkerContextData() {
304 DCHECK(thread_checker.CalledOnValidThread()); 308 DCHECK(thread_checker.CalledOnValidThread());
305 } 309 }
306 310
307 mojo::Binding<mojom::ServiceWorkerEventDispatcher> event_dispatcher_binding; 311 mojo::Binding<mojom::ServiceWorkerEventDispatcher> event_dispatcher_binding;
308 312
309 // Pending callbacks for GetClientDocuments(). 313 // Pending callbacks for GetClientDocuments().
310 ClientsCallbacksMap clients_callbacks; 314 ClientsCallbacksMap clients_callbacks;
311 315
312 // Pending callbacks for OpenWindow() and FocusClient(). 316 // Pending callbacks for OpenWindow() and FocusClient().
313 ClientCallbacksMap client_callbacks; 317 ClientCallbacksMap client_callbacks;
314 318
315 // Pending callbacks for SkipWaiting(). 319 // Pending callbacks for SkipWaiting().
316 SkipWaitingCallbacksMap skip_waiting_callbacks; 320 SkipWaitingCallbacksMap skip_waiting_callbacks;
317 321
318 // Pending callbacks for ClaimClients(). 322 // Pending callbacks for ClaimClients().
319 ClaimClientsCallbacksMap claim_clients_callbacks; 323 ClaimClientsCallbacksMap claim_clients_callbacks;
320 324
325 // Pending callbacks for Install Events.
326 InstallEventCallbacksMap install_event_callbacks;
327
321 // Pending callbacks for Activate Events. 328 // Pending callbacks for Activate Events.
322 ActivateEventCallbacksMap activate_event_callbacks; 329 ActivateEventCallbacksMap activate_event_callbacks;
323 330
324 // Pending callbacks for Background Fetch Abort Events. 331 // Pending callbacks for Background Fetch Abort Events.
325 BackgroundFetchAbortEventCallbacksMap background_fetch_abort_event_callbacks; 332 BackgroundFetchAbortEventCallbacksMap background_fetch_abort_event_callbacks;
326 333
327 // Pending callbacks for Background Fetch Click Events. 334 // Pending callbacks for Background Fetch Click Events.
328 BackgroundFetchClickEventCallbacksMap background_fetch_click_event_callbacks; 335 BackgroundFetchClickEventCallbacksMap background_fetch_click_event_callbacks;
329 336
330 // Pending callbacks for Background Fetch Fail Events. 337 // Pending callbacks for Background Fetch Fail Events.
(...skipping 30 matching lines...) Expand all
361 std::map<int /* fetch_event_id */, 368 std::map<int /* fetch_event_id */,
362 mojom::ServiceWorkerFetchResponseCallbackPtr> 369 mojom::ServiceWorkerFetchResponseCallbackPtr>
363 fetch_response_callbacks; 370 fetch_response_callbacks;
364 371
365 // Pending callbacks for Extendable Message Events. 372 // Pending callbacks for Extendable Message Events.
366 ExtendableMessageEventCallbacksMap message_event_callbacks; 373 ExtendableMessageEventCallbacksMap message_event_callbacks;
367 374
368 // Pending navigation preload requests. 375 // Pending navigation preload requests.
369 NavigationPreloadRequestsMap preload_requests; 376 NavigationPreloadRequestsMap preload_requests;
370 377
378 // Maps every install event id with its corresponding
379 // mojom::ServiceWorkerInstallEventMethodsAssociatedPt.
380 InstallEventMethodsMap install_methods_map;
381
371 base::ThreadChecker thread_checker; 382 base::ThreadChecker thread_checker;
372 base::WeakPtrFactory<ServiceWorkerContextClient> weak_factory; 383 base::WeakPtrFactory<ServiceWorkerContextClient> weak_factory;
373 base::WeakPtrFactory<blink::WebServiceWorkerContextProxy> proxy_weak_factory; 384 base::WeakPtrFactory<blink::WebServiceWorkerContextProxy> proxy_weak_factory;
374 }; 385 };
375 386
376 class ServiceWorkerContextClient::NavigationPreloadRequest final 387 class ServiceWorkerContextClient::NavigationPreloadRequest final
377 : public mojom::URLLoaderClient { 388 : public mojom::URLLoaderClient {
378 public: 389 public:
379 NavigationPreloadRequest(int fetch_event_id, 390 NavigationPreloadRequest(int fetch_event_id,
380 const GURL& url, 391 const GURL& url,
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
556 567
557 ServiceWorkerContextClient::~ServiceWorkerContextClient() {} 568 ServiceWorkerContextClient::~ServiceWorkerContextClient() {}
558 569
559 void ServiceWorkerContextClient::OnMessageReceived( 570 void ServiceWorkerContextClient::OnMessageReceived(
560 int thread_id, 571 int thread_id,
561 int embedded_worker_id, 572 int embedded_worker_id,
562 const IPC::Message& message) { 573 const IPC::Message& message) {
563 CHECK_EQ(embedded_worker_id_, embedded_worker_id); 574 CHECK_EQ(embedded_worker_id_, embedded_worker_id);
564 bool handled = true; 575 bool handled = true;
565 IPC_BEGIN_MESSAGE_MAP(ServiceWorkerContextClient, message) 576 IPC_BEGIN_MESSAGE_MAP(ServiceWorkerContextClient, message)
566 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_InstallEvent, OnInstallEvent)
567 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetClient, OnDidGetClient) 577 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetClient, OnDidGetClient)
568 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetClients, OnDidGetClients) 578 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetClients, OnDidGetClients)
569 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_OpenWindowResponse, 579 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_OpenWindowResponse,
570 OnOpenWindowResponse) 580 OnOpenWindowResponse)
571 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_OpenWindowError, 581 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_OpenWindowError,
572 OnOpenWindowError) 582 OnOpenWindowError)
573 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_FocusClientResponse, 583 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_FocusClientResponse,
574 OnFocusClientResponse) 584 OnFocusClientResponse)
575 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_NavigateClientResponse, 585 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_NavigateClientResponse,
576 OnNavigateClientResponse) 586 OnNavigateClientResponse)
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
718 context, service_worker_version_id_, script_url_); 728 context, service_worker_version_id_, script_url_);
719 } 729 }
720 730
721 void ServiceWorkerContextClient::WillDestroyWorkerContext( 731 void ServiceWorkerContextClient::WillDestroyWorkerContext(
722 v8::Local<v8::Context> context) { 732 v8::Local<v8::Context> context) {
723 // At this point WillStopCurrentWorkerThread is already called, so 733 // At this point WillStopCurrentWorkerThread is already called, so
724 // worker_task_runner_->RunsTasksOnCurrentThread() returns false 734 // worker_task_runner_->RunsTasksOnCurrentThread() returns false
725 // (while we're still on the worker thread). 735 // (while we're still on the worker thread).
726 proxy_ = NULL; 736 proxy_ = NULL;
727 737
728 // Aborts all the pending events callbacks. 738 // Aborts the all pending install event callbacks which has three
horo 2017/04/27 09:22:21 Change AbortPendingEventCallbacks in line 248 to :
xiaofengzhang 2017/04/28 07:14:24 Done. Great! Thanks a lot!
739 // parameters so that here can't use AbortPendingEventCallbacks.
740 for (WorkerContextData::InstallEventCallbacksMap::iterator it(
741 &context_->install_event_callbacks);
742 !it.IsAtEnd(); it.Advance()) {
743 std::move(*it.GetCurrentValue())
744 .Run(SERVICE_WORKER_ERROR_ABORT, false /* has_fetch_handler */,
745 base::Time::Now());
746 }
747 // Aborts all other pending events callbacks.
729 AbortPendingEventCallbacks(context_->activate_event_callbacks); 748 AbortPendingEventCallbacks(context_->activate_event_callbacks);
730 AbortPendingEventCallbacks(context_->background_fetch_abort_event_callbacks); 749 AbortPendingEventCallbacks(context_->background_fetch_abort_event_callbacks);
731 AbortPendingEventCallbacks(context_->background_fetch_click_event_callbacks); 750 AbortPendingEventCallbacks(context_->background_fetch_click_event_callbacks);
732 AbortPendingEventCallbacks(context_->background_fetch_fail_event_callbacks); 751 AbortPendingEventCallbacks(context_->background_fetch_fail_event_callbacks);
733 AbortPendingEventCallbacks(context_->background_fetched_event_callbacks); 752 AbortPendingEventCallbacks(context_->background_fetched_event_callbacks);
734 AbortPendingEventCallbacks(context_->sync_event_callbacks); 753 AbortPendingEventCallbacks(context_->sync_event_callbacks);
735 AbortPendingEventCallbacks(context_->notification_click_event_callbacks); 754 AbortPendingEventCallbacks(context_->notification_click_event_callbacks);
736 AbortPendingEventCallbacks(context_->notification_close_event_callbacks); 755 AbortPendingEventCallbacks(context_->notification_close_event_callbacks);
737 AbortPendingEventCallbacks(context_->push_event_callbacks); 756 AbortPendingEventCallbacks(context_->push_event_callbacks);
738 AbortPendingEventCallbacks(context_->fetch_event_callbacks); 757 AbortPendingEventCallbacks(context_->fetch_event_callbacks);
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
891 DispatchExtendableMessageEventCallback* callback = 910 DispatchExtendableMessageEventCallback* callback =
892 context_->message_event_callbacks.Lookup(request_id); 911 context_->message_event_callbacks.Lookup(request_id);
893 DCHECK(callback); 912 DCHECK(callback);
894 DCHECK(*callback); 913 DCHECK(*callback);
895 std::move(*callback).Run(EventResultToStatus(result), 914 std::move(*callback).Run(EventResultToStatus(result),
896 base::Time::FromDoubleT(event_dispatch_time)); 915 base::Time::FromDoubleT(event_dispatch_time));
897 context_->message_event_callbacks.Remove(request_id); 916 context_->message_event_callbacks.Remove(request_id);
898 } 917 }
899 918
900 void ServiceWorkerContextClient::DidHandleInstallEvent( 919 void ServiceWorkerContextClient::DidHandleInstallEvent(
901 int request_id, 920 int event_id,
902 blink::WebServiceWorkerEventResult result, 921 blink::WebServiceWorkerEventResult result,
903 double event_dispatch_time) { 922 double event_dispatch_time) {
904 Send(new ServiceWorkerHostMsg_InstallEventFinished( 923 DispatchInstallEventCallback* callback =
905 GetRoutingID(), request_id, result, proxy_->HasFetchEventHandler(), 924 context_->install_event_callbacks.Lookup(event_id);
906 base::Time::FromDoubleT(event_dispatch_time))); 925 DCHECK(callback);
926 DCHECK(*callback);
927 std::move(*callback).Run(EventResultToStatus(result),
928 proxy_->HasFetchEventHandler(),
929 base::Time::FromDoubleT(event_dispatch_time));
930 context_->install_event_callbacks.Remove(event_id);
931 context_->install_methods_map.erase(event_id);
907 } 932 }
908 933
909 void ServiceWorkerContextClient::RespondToFetchEventWithNoResponse( 934 void ServiceWorkerContextClient::RespondToFetchEventWithNoResponse(
910 int fetch_event_id, 935 int fetch_event_id,
911 double event_dispatch_time) { 936 double event_dispatch_time) {
912 const mojom::ServiceWorkerFetchResponseCallbackPtr& response_callback = 937 const mojom::ServiceWorkerFetchResponseCallbackPtr& response_callback =
913 context_->fetch_response_callbacks[fetch_event_id]; 938 context_->fetch_response_callbacks[fetch_event_id];
914 DCHECK(response_callback.is_bound()); 939 DCHECK(response_callback.is_bound());
915 response_callback->OnFallback(base::Time::FromDoubleT(event_dispatch_time)); 940 response_callback->OnFallback(base::Time::FromDoubleT(event_dispatch_time));
916 context_->fetch_response_callbacks.erase(fetch_event_id); 941 context_->fetch_response_callbacks.erase(fetch_event_id);
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
1119 } 1144 }
1120 1145
1121 void ServiceWorkerContextClient::Claim( 1146 void ServiceWorkerContextClient::Claim(
1122 std::unique_ptr<blink::WebServiceWorkerClientsClaimCallbacks> callbacks) { 1147 std::unique_ptr<blink::WebServiceWorkerClientsClaimCallbacks> callbacks) {
1123 DCHECK(callbacks); 1148 DCHECK(callbacks);
1124 int request_id = context_->claim_clients_callbacks.Add(std::move(callbacks)); 1149 int request_id = context_->claim_clients_callbacks.Add(std::move(callbacks));
1125 Send(new ServiceWorkerHostMsg_ClaimClients(GetRoutingID(), request_id)); 1150 Send(new ServiceWorkerHostMsg_ClaimClients(GetRoutingID(), request_id));
1126 } 1151 }
1127 1152
1128 void ServiceWorkerContextClient::RegisterForeignFetchScopes( 1153 void ServiceWorkerContextClient::RegisterForeignFetchScopes(
1154 int event_id,
horo 2017/04/27 09:22:21 nit: install_event_id is more understandable.
xiaofengzhang 2017/04/28 07:14:24 Done.
1129 const blink::WebVector<blink::WebURL>& sub_scopes, 1155 const blink::WebVector<blink::WebURL>& sub_scopes,
1130 const blink::WebVector<blink::WebSecurityOrigin>& origins) { 1156 const blink::WebVector<blink::WebSecurityOrigin>& origins) {
1131 Send(new ServiceWorkerHostMsg_RegisterForeignFetchScopes( 1157 DCHECK(context_->install_methods_map[event_id].is_bound());
1132 GetRoutingID(), std::vector<GURL>(sub_scopes.begin(), sub_scopes.end()), 1158 context_->install_methods_map[event_id]->RegisterForeignFetchScopes(
1133 std::vector<url::Origin>(origins.begin(), origins.end()))); 1159 std::vector<GURL>(sub_scopes.begin(), sub_scopes.end()),
1160 std::vector<url::Origin>(origins.begin(), origins.end()));
1134 } 1161 }
1135 1162
1136 void ServiceWorkerContextClient::DispatchSyncEvent( 1163 void ServiceWorkerContextClient::DispatchSyncEvent(
1137 const std::string& tag, 1164 const std::string& tag,
1138 blink::mojom::BackgroundSyncEventLastChance last_chance, 1165 blink::mojom::BackgroundSyncEventLastChance last_chance,
1139 DispatchSyncEventCallback callback) { 1166 DispatchSyncEventCallback callback) {
1140 TRACE_EVENT0("ServiceWorker", 1167 TRACE_EVENT0("ServiceWorker",
1141 "ServiceWorkerContextClient::DispatchSyncEvent"); 1168 "ServiceWorkerContextClient::DispatchSyncEvent");
1142 int request_id = context_->sync_event_callbacks.Add( 1169 int request_id = context_->sync_event_callbacks.Add(
1143 base::MakeUnique<SyncCallback>(std::move(callback))); 1170 base::MakeUnique<SyncCallback>(std::move(callback)));
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
1275 fetches.size()); 1302 fetches.size());
1276 for (size_t i = 0; i < fetches.size(); ++i) { 1303 for (size_t i = 0; i < fetches.size(); ++i) {
1277 ToWebServiceWorkerRequest(fetches[i].request, &web_fetches[i].request); 1304 ToWebServiceWorkerRequest(fetches[i].request, &web_fetches[i].request);
1278 ToWebServiceWorkerResponse(fetches[i].response, &web_fetches[i].response); 1305 ToWebServiceWorkerResponse(fetches[i].response, &web_fetches[i].response);
1279 } 1306 }
1280 1307
1281 proxy_->DispatchBackgroundFetchedEvent( 1308 proxy_->DispatchBackgroundFetchedEvent(
1282 request_id, blink::WebString::FromUTF8(tag), web_fetches); 1309 request_id, blink::WebString::FromUTF8(tag), web_fetches);
1283 } 1310 }
1284 1311
1312 void ServiceWorkerContextClient::DispatchInstallEvent(
1313 mojom::ServiceWorkerInstallEventMethodsAssociatedPtrInfo client,
1314 DispatchInstallEventCallback callback) {
1315 TRACE_EVENT0("ServiceWorker",
1316 "ServiceWorkerContextClient::DispatchInstallEvent");
1317
1318 int event_id = context_->install_event_callbacks.Add(
1319 base::MakeUnique<DispatchInstallEventCallback>(std::move(callback)));
1320
1321 DCHECK(!context_->install_methods_map.count(event_id));
1322 mojom::ServiceWorkerInstallEventMethodsAssociatedPtr install_methods;
1323 install_methods.Bind(std::move(client));
1324 context_->install_methods_map[event_id] = std::move(install_methods);
1325
1326 proxy_->DispatchInstallEvent(event_id);
1327 }
1328
1285 void ServiceWorkerContextClient::DispatchExtendableMessageEvent( 1329 void ServiceWorkerContextClient::DispatchExtendableMessageEvent(
1286 mojom::ExtendableMessageEventPtr event, 1330 mojom::ExtendableMessageEventPtr event,
1287 DispatchExtendableMessageEventCallback callback) { 1331 DispatchExtendableMessageEventCallback callback) {
1288 TRACE_EVENT0("ServiceWorker", 1332 TRACE_EVENT0("ServiceWorker",
1289 "ServiceWorkerContextClient::DispatchExtendableMessageEvent"); 1333 "ServiceWorkerContextClient::DispatchExtendableMessageEvent");
1290 int request_id = context_->message_event_callbacks.Add( 1334 int request_id = context_->message_event_callbacks.Add(
1291 base::MakeUnique<DispatchExtendableMessageEventCallback>( 1335 base::MakeUnique<DispatchExtendableMessageEventCallback>(
1292 std::move(callback))); 1336 std::move(callback)));
1293 1337
1294 blink::WebMessagePortChannelArray ports = 1338 blink::WebMessagePortChannelArray ports =
(...skipping 16 matching lines...) Expand all
1311 ServiceWorkerDispatcher::GetOrCreateThreadSpecificInstance( 1355 ServiceWorkerDispatcher::GetOrCreateThreadSpecificInstance(
1312 sender_.get(), main_thread_task_runner_.get()); 1356 sender_.get(), main_thread_task_runner_.get());
1313 scoped_refptr<WebServiceWorkerImpl> worker = 1357 scoped_refptr<WebServiceWorkerImpl> worker =
1314 dispatcher->GetOrCreateServiceWorker(std::move(handle)); 1358 dispatcher->GetOrCreateServiceWorker(std::move(handle));
1315 proxy_->DispatchExtendableMessageEvent( 1359 proxy_->DispatchExtendableMessageEvent(
1316 request_id, blink::WebString::FromUTF16(event->message), 1360 request_id, blink::WebString::FromUTF16(event->message),
1317 event->source_origin, std::move(ports), 1361 event->source_origin, std::move(ports),
1318 WebServiceWorkerImpl::CreateHandle(worker)); 1362 WebServiceWorkerImpl::CreateHandle(worker));
1319 } 1363 }
1320 1364
1321 void ServiceWorkerContextClient::OnInstallEvent(int request_id) {
1322 TRACE_EVENT0("ServiceWorker",
1323 "ServiceWorkerContextClient::OnInstallEvent");
1324 proxy_->DispatchInstallEvent(request_id);
1325 }
1326
1327 void ServiceWorkerContextClient::DispatchFetchEvent( 1365 void ServiceWorkerContextClient::DispatchFetchEvent(
1328 int fetch_event_id, 1366 int fetch_event_id,
1329 const ServiceWorkerFetchRequest& request, 1367 const ServiceWorkerFetchRequest& request,
1330 mojom::FetchEventPreloadHandlePtr preload_handle, 1368 mojom::FetchEventPreloadHandlePtr preload_handle,
1331 mojom::ServiceWorkerFetchResponseCallbackPtr response_callback, 1369 mojom::ServiceWorkerFetchResponseCallbackPtr response_callback,
1332 DispatchFetchEventCallback callback) { 1370 DispatchFetchEventCallback callback) {
1333 std::unique_ptr<NavigationPreloadRequest> preload_request = 1371 std::unique_ptr<NavigationPreloadRequest> preload_request =
1334 preload_handle 1372 preload_handle
1335 ? base::MakeUnique<NavigationPreloadRequest>( 1373 ? base::MakeUnique<NavigationPreloadRequest>(
1336 fetch_event_id, request.url, std::move(preload_handle)) 1374 fetch_event_id, request.url, std::move(preload_handle))
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after
1620 } 1658 }
1621 1659
1622 base::WeakPtr<ServiceWorkerContextClient> 1660 base::WeakPtr<ServiceWorkerContextClient>
1623 ServiceWorkerContextClient::GetWeakPtr() { 1661 ServiceWorkerContextClient::GetWeakPtr() {
1624 DCHECK(worker_task_runner_->RunsTasksOnCurrentThread()); 1662 DCHECK(worker_task_runner_->RunsTasksOnCurrentThread());
1625 DCHECK(context_); 1663 DCHECK(context_);
1626 return context_->weak_factory.GetWeakPtr(); 1664 return context_->weak_factory.GetWeakPtr();
1627 } 1665 }
1628 1666
1629 } // namespace content 1667 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698