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

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

Issue 2746783002: [ServiceWorker] Mojofy InstallEvent of Service Worker (Closed)
Patch Set: Address shimazu's comment #66 and leon's #69 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 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 using SimpleEventCallback = 265 using SimpleEventCallback =
266 base::Callback<void(ServiceWorkerStatusCode, base::Time)>; 266 base::Callback<void(ServiceWorkerStatusCode, base::Time)>;
267 using ClientsCallbacksMap = 267 using ClientsCallbacksMap =
268 IDMap<std::unique_ptr<blink::WebServiceWorkerClientsCallbacks>>; 268 IDMap<std::unique_ptr<blink::WebServiceWorkerClientsCallbacks>>;
269 using ClaimClientsCallbacksMap = 269 using ClaimClientsCallbacksMap =
270 IDMap<std::unique_ptr<blink::WebServiceWorkerClientsClaimCallbacks>>; 270 IDMap<std::unique_ptr<blink::WebServiceWorkerClientsClaimCallbacks>>;
271 using ClientCallbacksMap = 271 using ClientCallbacksMap =
272 IDMap<std::unique_ptr<blink::WebServiceWorkerClientCallbacks>>; 272 IDMap<std::unique_ptr<blink::WebServiceWorkerClientCallbacks>>;
273 using SkipWaitingCallbacksMap = 273 using SkipWaitingCallbacksMap =
274 IDMap<std::unique_ptr<blink::WebServiceWorkerSkipWaitingCallbacks>>; 274 IDMap<std::unique_ptr<blink::WebServiceWorkerSkipWaitingCallbacks>>;
275 using InstallEventCallbacksMap =
276 IDMap<std::unique_ptr<const DispatchInstallEventCallback>>;
275 using ActivateEventCallbacksMap = 277 using ActivateEventCallbacksMap =
276 IDMap<std::unique_ptr<const DispatchActivateEventCallback>>; 278 IDMap<std::unique_ptr<const DispatchActivateEventCallback>>;
277 using BackgroundFetchAbortEventCallbacksMap = 279 using BackgroundFetchAbortEventCallbacksMap =
278 IDMap<std::unique_ptr<const DispatchBackgroundFetchAbortEventCallback>>; 280 IDMap<std::unique_ptr<const DispatchBackgroundFetchAbortEventCallback>>;
279 using BackgroundFetchClickEventCallbacksMap = 281 using BackgroundFetchClickEventCallbacksMap =
280 IDMap<std::unique_ptr<const DispatchBackgroundFetchClickEventCallback>>; 282 IDMap<std::unique_ptr<const DispatchBackgroundFetchClickEventCallback>>;
281 using BackgroundFetchFailEventCallbacksMap = 283 using BackgroundFetchFailEventCallbacksMap =
282 IDMap<std::unique_ptr<const DispatchBackgroundFetchFailEventCallback>>; 284 IDMap<std::unique_ptr<const DispatchBackgroundFetchFailEventCallback>>;
283 using BackgroundFetchedEventCallbacksMap = 285 using BackgroundFetchedEventCallbacksMap =
284 IDMap<std::unique_ptr<const DispatchBackgroundFetchedEventCallback>>; 286 IDMap<std::unique_ptr<const DispatchBackgroundFetchedEventCallback>>;
(...skipping 25 matching lines...) Expand all
310 312
311 // Pending callbacks for OpenWindow() and FocusClient(). 313 // Pending callbacks for OpenWindow() and FocusClient().
312 ClientCallbacksMap client_callbacks; 314 ClientCallbacksMap client_callbacks;
313 315
314 // Pending callbacks for SkipWaiting(). 316 // Pending callbacks for SkipWaiting().
315 SkipWaitingCallbacksMap skip_waiting_callbacks; 317 SkipWaitingCallbacksMap skip_waiting_callbacks;
316 318
317 // Pending callbacks for ClaimClients(). 319 // Pending callbacks for ClaimClients().
318 ClaimClientsCallbacksMap claim_clients_callbacks; 320 ClaimClientsCallbacksMap claim_clients_callbacks;
319 321
322 // Pending callbacks for Install Events.
323 InstallEventCallbacksMap install_event_callbacks;
324
320 // Pending callbacks for Activate Events. 325 // Pending callbacks for Activate Events.
321 ActivateEventCallbacksMap activate_event_callbacks; 326 ActivateEventCallbacksMap activate_event_callbacks;
322 327
323 // Pending callbacks for Background Fetch Abort Events. 328 // Pending callbacks for Background Fetch Abort Events.
324 BackgroundFetchAbortEventCallbacksMap background_fetch_abort_event_callbacks; 329 BackgroundFetchAbortEventCallbacksMap background_fetch_abort_event_callbacks;
325 330
326 // Pending callbacks for Background Fetch Click Events. 331 // Pending callbacks for Background Fetch Click Events.
327 BackgroundFetchClickEventCallbacksMap background_fetch_click_event_callbacks; 332 BackgroundFetchClickEventCallbacksMap background_fetch_click_event_callbacks;
328 333
329 // Pending callbacks for Background Fetch Fail Events. 334 // Pending callbacks for Background Fetch Fail Events.
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
361 std::map<int /* fetch_event_id */, 366 std::map<int /* fetch_event_id */,
362 mojom::ServiceWorkerFetchResponseCallbackPtr> 367 mojom::ServiceWorkerFetchResponseCallbackPtr>
363 fetch_response_callbacks; 368 fetch_response_callbacks;
364 369
365 // Pending callbacks for Extendable Message Events. 370 // Pending callbacks for Extendable Message Events.
366 ExtendableMessageEventCallbacksMap message_event_callbacks; 371 ExtendableMessageEventCallbacksMap message_event_callbacks;
367 372
368 // Pending navigation preload requests. 373 // Pending navigation preload requests.
369 NavigationPreloadRequestsMap preload_requests; 374 NavigationPreloadRequestsMap preload_requests;
370 375
376 // Maps every install event id with its corresponding
377 // mojom::ServiceWorkerInstallEventMethodsAssociatedPt.
378 InstallEventMethodsMap install_methods_map;
379
371 base::ThreadChecker thread_checker; 380 base::ThreadChecker thread_checker;
372 base::WeakPtrFactory<ServiceWorkerContextClient> weak_factory; 381 base::WeakPtrFactory<ServiceWorkerContextClient> weak_factory;
373 base::WeakPtrFactory<blink::WebServiceWorkerContextProxy> proxy_weak_factory; 382 base::WeakPtrFactory<blink::WebServiceWorkerContextProxy> proxy_weak_factory;
374 }; 383 };
375 384
376 class ServiceWorkerContextClient::NavigationPreloadRequest final 385 class ServiceWorkerContextClient::NavigationPreloadRequest final
377 : public mojom::URLLoaderClient { 386 : public mojom::URLLoaderClient {
378 public: 387 public:
379 NavigationPreloadRequest(int fetch_event_id, 388 NavigationPreloadRequest(int fetch_event_id,
380 const GURL& url, 389 const GURL& url,
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
556 565
557 ServiceWorkerContextClient::~ServiceWorkerContextClient() {} 566 ServiceWorkerContextClient::~ServiceWorkerContextClient() {}
558 567
559 void ServiceWorkerContextClient::OnMessageReceived( 568 void ServiceWorkerContextClient::OnMessageReceived(
560 int thread_id, 569 int thread_id,
561 int embedded_worker_id, 570 int embedded_worker_id,
562 const IPC::Message& message) { 571 const IPC::Message& message) {
563 CHECK_EQ(embedded_worker_id_, embedded_worker_id); 572 CHECK_EQ(embedded_worker_id_, embedded_worker_id);
564 bool handled = true; 573 bool handled = true;
565 IPC_BEGIN_MESSAGE_MAP(ServiceWorkerContextClient, message) 574 IPC_BEGIN_MESSAGE_MAP(ServiceWorkerContextClient, message)
566 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_InstallEvent, OnInstallEvent)
567 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetClient, OnDidGetClient) 575 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetClient, OnDidGetClient)
568 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetClients, OnDidGetClients) 576 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_DidGetClients, OnDidGetClients)
569 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_OpenWindowResponse, 577 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_OpenWindowResponse,
570 OnOpenWindowResponse) 578 OnOpenWindowResponse)
571 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_OpenWindowError, 579 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_OpenWindowError,
572 OnOpenWindowError) 580 OnOpenWindowError)
573 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_FocusClientResponse, 581 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_FocusClientResponse,
574 OnFocusClientResponse) 582 OnFocusClientResponse)
575 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_NavigateClientResponse, 583 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_NavigateClientResponse,
576 OnNavigateClientResponse) 584 OnNavigateClientResponse)
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
718 context, service_worker_version_id_, script_url_); 726 context, service_worker_version_id_, script_url_);
719 } 727 }
720 728
721 void ServiceWorkerContextClient::WillDestroyWorkerContext( 729 void ServiceWorkerContextClient::WillDestroyWorkerContext(
722 v8::Local<v8::Context> context) { 730 v8::Local<v8::Context> context) {
723 // At this point WillStopCurrentWorkerThread is already called, so 731 // At this point WillStopCurrentWorkerThread is already called, so
724 // worker_task_runner_->RunsTasksOnCurrentThread() returns false 732 // worker_task_runner_->RunsTasksOnCurrentThread() returns false
725 // (while we're still on the worker thread). 733 // (while we're still on the worker thread).
726 proxy_ = NULL; 734 proxy_ = NULL;
727 735
728 // Aborts all the pending events callbacks. 736 // Aborts the all pending install event callbacks which has three
737 // parameters so that here can't use AbortPendingEventCallbacks.
738 for (WorkerContextData::InstallEventCallbacksMap::iterator it(
739 &context_->install_event_callbacks);
740 !it.IsAtEnd(); it.Advance()) {
741 it.GetCurrentValue()->Run(SERVICE_WORKER_ERROR_ABORT, false,
742 base::Time::Now());
743 }
744 // Aborts all other pending events callbacks.
729 AbortPendingEventCallbacks(context_->activate_event_callbacks); 745 AbortPendingEventCallbacks(context_->activate_event_callbacks);
730 AbortPendingEventCallbacks(context_->background_fetch_abort_event_callbacks); 746 AbortPendingEventCallbacks(context_->background_fetch_abort_event_callbacks);
731 AbortPendingEventCallbacks(context_->background_fetch_click_event_callbacks); 747 AbortPendingEventCallbacks(context_->background_fetch_click_event_callbacks);
732 AbortPendingEventCallbacks(context_->background_fetch_fail_event_callbacks); 748 AbortPendingEventCallbacks(context_->background_fetch_fail_event_callbacks);
733 AbortPendingEventCallbacks(context_->background_fetched_event_callbacks); 749 AbortPendingEventCallbacks(context_->background_fetched_event_callbacks);
734 AbortPendingEventCallbacks(context_->sync_event_callbacks); 750 AbortPendingEventCallbacks(context_->sync_event_callbacks);
735 AbortPendingEventCallbacks(context_->notification_click_event_callbacks); 751 AbortPendingEventCallbacks(context_->notification_click_event_callbacks);
736 AbortPendingEventCallbacks(context_->notification_close_event_callbacks); 752 AbortPendingEventCallbacks(context_->notification_close_event_callbacks);
737 AbortPendingEventCallbacks(context_->push_event_callbacks); 753 AbortPendingEventCallbacks(context_->push_event_callbacks);
738 AbortPendingEventCallbacks(context_->fetch_event_callbacks); 754 AbortPendingEventCallbacks(context_->fetch_event_callbacks);
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
888 DCHECK(callback); 904 DCHECK(callback);
889 callback->Run(EventResultToStatus(result), 905 callback->Run(EventResultToStatus(result),
890 base::Time::FromDoubleT(event_dispatch_time)); 906 base::Time::FromDoubleT(event_dispatch_time));
891 context_->message_event_callbacks.Remove(request_id); 907 context_->message_event_callbacks.Remove(request_id);
892 } 908 }
893 909
894 void ServiceWorkerContextClient::DidHandleInstallEvent( 910 void ServiceWorkerContextClient::DidHandleInstallEvent(
895 int request_id, 911 int request_id,
896 blink::WebServiceWorkerEventResult result, 912 blink::WebServiceWorkerEventResult result,
897 double event_dispatch_time) { 913 double event_dispatch_time) {
898 Send(new ServiceWorkerHostMsg_InstallEventFinished( 914 const DispatchInstallEventCallback* callback =
899 GetRoutingID(), request_id, result, proxy_->HasFetchEventHandler(), 915 context_->install_event_callbacks.Lookup(request_id);
900 base::Time::FromDoubleT(event_dispatch_time))); 916 DCHECK(callback);
917 callback->Run(EventResultToStatus(result), proxy_->HasFetchEventHandler(),
918 base::Time::FromDoubleT(event_dispatch_time));
919 context_->install_event_callbacks.Remove(request_id);
920 context_->install_methods_map.erase(request_id);
901 } 921 }
902 922
903 void ServiceWorkerContextClient::RespondToFetchEventWithNoResponse( 923 void ServiceWorkerContextClient::RespondToFetchEventWithNoResponse(
904 int fetch_event_id, 924 int fetch_event_id,
905 double event_dispatch_time) { 925 double event_dispatch_time) {
906 const mojom::ServiceWorkerFetchResponseCallbackPtr& response_callback = 926 const mojom::ServiceWorkerFetchResponseCallbackPtr& response_callback =
907 context_->fetch_response_callbacks[fetch_event_id]; 927 context_->fetch_response_callbacks[fetch_event_id];
908 DCHECK(response_callback.is_bound()); 928 DCHECK(response_callback.is_bound());
909 response_callback->OnFallback(base::Time::FromDoubleT(event_dispatch_time)); 929 response_callback->OnFallback(base::Time::FromDoubleT(event_dispatch_time));
910 context_->fetch_response_callbacks.erase(fetch_event_id); 930 context_->fetch_response_callbacks.erase(fetch_event_id);
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
1112 } 1132 }
1113 1133
1114 void ServiceWorkerContextClient::Claim( 1134 void ServiceWorkerContextClient::Claim(
1115 std::unique_ptr<blink::WebServiceWorkerClientsClaimCallbacks> callbacks) { 1135 std::unique_ptr<blink::WebServiceWorkerClientsClaimCallbacks> callbacks) {
1116 DCHECK(callbacks); 1136 DCHECK(callbacks);
1117 int request_id = context_->claim_clients_callbacks.Add(std::move(callbacks)); 1137 int request_id = context_->claim_clients_callbacks.Add(std::move(callbacks));
1118 Send(new ServiceWorkerHostMsg_ClaimClients(GetRoutingID(), request_id)); 1138 Send(new ServiceWorkerHostMsg_ClaimClients(GetRoutingID(), request_id));
1119 } 1139 }
1120 1140
1121 void ServiceWorkerContextClient::RegisterForeignFetchScopes( 1141 void ServiceWorkerContextClient::RegisterForeignFetchScopes(
1142 int event_id,
1122 const blink::WebVector<blink::WebURL>& sub_scopes, 1143 const blink::WebVector<blink::WebURL>& sub_scopes,
1123 const blink::WebVector<blink::WebSecurityOrigin>& origins) { 1144 const blink::WebVector<blink::WebSecurityOrigin>& origins) {
1124 Send(new ServiceWorkerHostMsg_RegisterForeignFetchScopes( 1145 DCHECK(context_->install_methods_map[event_id].is_bound());
1125 GetRoutingID(), std::vector<GURL>(sub_scopes.begin(), sub_scopes.end()), 1146 context_->install_methods_map[event_id]->RegisterForeignFetchScopes(
1126 std::vector<url::Origin>(origins.begin(), origins.end()))); 1147 std::vector<GURL>(sub_scopes.begin(), sub_scopes.end()),
1148 std::vector<url::Origin>(origins.begin(), origins.end()));
1127 } 1149 }
1128 1150
1129 void ServiceWorkerContextClient::DispatchSyncEvent( 1151 void ServiceWorkerContextClient::DispatchSyncEvent(
1130 const std::string& tag, 1152 const std::string& tag,
1131 blink::mojom::BackgroundSyncEventLastChance last_chance, 1153 blink::mojom::BackgroundSyncEventLastChance last_chance,
1132 const DispatchSyncEventCallback& callback) { 1154 const DispatchSyncEventCallback& callback) {
1133 TRACE_EVENT0("ServiceWorker", 1155 TRACE_EVENT0("ServiceWorker",
1134 "ServiceWorkerContextClient::DispatchSyncEvent"); 1156 "ServiceWorkerContextClient::DispatchSyncEvent");
1135 int request_id = context_->sync_event_callbacks.Add( 1157 int request_id = context_->sync_event_callbacks.Add(
1136 base::MakeUnique<SyncCallback>(callback)); 1158 base::MakeUnique<SyncCallback>(callback));
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
1264 fetches.size()); 1286 fetches.size());
1265 for (size_t i = 0; i < fetches.size(); ++i) { 1287 for (size_t i = 0; i < fetches.size(); ++i) {
1266 ToWebServiceWorkerRequest(fetches[i].request, &web_fetches[i].request); 1288 ToWebServiceWorkerRequest(fetches[i].request, &web_fetches[i].request);
1267 ToWebServiceWorkerResponse(fetches[i].response, &web_fetches[i].response); 1289 ToWebServiceWorkerResponse(fetches[i].response, &web_fetches[i].response);
1268 } 1290 }
1269 1291
1270 proxy_->DispatchBackgroundFetchedEvent( 1292 proxy_->DispatchBackgroundFetchedEvent(
1271 request_id, blink::WebString::FromUTF8(tag), web_fetches); 1293 request_id, blink::WebString::FromUTF8(tag), web_fetches);
1272 } 1294 }
1273 1295
1296 void ServiceWorkerContextClient::DispatchInstallEvent(
1297 mojom::ServiceWorkerInstallEventMethodsAssociatedPtrInfo client,
1298 const DispatchInstallEventCallback& callback) {
1299 TRACE_EVENT0("ServiceWorker",
1300 "ServiceWorkerContextClient::DispatchInstallEvent");
1301
1302 int event_id = context_->install_event_callbacks.Add(
1303 base::MakeUnique<DispatchInstallEventCallback>(callback));
1304
1305 DCHECK(!context_->install_methods_map.count(event_id));
1306 mojom::ServiceWorkerInstallEventMethodsAssociatedPtr install_methods;
1307 install_methods.Bind(std::move(client));
1308 context_->install_methods_map[event_id] = std::move(install_methods);
1309
1310 proxy_->DispatchInstallEvent(event_id);
1311 }
1312
1274 void ServiceWorkerContextClient::DispatchExtendableMessageEvent( 1313 void ServiceWorkerContextClient::DispatchExtendableMessageEvent(
1275 mojom::ExtendableMessageEventPtr event, 1314 mojom::ExtendableMessageEventPtr event,
1276 const DispatchExtendableMessageEventCallback& callback) { 1315 const DispatchExtendableMessageEventCallback& callback) {
1277 TRACE_EVENT0("ServiceWorker", 1316 TRACE_EVENT0("ServiceWorker",
1278 "ServiceWorkerContextClient::DispatchExtendableMessageEvent"); 1317 "ServiceWorkerContextClient::DispatchExtendableMessageEvent");
1279 int request_id = context_->message_event_callbacks.Add( 1318 int request_id = context_->message_event_callbacks.Add(
1280 base::MakeUnique<DispatchExtendableMessageEventCallback>(callback)); 1319 base::MakeUnique<DispatchExtendableMessageEventCallback>(callback));
1281 1320
1282 blink::WebMessagePortChannelArray ports = 1321 blink::WebMessagePortChannelArray ports =
1283 WebMessagePortChannelImpl::CreateFromMessagePipeHandles( 1322 WebMessagePortChannelImpl::CreateFromMessagePipeHandles(
(...skipping 15 matching lines...) Expand all
1299 ServiceWorkerDispatcher::GetOrCreateThreadSpecificInstance( 1338 ServiceWorkerDispatcher::GetOrCreateThreadSpecificInstance(
1300 sender_.get(), main_thread_task_runner_.get()); 1339 sender_.get(), main_thread_task_runner_.get());
1301 scoped_refptr<WebServiceWorkerImpl> worker = 1340 scoped_refptr<WebServiceWorkerImpl> worker =
1302 dispatcher->GetOrCreateServiceWorker(std::move(handle)); 1341 dispatcher->GetOrCreateServiceWorker(std::move(handle));
1303 proxy_->DispatchExtendableMessageEvent( 1342 proxy_->DispatchExtendableMessageEvent(
1304 request_id, blink::WebString::FromUTF16(event->message), 1343 request_id, blink::WebString::FromUTF16(event->message),
1305 event->source_origin, std::move(ports), 1344 event->source_origin, std::move(ports),
1306 WebServiceWorkerImpl::CreateHandle(worker)); 1345 WebServiceWorkerImpl::CreateHandle(worker));
1307 } 1346 }
1308 1347
1309 void ServiceWorkerContextClient::OnInstallEvent(int request_id) {
1310 TRACE_EVENT0("ServiceWorker",
1311 "ServiceWorkerContextClient::OnInstallEvent");
1312 proxy_->DispatchInstallEvent(request_id);
1313 }
1314
1315 void ServiceWorkerContextClient::DispatchFetchEvent( 1348 void ServiceWorkerContextClient::DispatchFetchEvent(
1316 int fetch_event_id, 1349 int fetch_event_id,
1317 const ServiceWorkerFetchRequest& request, 1350 const ServiceWorkerFetchRequest& request,
1318 mojom::FetchEventPreloadHandlePtr preload_handle, 1351 mojom::FetchEventPreloadHandlePtr preload_handle,
1319 mojom::ServiceWorkerFetchResponseCallbackPtr response_callback, 1352 mojom::ServiceWorkerFetchResponseCallbackPtr response_callback,
1320 const DispatchFetchEventCallback& callback) { 1353 const DispatchFetchEventCallback& callback) {
1321 std::unique_ptr<NavigationPreloadRequest> preload_request = 1354 std::unique_ptr<NavigationPreloadRequest> preload_request =
1322 preload_handle 1355 preload_handle
1323 ? base::MakeUnique<NavigationPreloadRequest>( 1356 ? base::MakeUnique<NavigationPreloadRequest>(
1324 fetch_event_id, request.url, std::move(preload_handle)) 1357 fetch_event_id, request.url, std::move(preload_handle))
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
1606 } 1639 }
1607 1640
1608 base::WeakPtr<ServiceWorkerContextClient> 1641 base::WeakPtr<ServiceWorkerContextClient>
1609 ServiceWorkerContextClient::GetWeakPtr() { 1642 ServiceWorkerContextClient::GetWeakPtr() {
1610 DCHECK(worker_task_runner_->RunsTasksOnCurrentThread()); 1643 DCHECK(worker_task_runner_->RunsTasksOnCurrentThread());
1611 DCHECK(context_); 1644 DCHECK(context_);
1612 return context_->weak_factory.GetWeakPtr(); 1645 return context_->weak_factory.GetWeakPtr();
1613 } 1646 }
1614 1647
1615 } // namespace content 1648 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698