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

Side by Side 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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_response_info.h" 5 #include "content/browser/service_worker/service_worker_response_info.h"
6 6
7 #include "content/public/common/resource_response_info.h" 7 #include "content/public/common/resource_response_info.h"
8 #include "net/url_request/url_request.h" 8 #include "net/url_request/url_request.h"
9 9
10 namespace content { 10 namespace content {
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 response_info->was_fallback_required_by_service_worker = 45 response_info->was_fallback_required_by_service_worker =
46 was_fallback_required_; 46 was_fallback_required_;
47 response_info->url_list_via_service_worker = url_list_via_service_worker_; 47 response_info->url_list_via_service_worker = url_list_via_service_worker_;
48 response_info->response_type_via_service_worker = 48 response_info->response_type_via_service_worker =
49 response_type_via_service_worker_; 49 response_type_via_service_worker_;
50 response_info->service_worker_start_time = service_worker_start_time_; 50 response_info->service_worker_start_time = service_worker_start_time_;
51 response_info->service_worker_ready_time = service_worker_ready_time_; 51 response_info->service_worker_ready_time = service_worker_ready_time_;
52 response_info->is_in_cache_storage = response_is_in_cache_storage_; 52 response_info->is_in_cache_storage = response_is_in_cache_storage_;
53 response_info->cache_storage_cache_name = response_cache_storage_cache_name_; 53 response_info->cache_storage_cache_name = response_cache_storage_cache_name_;
54 response_info->cors_exposed_header_names = cors_exposed_header_names_; 54 response_info->cors_exposed_header_names = cors_exposed_header_names_;
55 response_info->did_service_worker_navigation_preload =
56 did_navigation_preload_;
55 } 57 }
56 58
57 void ServiceWorkerResponseInfo::OnPrepareToRestart( 59 void ServiceWorkerResponseInfo::OnPrepareToRestart(
58 base::TimeTicks service_worker_start_time, 60 base::TimeTicks service_worker_start_time,
59 base::TimeTicks service_worker_ready_time) { 61 base::TimeTicks service_worker_ready_time,
62 bool did_navigation_preload) {
60 ResetData(); 63 ResetData();
61 64
62 // Update times, if not already set by a previous Job. 65 // Update times, if not already set by a previous Job.
63 if (service_worker_start_time_.is_null()) { 66 if (service_worker_start_time_.is_null()) {
64 service_worker_start_time_ = service_worker_start_time; 67 service_worker_start_time_ = service_worker_start_time;
65 service_worker_ready_time_ = service_worker_ready_time; 68 service_worker_ready_time_ = service_worker_ready_time;
66 } 69 }
70 // Don't reset navigation preload flag it if a previous job already set it,
71 // since the UseCounter should still reflect that navigation preload occurred
72 // for this request.
73 if (did_navigation_preload)
74 did_navigation_preload_ = true;
67 } 75 }
68 76
69 void ServiceWorkerResponseInfo::OnStartCompleted( 77 void ServiceWorkerResponseInfo::OnStartCompleted(
70 bool was_fetched_via_service_worker, 78 bool was_fetched_via_service_worker,
71 bool was_fetched_via_foreign_fetch, 79 bool was_fetched_via_foreign_fetch,
72 bool was_fallback_required, 80 bool was_fallback_required,
73 const std::vector<GURL>& url_list_via_service_worker, 81 const std::vector<GURL>& url_list_via_service_worker,
74 blink::WebServiceWorkerResponseType response_type_via_service_worker, 82 blink::WebServiceWorkerResponseType response_type_via_service_worker,
75 base::TimeTicks service_worker_start_time, 83 base::TimeTicks service_worker_start_time,
76 base::TimeTicks service_worker_ready_time, 84 base::TimeTicks service_worker_ready_time,
77 bool response_is_in_cache_storage, 85 bool response_is_in_cache_storage,
78 const std::string& response_cache_storage_cache_name, 86 const std::string& response_cache_storage_cache_name,
79 const ServiceWorkerHeaderList& cors_exposed_header_names) { 87 const ServiceWorkerHeaderList& cors_exposed_header_names,
88 bool did_navigation_preload) {
80 was_fetched_via_service_worker_ = was_fetched_via_service_worker; 89 was_fetched_via_service_worker_ = was_fetched_via_service_worker;
81 was_fetched_via_foreign_fetch_ = was_fetched_via_foreign_fetch; 90 was_fetched_via_foreign_fetch_ = was_fetched_via_foreign_fetch;
82 was_fallback_required_ = was_fallback_required; 91 was_fallback_required_ = was_fallback_required;
83 url_list_via_service_worker_ = url_list_via_service_worker; 92 url_list_via_service_worker_ = url_list_via_service_worker;
84 response_type_via_service_worker_ = response_type_via_service_worker; 93 response_type_via_service_worker_ = response_type_via_service_worker;
85 response_is_in_cache_storage_ = response_is_in_cache_storage; 94 response_is_in_cache_storage_ = response_is_in_cache_storage;
86 response_cache_storage_cache_name_ = response_cache_storage_cache_name; 95 response_cache_storage_cache_name_ = response_cache_storage_cache_name;
87 cors_exposed_header_names_ = cors_exposed_header_names; 96 cors_exposed_header_names_ = cors_exposed_header_names;
88 97
89 // Update times, if not already set by a previous Job. 98 // Update times, if not already set by a previous Job.
90 if (service_worker_start_time_.is_null()) { 99 if (service_worker_start_time_.is_null()) {
91 service_worker_start_time_ = service_worker_start_time; 100 service_worker_start_time_ = service_worker_start_time;
92 service_worker_ready_time_ = service_worker_ready_time; 101 service_worker_ready_time_ = service_worker_ready_time;
93 } 102 }
103
104 did_navigation_preload_ = did_navigation_preload;
94 } 105 }
95 106
96 void ServiceWorkerResponseInfo::ResetData() { 107 void ServiceWorkerResponseInfo::ResetData() {
97 was_fetched_via_service_worker_ = false; 108 was_fetched_via_service_worker_ = false;
98 was_fetched_via_foreign_fetch_ = false; 109 was_fetched_via_foreign_fetch_ = false;
99 was_fallback_required_ = false; 110 was_fallback_required_ = false;
100 url_list_via_service_worker_.clear(); 111 url_list_via_service_worker_.clear();
101 response_type_via_service_worker_ = 112 response_type_via_service_worker_ =
102 blink::WebServiceWorkerResponseTypeDefault; 113 blink::WebServiceWorkerResponseTypeDefault;
114 // Don't reset |service_worker_start_time_| or |service_worker_ready_time_|
115 // since it's historical timing information that should persist between job
116 // restarts.
103 response_is_in_cache_storage_ = false; 117 response_is_in_cache_storage_ = false;
104 response_cache_storage_cache_name_ = std::string(); 118 response_cache_storage_cache_name_ = std::string();
105 cors_exposed_header_names_.clear(); 119 cors_exposed_header_names_.clear();
120 // Don't reset the |did_navigation_preload_| flag. This is used for the
121 // UseCounter, and if it was ever true for a request, it should remain true
122 // even if the job restarts.
106 } 123 }
107 124
108 ServiceWorkerResponseInfo::ServiceWorkerResponseInfo() {} 125 ServiceWorkerResponseInfo::ServiceWorkerResponseInfo() {}
109 126
110 } // namespace content 127 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698