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

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

Issue 2684933011: M57: Add UseCounter for ServiceWorkerNavigationPreload. (Closed)
Patch Set: Created 3 years, 10 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_response_info.cc
diff --git a/content/browser/service_worker/service_worker_response_info.cc b/content/browser/service_worker/service_worker_response_info.cc
index 88cdb2d07a83946e6fd24295322932cfd5478008..a1c8e3d73d1b650dabf2628b782985e05130fda1 100644
--- a/content/browser/service_worker/service_worker_response_info.cc
+++ b/content/browser/service_worker/service_worker_response_info.cc
@@ -52,11 +52,14 @@ void ServiceWorkerResponseInfo::GetExtraResponseInfo(
response_info->is_in_cache_storage = response_is_in_cache_storage_;
response_info->cache_storage_cache_name = response_cache_storage_cache_name_;
response_info->cors_exposed_header_names = cors_exposed_header_names_;
+ response_info->did_service_worker_navigation_preload =
+ did_navigation_preload_;
}
void ServiceWorkerResponseInfo::OnPrepareToRestart(
base::TimeTicks service_worker_start_time,
- base::TimeTicks service_worker_ready_time) {
+ base::TimeTicks service_worker_ready_time,
+ bool did_navigation_preload) {
ResetData();
// Update times, if not already set by a previous Job.
@@ -64,6 +67,11 @@ void ServiceWorkerResponseInfo::OnPrepareToRestart(
service_worker_start_time_ = service_worker_start_time;
service_worker_ready_time_ = service_worker_ready_time;
}
+ // Don't reset navigation preload flag it if a previous job already set it,
+ // since the UseCounter should still reflect that navigation preload occurred
+ // for this request.
+ if (did_navigation_preload)
+ did_navigation_preload_ = true;
}
void ServiceWorkerResponseInfo::OnStartCompleted(
@@ -76,7 +84,8 @@ void ServiceWorkerResponseInfo::OnStartCompleted(
base::TimeTicks service_worker_ready_time,
bool response_is_in_cache_storage,
const std::string& response_cache_storage_cache_name,
- const ServiceWorkerHeaderList& cors_exposed_header_names) {
+ const ServiceWorkerHeaderList& cors_exposed_header_names,
+ bool did_navigation_preload) {
was_fetched_via_service_worker_ = was_fetched_via_service_worker;
was_fetched_via_foreign_fetch_ = was_fetched_via_foreign_fetch;
was_fallback_required_ = was_fallback_required;
@@ -91,6 +100,8 @@ void ServiceWorkerResponseInfo::OnStartCompleted(
service_worker_start_time_ = service_worker_start_time;
service_worker_ready_time_ = service_worker_ready_time;
}
+
+ did_navigation_preload_ = did_navigation_preload;
}
void ServiceWorkerResponseInfo::ResetData() {
@@ -100,9 +111,15 @@ void ServiceWorkerResponseInfo::ResetData() {
url_list_via_service_worker_.clear();
response_type_via_service_worker_ =
blink::WebServiceWorkerResponseTypeDefault;
+ // Don't reset |service_worker_start_time_| or |service_worker_ready_time_|
+ // since it's historical timing information that should persist between job
+ // restarts.
response_is_in_cache_storage_ = false;
response_cache_storage_cache_name_ = std::string();
cors_exposed_header_names_.clear();
+ // Don't reset the |did_navigation_preload_| flag. This is used for the
+ // UseCounter, and if it was ever true for a request, it should remain true
+ // even if the job restarts.
}
ServiceWorkerResponseInfo::ServiceWorkerResponseInfo() {}

Powered by Google App Engine
This is Rietveld 408576698