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

Unified Diff: content/browser/service_worker/service_worker_fetch_dispatcher.cc

Issue 2460223003: Support Service Worker NavigationPreload with PlzNavigate. (Closed)
Patch Set: fix windows compile error 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 side-by-side diff with in-line comments
Download patch
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 f26bb19ff3ed0398fe4fe9c6758ba319ac276d02..3749e2a12c40bec5e50a4ee9474be8ccbffbafbd 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,20 @@ 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());
+ if (!provider_host)
+ return;
+ 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();

Powered by Google App Engine
This is Rietveld 408576698