Chromium Code Reviews| Index: chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer.cc |
| diff --git a/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer.cc |
| index 8b460cfb68e4f8f21181cdab31716b01b1d71204..6b60a6ba6ed8c00bd57a14f6a3fc20e782fd5e10 100644 |
| --- a/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer.cc |
| +++ b/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer.cc |
| @@ -66,20 +66,22 @@ const char kHistogramDataReductionProxyPrefix[] = |
| const char kHistogramDataReductionProxyLoFiOnPrefix[] = |
| "PageLoad.Clients.DataReductionProxy.LoFiOn."; |
| const char kHistogramDOMContentLoadedEventFiredSuffix[] = |
| "DocumentTiming.NavigationToDOMContentLoadedEventFired"; |
| const char kHistogramFirstLayoutSuffix[] = |
| "DocumentTiming.NavigationToFirstLayout"; |
| const char kHistogramLoadEventFiredSuffix[] = |
| "DocumentTiming.NavigationToLoadEventFired"; |
| const char kHistogramFirstContentfulPaintSuffix[] = |
| "PaintTiming.NavigationToFirstContentfulPaint"; |
| +const char kHistogramFirstMeaningfulPaintSuffix[] = |
| + "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.
|
| const char kHistogramFirstImagePaintSuffix[] = |
| "PaintTiming.NavigationToFirstImagePaint"; |
| const char kHistogramFirstPaintSuffix[] = "PaintTiming.NavigationToFirstPaint"; |
| const char kHistogramFirstTextPaintSuffix[] = |
| "PaintTiming.NavigationToFirstTextPaint"; |
| const char kHistogramParseStartSuffix[] = "ParseTiming.NavigationToParseStart"; |
| const char kHistogramParseBlockedOnScriptLoadSuffix[] = |
| "ParseTiming.ParseBlockedOnScriptLoad"; |
| const char kHistogramParseDurationSuffix[] = "ParseTiming.ParseDuration"; |
| @@ -133,51 +135,56 @@ void DataReductionProxyMetricsObserver::OnComplete( |
| if (data_reduction_proxy::params::IsIncludedInHoldbackFieldTrial() || |
| data_reduction_proxy::params::IsIncludedInTamperDetectionExperiment()) { |
| return; |
| } |
| // Only consider timing events that happened before the first background |
| // event. |
| base::Optional<base::TimeDelta> response_start; |
| base::Optional<base::TimeDelta> load_event_start; |
| base::Optional<base::TimeDelta> first_image_paint; |
| base::Optional<base::TimeDelta> first_contentful_paint; |
| + base::Optional<base::TimeDelta> first_meaningful_paint; |
| base::Optional<base::TimeDelta> parse_blocked_on_script_load_duration; |
| base::Optional<base::TimeDelta> parse_stop; |
| if (WasStartedInForegroundOptionalEventInForeground(timing.response_start, |
| info)) { |
| response_start = timing.response_start; |
| } |
| if (WasStartedInForegroundOptionalEventInForeground(timing.load_event_start, |
| info)) { |
| load_event_start = timing.load_event_start; |
| } |
| if (WasStartedInForegroundOptionalEventInForeground(timing.first_image_paint, |
| info)) { |
| first_image_paint = timing.first_image_paint; |
| } |
| if (WasStartedInForegroundOptionalEventInForeground( |
| timing.first_contentful_paint, info)) { |
| first_contentful_paint = timing.first_contentful_paint; |
| } |
| if (WasStartedInForegroundOptionalEventInForeground( |
| + timing.first_meaningful_paint, info)) { |
| + first_meaningful_paint = timing.first_meaningful_paint; |
| + } |
| + if (WasStartedInForegroundOptionalEventInForeground( |
| timing.parse_blocked_on_script_load_duration, info)) { |
| parse_blocked_on_script_load_duration = |
| timing.parse_blocked_on_script_load_duration; |
| } |
| if (WasStartedInForegroundOptionalEventInForeground(timing.parse_stop, |
| info)) { |
| parse_stop = timing.parse_stop; |
| } |
| DataReductionProxyPageLoadTiming data_reduction_proxy_timing( |
| timing.navigation_start, response_start, load_event_start, |
| - first_image_paint, first_contentful_paint, |
| + first_image_paint, first_contentful_paint, first_meaningful_paint, |
| parse_blocked_on_script_load_duration, parse_stop); |
| GetPingbackClient()->SendPingback(*data_, data_reduction_proxy_timing); |
| } |
| void DataReductionProxyMetricsObserver::OnDomContentLoadedEventStart( |
| const page_load_metrics::PageLoadTiming& timing, |
| const page_load_metrics::PageLoadExtraInfo& info) { |
| RECORD_HISTOGRAMS_FOR_SUFFIX( |
| data_, timing.dom_content_loaded_event_start, |
| timing.dom_content_loaded_event_start.value(), info, |
| @@ -225,20 +232,28 @@ void DataReductionProxyMetricsObserver::OnFirstImagePaint( |
| } |
| void DataReductionProxyMetricsObserver::OnFirstContentfulPaint( |
| const page_load_metrics::PageLoadTiming& timing, |
| const page_load_metrics::PageLoadExtraInfo& info) { |
| RECORD_HISTOGRAMS_FOR_SUFFIX(data_, timing.first_contentful_paint, |
| timing.first_contentful_paint.value(), info, |
| internal::kHistogramFirstContentfulPaintSuffix); |
| } |
| +void DataReductionProxyMetricsObserver::OnFirstMeaningfulPaint( |
| + const page_load_metrics::PageLoadTiming& timing, |
| + const page_load_metrics::PageLoadExtraInfo& info) { |
| + RECORD_HISTOGRAMS_FOR_SUFFIX(data_, timing.first_meaningful_paint, |
| + timing.first_meaningful_paint.value(), info, |
| + internal::kHistogramFirstMeaningfulPaintSuffix); |
| +} |
| + |
| void DataReductionProxyMetricsObserver::OnParseStart( |
| const page_load_metrics::PageLoadTiming& timing, |
| const page_load_metrics::PageLoadExtraInfo& info) { |
| RECORD_HISTOGRAMS_FOR_SUFFIX(data_, timing.parse_start, |
| timing.parse_start.value(), info, |
| internal::kHistogramParseStartSuffix); |
| } |
| void DataReductionProxyMetricsObserver::OnParseStop( |
| const page_load_metrics::PageLoadTiming& timing, |