Chromium Code Reviews| Index: chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.cc |
| diff --git a/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.cc |
| index de5dbfee5ba789709a29d469ddc0a744d3f6172e..71a6ae9683140c3353bd939f0aaf0834444db7b9 100644 |
| --- a/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.cc |
| +++ b/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.cc |
| @@ -2,20 +2,21 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| #include "chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.h" |
| #include <stddef.h> |
| #include <stdint.h> |
| #include <utility> |
| #include "chrome/browser/browser_process.h" |
| +#include "components/data_reduction_proxy/core/common/data_reduction_proxy_params.h" |
| #include "components/page_load_metrics/browser/page_load_metrics_util.h" |
| #include "components/rappor/rappor_service.h" |
| #include "components/rappor/rappor_utils.h" |
| namespace { |
| // The number of buckets in the bitfield histogram. These buckets are described |
| // in rappor.xml in PageLoad.CoarseTiming.NavigationToFirstContentfulPaint. |
| // The bucket flag is defined by 1 << bucket_index, and is the bitfield |
| // representing which timing bucket the page load falls into, i.e. 000010 |
| @@ -84,20 +85,28 @@ const char kHistogramFirstForeground[] = |
| const char kHistogramBackgroundBeforePaint[] = |
| "PageLoad.Timing2.NavigationToFirstBackground.AfterCommit.BeforePaint"; |
| const char kHistogramBackgroundBeforeCommit[] = |
| "PageLoad.Timing2.NavigationToFirstBackground.BeforeCommit"; |
| const char kHistogramFailedProvisionalLoad[] = |
| "PageLoad.Timing2.NavigationToFailedProvisionalLoad"; |
| const char kRapporMetricsNameCoarseTiming[] = |
| "PageLoad.CoarseTiming.NavigationToFirstContentfulPaint"; |
| +const char kHistogramFirstContentfulPaintDataReductionProxy[] = |
| + "PageLoad.Timing2.NavigationToFirstContentfulPaint_DataReductionProxy"; |
| +const char kHistogramFirstContentfulPaintDataReductionProxyAutoLofiOn[] = |
| + "PageLoad.Timing2.NavigationToFirstContentfulPaint_DataReductionProxy_" |
| + "AutoLoFiOn"; |
| +const char kHistogramFirstContentfulPaintDataReductionProxyAutoLofiOff[] = |
| + "PageLoad.Timing2.NavigationToFirstContentfulPaint_DataReductionProxy_" |
| + "AutoLofiOff"; |
| } // namespace internal |
| CorePageLoadMetricsObserver::CorePageLoadMetricsObserver() {} |
| CorePageLoadMetricsObserver::~CorePageLoadMetricsObserver() {} |
| void CorePageLoadMetricsObserver::OnComplete( |
| const page_load_metrics::PageLoadTiming& timing, |
| const page_load_metrics::PageLoadExtraInfo& info) { |
| RecordTimingHistograms(timing, info); |
| @@ -218,20 +227,42 @@ void CorePageLoadMetricsObserver::RecordTimingHistograms( |
| PAGE_LOAD_HISTOGRAM(internal::kHistogramFirstContentfulPaintHigh, |
| timing.first_contentful_paint); |
| } else { |
| PAGE_LOAD_HISTOGRAM(internal::kHistogramFirstContentfulPaintLow, |
| timing.first_contentful_paint); |
| } |
| } else { |
| PAGE_LOAD_HISTOGRAM(internal::kBackgroundHistogramFirstContentfulPaint, |
| timing.first_contentful_paint); |
| } |
| + if (info.was_fetched_via_data_reduction_proxy) { |
| + PAGE_LOAD_HISTOGRAM( |
| + internal::kHistogramFirstContentfulPaintDataReductionProxy, |
| + timing.first_contentful_paint); |
| + if (info.is_using_lofi) { |
| + bool in_lofi_enabled_group = |
|
bengr
2016/02/26 22:53:57
I'd get rid of these temporaries.
RyanSturm
2016/03/01 19:36:03
Done.
|
| + data_reduction_proxy::params::IsIncludedInLoFiEnabledFieldTrial(); |
| + bool in_lofi_control_group = |
| + data_reduction_proxy::params::IsIncludedInLoFiControlFieldTrial(); |
| + if (in_lofi_enabled_group) { |
| + PAGE_LOAD_HISTOGRAM( |
| + internal:: |
| + kHistogramFirstContentfulPaintDataReductionProxyAutoLofiOn, |
| + timing.first_contentful_paint); |
| + } else if (in_lofi_control_group) { |
| + PAGE_LOAD_HISTOGRAM( |
| + internal:: |
| + kHistogramFirstContentfulPaintDataReductionProxyAutoLofiOff, |
| + timing.first_contentful_paint); |
| + } |
| + } |
| + } |
| } |
| // Log time to first foreground / time to first background. Log counts that we |
| // started a relevant page load in the foreground / background. |
| if (!info.first_background_time.is_zero()) |
| PAGE_LOAD_HISTOGRAM(internal::kHistogramFirstBackground, |
| info.first_background_time); |
| else if (!info.first_foreground_time.is_zero()) |
| PAGE_LOAD_HISTOGRAM(internal::kHistogramFirstForeground, |
| info.first_foreground_time); |