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

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: Fixing timing order in test Created 4 years, 3 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 "PaintTiming.NavigationToFirstMeaningfulPaint";
Bryan McQuade 2016/09/25 23:39:17 this should include 'Experimental' in the name.
RyanSturm 2016/09/26 20:15:51 Done.
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> 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 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, first_meaningful_paint,
174 parse_blocked_on_script_load_duration, parse_stop); 181 parse_blocked_on_script_load_duration, parse_stop);
175 GetPingbackClient()->SendPingback(*data_, data_reduction_proxy_timing); 182 GetPingbackClient()->SendPingback(*data_, data_reduction_proxy_timing);
176 } 183 }
177 184
178 void DataReductionProxyMetricsObserver::OnDomContentLoadedEventStart( 185 void DataReductionProxyMetricsObserver::OnDomContentLoadedEventStart(
179 const page_load_metrics::PageLoadTiming& timing, 186 const page_load_metrics::PageLoadTiming& timing,
180 const page_load_metrics::PageLoadExtraInfo& info) { 187 const page_load_metrics::PageLoadExtraInfo& info) {
181 RECORD_HISTOGRAMS_FOR_SUFFIX( 188 RECORD_HISTOGRAMS_FOR_SUFFIX(
182 data_, timing.dom_content_loaded_event_start, 189 data_, timing.dom_content_loaded_event_start,
183 timing.dom_content_loaded_event_start.value(), info, 190 timing.dom_content_loaded_event_start.value(), info,
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 } 232 }
226 233
227 void DataReductionProxyMetricsObserver::OnFirstContentfulPaint( 234 void DataReductionProxyMetricsObserver::OnFirstContentfulPaint(
228 const page_load_metrics::PageLoadTiming& timing, 235 const page_load_metrics::PageLoadTiming& timing,
229 const page_load_metrics::PageLoadExtraInfo& info) { 236 const page_load_metrics::PageLoadExtraInfo& info) {
230 RECORD_HISTOGRAMS_FOR_SUFFIX(data_, timing.first_contentful_paint, 237 RECORD_HISTOGRAMS_FOR_SUFFIX(data_, timing.first_contentful_paint,
231 timing.first_contentful_paint.value(), info, 238 timing.first_contentful_paint.value(), info,
232 internal::kHistogramFirstContentfulPaintSuffix); 239 internal::kHistogramFirstContentfulPaintSuffix);
233 } 240 }
234 241
242 void DataReductionProxyMetricsObserver::OnFirstMeaningfulPaint(
243 const page_load_metrics::PageLoadTiming& timing,
244 const page_load_metrics::PageLoadExtraInfo& info) {
245 RECORD_HISTOGRAMS_FOR_SUFFIX(data_, timing.first_meaningful_paint,
246 timing.first_meaningful_paint.value(), info,
247 internal::kHistogramFirstMeaningfulPaintSuffix);
248 }
249
235 void DataReductionProxyMetricsObserver::OnParseStart( 250 void DataReductionProxyMetricsObserver::OnParseStart(
236 const page_load_metrics::PageLoadTiming& timing, 251 const page_load_metrics::PageLoadTiming& timing,
237 const page_load_metrics::PageLoadExtraInfo& info) { 252 const page_load_metrics::PageLoadExtraInfo& info) {
238 RECORD_HISTOGRAMS_FOR_SUFFIX(data_, timing.parse_start, 253 RECORD_HISTOGRAMS_FOR_SUFFIX(data_, timing.parse_start,
239 timing.parse_start.value(), info, 254 timing.parse_start.value(), info,
240 internal::kHistogramParseStartSuffix); 255 internal::kHistogramParseStartSuffix);
241 } 256 }
242 257
243 void DataReductionProxyMetricsObserver::OnParseStop( 258 void DataReductionProxyMetricsObserver::OnParseStop(
244 const page_load_metrics::PageLoadTiming& timing, 259 const page_load_metrics::PageLoadTiming& timing,
(...skipping 10 matching lines...) Expand all
255 270
256 DataReductionProxyPingbackClient* 271 DataReductionProxyPingbackClient*
257 DataReductionProxyMetricsObserver::GetPingbackClient() const { 272 DataReductionProxyMetricsObserver::GetPingbackClient() const {
258 return DataReductionProxyChromeSettingsFactory::GetForBrowserContext( 273 return DataReductionProxyChromeSettingsFactory::GetForBrowserContext(
259 browser_context_) 274 browser_context_)
260 ->data_reduction_proxy_service() 275 ->data_reduction_proxy_service()
261 ->pingback_client(); 276 ->pingback_client();
262 } 277 }
263 278
264 } // namespace data_reduction_proxy 279 } // namespace data_reduction_proxy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698