Chromium Code Reviews

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: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff |
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...)
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 if (IsBrowserSideNavigationEnabled()) { 383 ResourceRequesterInfo* requester_info = original_info->requester_info();
384 // TODO(horo): Support NavigationPreload with PlzNavigate. 384 DCHECK((IsBrowserSideNavigationEnabled() &&
yhirano 2016/12/01 09:40:02 I would prefer an explicit if-statement. If (IsBr
horo 2016/12/01 10:37:35 Done.
385 DCHECK(original_info->requester_info()->IsBrowserSideNavigation()); 385 requester_info->IsBrowserSideNavigation()) ||
386 NOTIMPLEMENTED(); 386 (!IsBrowserSideNavigationEnabled() && requester_info->IsRenderer()));
387 return; 387
388 } 388 if (requester_info->IsRenderer() && !requester_info->filter())
389 DCHECK(original_info->requester_info()->IsRenderer());
390 if (!original_info->requester_info()->filter())
391 return; 389 return;
392 390
393 DCHECK(!url_loader_factory_); 391 DCHECK(!url_loader_factory_);
394 mojom::URLLoaderFactoryPtr factory; 392 mojom::URLLoaderFactoryPtr factory;
395 URLLoaderFactoryImpl::Create(original_info->requester_info(), 393 URLLoaderFactoryImpl::Create(
396 mojo::GetProxy(&url_loader_factory_)); 394 ResourceRequesterInfo::CreateForNavigationPreload(requester_info),
395 mojo::GetProxy(&url_loader_factory_));
397 396
398 preload_handle_ = mojom::FetchEventPreloadHandle::New(); 397 preload_handle_ = mojom::FetchEventPreloadHandle::New();
399 398
400 ResourceRequest request; 399 ResourceRequest request;
401 request.method = original_request->method(); 400 request.method = original_request->method();
402 request.url = original_request->url(); 401 request.url = original_request->url();
403 request.request_initiator = original_request->initiator(); 402 request.request_initiator = original_request->initiator();
404 request.referrer = GURL(original_request->referrer()); 403 request.referrer = GURL(original_request->referrer());
405 request.referrer_policy = original_info->GetReferrerPolicy(); 404 request.referrer_policy = original_info->GetReferrerPolicy();
406 request.visibility_state = original_info->GetVisibilityState(); 405 request.visibility_state = original_info->GetVisibilityState();
(...skipping 41 matching lines...)
448 } 447 }
449 448
450 ServiceWorkerMetrics::EventType ServiceWorkerFetchDispatcher::GetEventType() 449 ServiceWorkerMetrics::EventType ServiceWorkerFetchDispatcher::GetEventType()
451 const { 450 const {
452 if (request_->fetch_type == ServiceWorkerFetchType::FOREIGN_FETCH) 451 if (request_->fetch_type == ServiceWorkerFetchType::FOREIGN_FETCH)
453 return ServiceWorkerMetrics::EventType::FOREIGN_FETCH; 452 return ServiceWorkerMetrics::EventType::FOREIGN_FETCH;
454 return ResourceTypeToEventType(resource_type_); 453 return ResourceTypeToEventType(resource_type_);
455 } 454 }
456 455
457 } // namespace content 456 } // namespace content
OLDNEW

Powered by Google App Engine