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

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

Issue 2497223002: Introduce a new ResourceRequesterInfo type for NavigationPreload. (Closed)
Patch Set: incorporated yhirano's 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"
(...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after
373 return; 373 return;
374 if (!base::FeatureList::IsEnabled( 374 if (!base::FeatureList::IsEnabled(
375 features::kServiceWorkerNavigationPreload)) { 375 features::kServiceWorkerNavigationPreload)) {
376 // TODO(horo): Check |version_|'s origin_trial_tokens() here if we use 376 // TODO(horo): Check |version_|'s origin_trial_tokens() here if we use
377 // Origin-Trial for NavigationPreload. 377 // Origin-Trial for NavigationPreload.
378 return; 378 return;
379 } 379 }
380 380
381 ResourceRequestInfoImpl* original_info = 381 ResourceRequestInfoImpl* original_info =
382 ResourceRequestInfoImpl::ForRequest(original_request); 382 ResourceRequestInfoImpl::ForRequest(original_request);
383 ResourceRequesterInfo* requester_info = original_info->requester_info();
383 if (IsBrowserSideNavigationEnabled()) { 384 if (IsBrowserSideNavigationEnabled()) {
384 // TODO(horo): Support NavigationPreload with PlzNavigate. 385 DCHECK(requester_info->IsBrowserSideNavigation());
385 DCHECK(original_info->requester_info()->IsBrowserSideNavigation()); 386 } else {
386 NOTIMPLEMENTED(); 387 DCHECK(requester_info->IsRenderer());
387 return; 388 if (!requester_info->filter())
389 return;
388 } 390 }
389 DCHECK(original_info->requester_info()->IsRenderer());
390 if (!original_info->requester_info()->filter())
391 return;
392 391
393 DCHECK(!url_loader_factory_); 392 DCHECK(!url_loader_factory_);
394 mojom::URLLoaderFactoryPtr factory; 393 mojom::URLLoaderFactoryPtr factory;
395 URLLoaderFactoryImpl::Create(original_info->requester_info(), 394 URLLoaderFactoryImpl::Create(
396 mojo::GetProxy(&url_loader_factory_)); 395 ResourceRequesterInfo::CreateForNavigationPreload(requester_info),
396 mojo::GetProxy(&url_loader_factory_));
397 397
398 preload_handle_ = mojom::FetchEventPreloadHandle::New(); 398 preload_handle_ = mojom::FetchEventPreloadHandle::New();
399 399
400 ResourceRequest request; 400 ResourceRequest request;
401 request.method = original_request->method(); 401 request.method = original_request->method();
402 request.url = original_request->url(); 402 request.url = original_request->url();
403 request.request_initiator = original_request->initiator(); 403 request.request_initiator = original_request->initiator();
404 request.referrer = GURL(original_request->referrer()); 404 request.referrer = GURL(original_request->referrer());
405 request.referrer_policy = original_info->GetReferrerPolicy(); 405 request.referrer_policy = original_info->GetReferrerPolicy();
406 request.visibility_state = original_info->GetVisibilityState(); 406 request.visibility_state = original_info->GetVisibilityState();
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
448 } 448 }
449 449
450 ServiceWorkerMetrics::EventType ServiceWorkerFetchDispatcher::GetEventType() 450 ServiceWorkerMetrics::EventType ServiceWorkerFetchDispatcher::GetEventType()
451 const { 451 const {
452 if (request_->fetch_type == ServiceWorkerFetchType::FOREIGN_FETCH) 452 if (request_->fetch_type == ServiceWorkerFetchType::FOREIGN_FETCH)
453 return ServiceWorkerMetrics::EventType::FOREIGN_FETCH; 453 return ServiceWorkerMetrics::EventType::FOREIGN_FETCH;
454 return ResourceTypeToEventType(resource_type_); 454 return ResourceTypeToEventType(resource_type_);
455 } 455 }
456 456
457 } // namespace content 457 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698