| Index: content/browser/service_worker/service_worker_fetch_dispatcher.cc
|
| diff --git a/content/browser/service_worker/service_worker_fetch_dispatcher.cc b/content/browser/service_worker/service_worker_fetch_dispatcher.cc
|
| index e2dc37409b35ffbfc81996fe81e28524c7c81e28..6b5454fceca64b6bcf3b399403fc1670e507c602 100644
|
| --- a/content/browser/service_worker/service_worker_fetch_dispatcher.cc
|
| +++ b/content/browser/service_worker/service_worker_fetch_dispatcher.cc
|
| @@ -281,7 +281,8 @@ void ServiceWorkerFetchDispatcher::Complete(
|
| }
|
|
|
| void ServiceWorkerFetchDispatcher::MaybeStartNavigationPreload(
|
| - net::URLRequest* original_request) {
|
| + net::URLRequest* original_request,
|
| + base::WeakPtr<ServiceWorkerProviderHost> provider_host) {
|
| if (resource_type_ != RESOURCE_TYPE_MAIN_FRAME &&
|
| resource_type_ != RESOURCE_TYPE_SUB_FRAME) {
|
| return;
|
| @@ -297,19 +298,18 @@ void ServiceWorkerFetchDispatcher::MaybeStartNavigationPreload(
|
| // Origin-Trial for NavigationPreload.
|
| return;
|
| }
|
| - if (IsBrowserSideNavigationEnabled()) {
|
| - // TODO(horo): Support NavigationPreload with PlzNavigate.
|
| - NOTIMPLEMENTED();
|
| - return;
|
| - }
|
|
|
| const ResourceRequestInfoImpl* original_info =
|
| ResourceRequestInfoImpl::ForRequest(original_request);
|
| - if (!original_info->filter())
|
| - return;
|
| + ResourceMessageFilter* filter = original_info->filter();
|
| + if (!filter) {
|
| + DCHECK(IsBrowserSideNavigationEnabled());
|
| + filter = provider_host->resource_filter_for_navigation_preload();
|
| + }
|
| + DCHECK(filter);
|
| +
|
| mojom::URLLoaderFactoryPtr factory;
|
| - URLLoaderFactoryImpl::Create(original_info->filter(),
|
| - mojo::GetProxy(&factory));
|
| + URLLoaderFactoryImpl::Create(filter, mojo::GetProxy(&factory));
|
|
|
| preload_handle_ = mojom::FetchEventPreloadHandle::New();
|
|
|
|
|