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

Side by Side Diff: content/browser/service_worker/service_worker_fetch_dispatcher.cc

Issue 2490623005: Remove InterfaceRegistry/Provider from service workers (Closed)
Patch Set: rebase/fix comment Created 4 years 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/browser/service_worker/service_worker_fetch_dispatcher.h" 5 #include "content/browser/service_worker/service_worker_fetch_dispatcher.h"
6 6
7 #include <string> 7 #include <string>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
11 #include "base/feature_list.h" 11 #include "base/feature_list.h"
12 #include "base/memory/ptr_util.h" 12 #include "base/memory/ptr_util.h"
13 #include "base/time/time.h" 13 #include "base/time/time.h"
14 #include "base/trace_event/trace_event.h" 14 #include "base/trace_event/trace_event.h"
15 #include "content/browser/loader/resource_dispatcher_host_impl.h" 15 #include "content/browser/loader/resource_dispatcher_host_impl.h"
16 #include "content/browser/loader/resource_message_filter.h" 16 #include "content/browser/loader/resource_message_filter.h"
17 #include "content/browser/loader/resource_request_info_impl.h" 17 #include "content/browser/loader/resource_request_info_impl.h"
18 #include "content/browser/loader/url_loader_factory_impl.h" 18 #include "content/browser/loader/url_loader_factory_impl.h"
19 #include "content/browser/service_worker/embedded_worker_status.h" 19 #include "content/browser/service_worker/embedded_worker_status.h"
20 #include "content/browser/service_worker/service_worker_version.h" 20 #include "content/browser/service_worker/service_worker_version.h"
21 #include "content/common/service_worker/fetch_event_dispatcher.mojom.h" 21 #include "content/common/service_worker/service_worker_event_dispatcher.mojom.h"
22 #include "content/common/service_worker/service_worker_messages.h" 22 #include "content/common/service_worker/service_worker_messages.h"
23 #include "content/common/service_worker/service_worker_status_code.h" 23 #include "content/common/service_worker/service_worker_status_code.h"
24 #include "content/common/service_worker/service_worker_types.h" 24 #include "content/common/service_worker/service_worker_types.h"
25 #include "content/common/service_worker/service_worker_utils.h" 25 #include "content/common/service_worker/service_worker_utils.h"
26 #include "content/public/common/browser_side_navigation_policy.h" 26 #include "content/public/common/browser_side_navigation_policy.h"
27 #include "content/public/common/content_features.h" 27 #include "content/public/common/content_features.h"
28 #include "mojo/public/cpp/bindings/associated_binding.h" 28 #include "mojo/public/cpp/bindings/associated_binding.h"
29 #include "mojo/public/cpp/bindings/binding.h" 29 #include "mojo/public/cpp/bindings/binding.h"
30 #include "net/http/http_util.h" 30 #include "net/http/http_util.h"
31 #include "net/log/net_log.h" 31 #include "net/log/net_log.h"
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 FetchTypeToWaitUntilEventType(request_->fetch_type), 303 FetchTypeToWaitUntilEventType(request_->fetch_type),
304 base::Bind(&ServiceWorkerUtils::NoOpStatusCallback)); 304 base::Bind(&ServiceWorkerUtils::NoOpStatusCallback));
305 305
306 ResponseCallback* response_callback = 306 ResponseCallback* response_callback =
307 new ResponseCallback(weak_factory_.GetWeakPtr(), version_.get()); 307 new ResponseCallback(weak_factory_.GetWeakPtr(), version_.get());
308 version_->RegisterRequestCallback<ServiceWorkerHostMsg_FetchEventResponse>( 308 version_->RegisterRequestCallback<ServiceWorkerHostMsg_FetchEventResponse>(
309 fetch_event_id, 309 fetch_event_id,
310 base::Bind(&ServiceWorkerFetchDispatcher::ResponseCallback::Run, 310 base::Bind(&ServiceWorkerFetchDispatcher::ResponseCallback::Run,
311 base::Owned(response_callback))); 311 base::Owned(response_callback)));
312 312
313 base::WeakPtr<mojom::FetchEventDispatcher> dispatcher = 313 // |event_dispatcher| is owned by |version_|. So it is safe to pass the
314 version_->GetMojoServiceForRequest<mojom::FetchEventDispatcher>( 314 // unretained raw pointer of |version_| to OnFetchEventFinished callback.
315 event_finish_id);
316 // |dispatcher| is owned by |version_|. So it is safe to pass the unretained
317 // raw pointer of |version_| to OnFetchEventFinished callback.
318 // Pass |url_loader_factory_|, |url_Loader_| and |url_loader_client_| to the 315 // Pass |url_loader_factory_|, |url_Loader_| and |url_loader_client_| to the
319 // callback to keep them alive while the FetchEvent is onging in the service 316 // callback to keep them alive while the FetchEvent is onging in the service
320 // worker. 317 // worker.
321 dispatcher->DispatchFetchEvent( 318 version_->event_dispatcher()->DispatchFetchEvent(
322 fetch_event_id, *request_, std::move(preload_handle_), 319 fetch_event_id, *request_, std::move(preload_handle_),
323 base::Bind(&OnFetchEventFinished, base::Unretained(version_.get()), 320 base::Bind(&OnFetchEventFinished, base::Unretained(version_.get()),
324 event_finish_id, base::Passed(std::move(url_loader_factory_)), 321 event_finish_id, base::Passed(std::move(url_loader_factory_)),
325 base::Passed(std::move(url_loader_)), 322 base::Passed(std::move(url_loader_)),
326 base::Passed(std::move(url_loader_client_)))); 323 base::Passed(std::move(url_loader_client_))));
327 } 324 }
328 325
329 void ServiceWorkerFetchDispatcher::DidFailToDispatch( 326 void ServiceWorkerFetchDispatcher::DidFailToDispatch(
330 ServiceWorkerStatusCode status) { 327 ServiceWorkerStatusCode status) {
331 EndNetLogEventWithServiceWorkerStatus( 328 EndNetLogEventWithServiceWorkerStatus(
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
448 } 445 }
449 446
450 ServiceWorkerMetrics::EventType ServiceWorkerFetchDispatcher::GetEventType() 447 ServiceWorkerMetrics::EventType ServiceWorkerFetchDispatcher::GetEventType()
451 const { 448 const {
452 if (request_->fetch_type == ServiceWorkerFetchType::FOREIGN_FETCH) 449 if (request_->fetch_type == ServiceWorkerFetchType::FOREIGN_FETCH)
453 return ServiceWorkerMetrics::EventType::FOREIGN_FETCH; 450 return ServiceWorkerMetrics::EventType::FOREIGN_FETCH;
454 return ResourceTypeToEventType(resource_type_); 451 return ResourceTypeToEventType(resource_type_);
455 } 452 }
456 453
457 } // namespace content 454 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698