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

Side by Side Diff: chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer.cc

Issue 2363913003: Add FMP to DataReductionProxy UMA and to Pingback Metrics (Closed)
Patch Set: rebase 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 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 "chrome/browser/page_load_metrics/observers/data_reduction_proxy_metric s_observer.h" 5 #include "chrome/browser/page_load_metrics/observers/data_reduction_proxy_metric s_observer.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/optional.h" 9 #include "base/optional.h"
10 #include "base/time/time.h" 10 #include "base/time/time.h"
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 const char kHistogramDataReductionProxyLoFiOnPrefix[] = 66 const char kHistogramDataReductionProxyLoFiOnPrefix[] =
67 "PageLoad.Clients.DataReductionProxy.LoFiOn."; 67 "PageLoad.Clients.DataReductionProxy.LoFiOn.";
68 const char kHistogramDOMContentLoadedEventFiredSuffix[] = 68 const char kHistogramDOMContentLoadedEventFiredSuffix[] =
69 "DocumentTiming.NavigationToDOMContentLoadedEventFired"; 69 "DocumentTiming.NavigationToDOMContentLoadedEventFired";
70 const char kHistogramFirstLayoutSuffix[] = 70 const char kHistogramFirstLayoutSuffix[] =
71 "DocumentTiming.NavigationToFirstLayout"; 71 "DocumentTiming.NavigationToFirstLayout";
72 const char kHistogramLoadEventFiredSuffix[] = 72 const char kHistogramLoadEventFiredSuffix[] =
73 "DocumentTiming.NavigationToLoadEventFired"; 73 "DocumentTiming.NavigationToLoadEventFired";
74 const char kHistogramFirstContentfulPaintSuffix[] = 74 const char kHistogramFirstContentfulPaintSuffix[] =
75 "PaintTiming.NavigationToFirstContentfulPaint"; 75 "PaintTiming.NavigationToFirstContentfulPaint";
76 const char kHistogramFirstMeaningfulPaintSuffix[] =
77 "Experimental.PaintTiming.NavigationToFirstMeaningfulPaint";
76 const char kHistogramFirstImagePaintSuffix[] = 78 const char kHistogramFirstImagePaintSuffix[] =
77 "PaintTiming.NavigationToFirstImagePaint"; 79 "PaintTiming.NavigationToFirstImagePaint";
78 const char kHistogramFirstPaintSuffix[] = "PaintTiming.NavigationToFirstPaint"; 80 const char kHistogramFirstPaintSuffix[] = "PaintTiming.NavigationToFirstPaint";
79 const char kHistogramFirstTextPaintSuffix[] = 81 const char kHistogramFirstTextPaintSuffix[] =
80 "PaintTiming.NavigationToFirstTextPaint"; 82 "PaintTiming.NavigationToFirstTextPaint";
81 const char kHistogramParseStartSuffix[] = "ParseTiming.NavigationToParseStart"; 83 const char kHistogramParseStartSuffix[] = "ParseTiming.NavigationToParseStart";
82 const char kHistogramParseBlockedOnScriptLoadSuffix[] = 84 const char kHistogramParseBlockedOnScriptLoadSuffix[] =
83 "ParseTiming.ParseBlockedOnScriptLoad"; 85 "ParseTiming.ParseBlockedOnScriptLoad";
84 const char kHistogramParseDurationSuffix[] = "ParseTiming.ParseDuration"; 86 const char kHistogramParseDurationSuffix[] = "ParseTiming.ParseDuration";
85 87
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 if (data_reduction_proxy::params::IsIncludedInHoldbackFieldTrial() || 135 if (data_reduction_proxy::params::IsIncludedInHoldbackFieldTrial() ||
134 data_reduction_proxy::params::IsIncludedInTamperDetectionExperiment()) { 136 data_reduction_proxy::params::IsIncludedInTamperDetectionExperiment()) {
135 return; 137 return;
136 } 138 }
137 // Only consider timing events that happened before the first background 139 // Only consider timing events that happened before the first background
138 // event. 140 // event.
139 base::Optional<base::TimeDelta> response_start; 141 base::Optional<base::TimeDelta> response_start;
140 base::Optional<base::TimeDelta> load_event_start; 142 base::Optional<base::TimeDelta> load_event_start;
141 base::Optional<base::TimeDelta> first_image_paint; 143 base::Optional<base::TimeDelta> first_image_paint;
142 base::Optional<base::TimeDelta> first_contentful_paint; 144 base::Optional<base::TimeDelta> first_contentful_paint;
145 base::Optional<base::TimeDelta> experimental_first_meaningful_paint;
143 base::Optional<base::TimeDelta> parse_blocked_on_script_load_duration; 146 base::Optional<base::TimeDelta> parse_blocked_on_script_load_duration;
144 base::Optional<base::TimeDelta> parse_stop; 147 base::Optional<base::TimeDelta> parse_stop;
145 if (WasStartedInForegroundOptionalEventInForeground(timing.response_start, 148 if (WasStartedInForegroundOptionalEventInForeground(timing.response_start,
146 info)) { 149 info)) {
147 response_start = timing.response_start; 150 response_start = timing.response_start;
148 } 151 }
149 if (WasStartedInForegroundOptionalEventInForeground(timing.load_event_start, 152 if (WasStartedInForegroundOptionalEventInForeground(timing.load_event_start,
150 info)) { 153 info)) {
151 load_event_start = timing.load_event_start; 154 load_event_start = timing.load_event_start;
152 } 155 }
153 if (WasStartedInForegroundOptionalEventInForeground(timing.first_image_paint, 156 if (WasStartedInForegroundOptionalEventInForeground(timing.first_image_paint,
154 info)) { 157 info)) {
155 first_image_paint = timing.first_image_paint; 158 first_image_paint = timing.first_image_paint;
156 } 159 }
157 if (WasStartedInForegroundOptionalEventInForeground( 160 if (WasStartedInForegroundOptionalEventInForeground(
158 timing.first_contentful_paint, info)) { 161 timing.first_contentful_paint, info)) {
159 first_contentful_paint = timing.first_contentful_paint; 162 first_contentful_paint = timing.first_contentful_paint;
160 } 163 }
161 if (WasStartedInForegroundOptionalEventInForeground( 164 if (WasStartedInForegroundOptionalEventInForeground(
165 timing.first_meaningful_paint, info)) {
166 experimental_first_meaningful_paint = timing.first_meaningful_paint;
167 }
168 if (WasStartedInForegroundOptionalEventInForeground(
162 timing.parse_blocked_on_script_load_duration, info)) { 169 timing.parse_blocked_on_script_load_duration, info)) {
163 parse_blocked_on_script_load_duration = 170 parse_blocked_on_script_load_duration =
164 timing.parse_blocked_on_script_load_duration; 171 timing.parse_blocked_on_script_load_duration;
165 } 172 }
166 if (WasStartedInForegroundOptionalEventInForeground(timing.parse_stop, 173 if (WasStartedInForegroundOptionalEventInForeground(timing.parse_stop,
167 info)) { 174 info)) {
168 parse_stop = timing.parse_stop; 175 parse_stop = timing.parse_stop;
169 } 176 }
170 177
171 DataReductionProxyPageLoadTiming data_reduction_proxy_timing( 178 DataReductionProxyPageLoadTiming data_reduction_proxy_timing(
172 timing.navigation_start, response_start, load_event_start, 179 timing.navigation_start, response_start, load_event_start,
173 first_image_paint, first_contentful_paint, 180 first_image_paint, first_contentful_paint,
181 experimental_first_meaningful_paint,
174 parse_blocked_on_script_load_duration, parse_stop); 182 parse_blocked_on_script_load_duration, parse_stop);
175 GetPingbackClient()->SendPingback(*data_, data_reduction_proxy_timing); 183 GetPingbackClient()->SendPingback(*data_, data_reduction_proxy_timing);
176 } 184 }
177 185
178 void DataReductionProxyMetricsObserver::OnDomContentLoadedEventStart( 186 void DataReductionProxyMetricsObserver::OnDomContentLoadedEventStart(
179 const page_load_metrics::PageLoadTiming& timing, 187 const page_load_metrics::PageLoadTiming& timing,
180 const page_load_metrics::PageLoadExtraInfo& info) { 188 const page_load_metrics::PageLoadExtraInfo& info) {
181 RECORD_HISTOGRAMS_FOR_SUFFIX( 189 RECORD_HISTOGRAMS_FOR_SUFFIX(
182 data_, timing.dom_content_loaded_event_start, 190 data_, timing.dom_content_loaded_event_start,
183 timing.dom_content_loaded_event_start.value(), info, 191 timing.dom_content_loaded_event_start.value(), info,
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 } 233 }
226 234
227 void DataReductionProxyMetricsObserver::OnFirstContentfulPaint( 235 void DataReductionProxyMetricsObserver::OnFirstContentfulPaint(
228 const page_load_metrics::PageLoadTiming& timing, 236 const page_load_metrics::PageLoadTiming& timing,
229 const page_load_metrics::PageLoadExtraInfo& info) { 237 const page_load_metrics::PageLoadExtraInfo& info) {
230 RECORD_HISTOGRAMS_FOR_SUFFIX(data_, timing.first_contentful_paint, 238 RECORD_HISTOGRAMS_FOR_SUFFIX(data_, timing.first_contentful_paint,
231 timing.first_contentful_paint.value(), info, 239 timing.first_contentful_paint.value(), info,
232 internal::kHistogramFirstContentfulPaintSuffix); 240 internal::kHistogramFirstContentfulPaintSuffix);
233 } 241 }
234 242
243 void DataReductionProxyMetricsObserver::OnFirstMeaningfulPaint(
244 const page_load_metrics::PageLoadTiming& timing,
245 const page_load_metrics::PageLoadExtraInfo& info) {
246 RECORD_HISTOGRAMS_FOR_SUFFIX(data_, timing.first_meaningful_paint,
247 timing.first_meaningful_paint.value(), info,
248 internal::kHistogramFirstMeaningfulPaintSuffix);
249 }
250
235 void DataReductionProxyMetricsObserver::OnParseStart( 251 void DataReductionProxyMetricsObserver::OnParseStart(
236 const page_load_metrics::PageLoadTiming& timing, 252 const page_load_metrics::PageLoadTiming& timing,
237 const page_load_metrics::PageLoadExtraInfo& info) { 253 const page_load_metrics::PageLoadExtraInfo& info) {
238 RECORD_HISTOGRAMS_FOR_SUFFIX(data_, timing.parse_start, 254 RECORD_HISTOGRAMS_FOR_SUFFIX(data_, timing.parse_start,
239 timing.parse_start.value(), info, 255 timing.parse_start.value(), info,
240 internal::kHistogramParseStartSuffix); 256 internal::kHistogramParseStartSuffix);
241 } 257 }
242 258
243 void DataReductionProxyMetricsObserver::OnParseStop( 259 void DataReductionProxyMetricsObserver::OnParseStop(
244 const page_load_metrics::PageLoadTiming& timing, 260 const page_load_metrics::PageLoadTiming& timing,
(...skipping 10 matching lines...) Expand all
255 271
256 DataReductionProxyPingbackClient* 272 DataReductionProxyPingbackClient*
257 DataReductionProxyMetricsObserver::GetPingbackClient() const { 273 DataReductionProxyMetricsObserver::GetPingbackClient() const {
258 return DataReductionProxyChromeSettingsFactory::GetForBrowserContext( 274 return DataReductionProxyChromeSettingsFactory::GetForBrowserContext(
259 browser_context_) 275 browser_context_)
260 ->data_reduction_proxy_service() 276 ->data_reduction_proxy_service()
261 ->pingback_client(); 277 ->pingback_client();
262 } 278 }
263 279
264 } // namespace data_reduction_proxy 280 } // namespace data_reduction_proxy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698