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

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

Issue 2490623005: Remove InterfaceRegistry/Provider from service workers (Closed)
Patch Set: review Created 4 years, 1 month 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/log/net_log.h" 30 #include "net/log/net_log.h"
31 #include "net/log/net_log_capture_mode.h" 31 #include "net/log/net_log_capture_mode.h"
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after
285 FetchTypeToWaitUntilEventType(request_->fetch_type), 285 FetchTypeToWaitUntilEventType(request_->fetch_type),
286 base::Bind(&ServiceWorkerUtils::NoOpStatusCallback)); 286 base::Bind(&ServiceWorkerUtils::NoOpStatusCallback));
287 287
288 ResponseCallback* response_callback = 288 ResponseCallback* response_callback =
289 new ResponseCallback(weak_factory_.GetWeakPtr(), version_.get()); 289 new ResponseCallback(weak_factory_.GetWeakPtr(), version_.get());
290 version_->RegisterRequestCallback<ServiceWorkerHostMsg_FetchEventResponse>( 290 version_->RegisterRequestCallback<ServiceWorkerHostMsg_FetchEventResponse>(
291 fetch_event_id, 291 fetch_event_id,
292 base::Bind(&ServiceWorkerFetchDispatcher::ResponseCallback::Run, 292 base::Bind(&ServiceWorkerFetchDispatcher::ResponseCallback::Run,
293 base::Owned(response_callback))); 293 base::Owned(response_callback)));
294 294
295 base::WeakPtr<mojom::FetchEventDispatcher> dispatcher =
296 version_->GetMojoServiceForRequest<mojom::FetchEventDispatcher>(
297 event_finish_id);
298 // |dispatcher| is owned by |version_|. So it is safe to pass the unretained 295 // |dispatcher| is owned by |version_|. So it is safe to pass the unretained
falken 2016/11/23 14:32:31 nit: there is no longer a |dispatcher|
shimazu 2016/11/24 06:47:32 Done.
299 // raw pointer of |version_| to OnFetchEventFinished callback. 296 // raw pointer of |version_| to OnFetchEventFinished callback.
300 // Pass |url_loader_factory_|, |url_Loader_| and |url_loader_client_| to the 297 // Pass |url_loader_factory_|, |url_Loader_| and |url_loader_client_| to the
301 // callback to keep them alive while the FetchEvent is onging in the service 298 // callback to keep them alive while the FetchEvent is onging in the service
302 // worker. 299 // worker.
303 dispatcher->DispatchFetchEvent( 300 version_->event_dispatcher()->DispatchFetchEvent(
304 fetch_event_id, *request_, std::move(preload_handle_), 301 fetch_event_id, *request_, std::move(preload_handle_),
305 base::Bind(&OnFetchEventFinished, base::Unretained(version_.get()), 302 base::Bind(&OnFetchEventFinished, base::Unretained(version_.get()),
306 event_finish_id, base::Passed(std::move(url_loader_factory_)), 303 event_finish_id, base::Passed(std::move(url_loader_factory_)),
307 base::Passed(std::move(url_loader_)), 304 base::Passed(std::move(url_loader_)),
308 base::Passed(std::move(url_loader_client_)))); 305 base::Passed(std::move(url_loader_client_))));
309 } 306 }
310 307
311 void ServiceWorkerFetchDispatcher::DidFailToDispatch( 308 void ServiceWorkerFetchDispatcher::DidFailToDispatch(
312 ServiceWorkerStatusCode status) { 309 ServiceWorkerStatusCode status) {
313 EndNetLogEventWithServiceWorkerStatus( 310 EndNetLogEventWithServiceWorkerStatus(
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
426 } 423 }
427 424
428 ServiceWorkerMetrics::EventType ServiceWorkerFetchDispatcher::GetEventType() 425 ServiceWorkerMetrics::EventType ServiceWorkerFetchDispatcher::GetEventType()
429 const { 426 const {
430 if (request_->fetch_type == ServiceWorkerFetchType::FOREIGN_FETCH) 427 if (request_->fetch_type == ServiceWorkerFetchType::FOREIGN_FETCH)
431 return ServiceWorkerMetrics::EventType::FOREIGN_FETCH; 428 return ServiceWorkerMetrics::EventType::FOREIGN_FETCH;
432 return ResourceTypeToEventType(resource_type_); 429 return ResourceTypeToEventType(resource_type_);
433 } 430 }
434 431
435 } // namespace content 432 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698