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

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

Issue 2410333006: Implement ServiceWorkerFetchDispatcher::MaybeStartNavigationPreload(). (Closed)
Patch Set: incorporated falken's comment Created 4 years, 2 months 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 fefc7137f6e953a3a34b43563943dc094bab16ab..453bc93f6ff2e476d3b2691edd1bbb8274de3bcf 100644
--- a/content/browser/service_worker/service_worker_fetch_dispatcher.cc
+++ b/content/browser/service_worker/service_worker_fetch_dispatcher.cc
@@ -12,6 +12,7 @@
#include "base/time/time.h"
#include "base/trace_event/trace_event.h"
#include "content/browser/service_worker/embedded_worker_status.h"
+#include "content/browser/service_worker/service_worker_navigation_preload_fetcher.h"
#include "content/browser/service_worker/service_worker_version.h"
#include "content/common/service_worker/fetch_event_dispatcher.mojom.h"
#include "content/common/service_worker/service_worker_messages.h"
@@ -279,9 +280,20 @@ void ServiceWorkerFetchDispatcher::MaybeStartNavigationPreload(
}
if (!version_->navigation_preload_enabled())
return;
- // TODO(horo): Implement this to start the preload request for the navigation
- // request and set |preload_handle_|.
- NOTIMPLEMENTED();
+ // TODO(horo): Currently NavigationPreload doesn't support request body.
+ if (!request_->blob_uuid.empty())
+ return;
+ if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kEnableExperimentalWebPlatformFeatures)) {
+ // TODO(horo): Check |version_|'s origin_trial_tokens() here if we use
+ // Origin-Trial for NavigationPreload.
+ return;
+ }
+ // TODO(horo): Pass "Service-Worker-Navigation-Preload" header to
+ // ServiceWorkerNavigationPreloadFetcher.
+ // See: https://github.com/w3c/ServiceWorker/issues/920#issuecomment-251150270
+ preload_handle_ =
+ ServiceWorkerNavigationPreloadFetcher::Start(original_request);
}
ServiceWorkerMetrics::EventType ServiceWorkerFetchDispatcher::GetEventType()

Powered by Google App Engine
This is Rietveld 408576698