| Index: chrome/browser/prerender/prerender_histograms.cc
|
| diff --git a/chrome/browser/prerender/prerender_histograms.cc b/chrome/browser/prerender/prerender_histograms.cc
|
| index 1e892bfd37ed016703bd6c054e454e89bb9c514d..60bf8349d832644b8078a03703ef5e0a6f443f68 100644
|
| --- a/chrome/browser/prerender/prerender_histograms.cc
|
| +++ b/chrome/browser/prerender/prerender_histograms.cc
|
| @@ -9,6 +9,7 @@
|
| #include "base/format_macros.h"
|
| #include "base/logging.h"
|
| #include "base/metrics/histogram.h"
|
| +#include "base/metrics/histogram_functions.h"
|
| #include "base/metrics/histogram_macros.h"
|
| #include "base/strings/stringprintf.h"
|
| #include "chrome/browser/prerender/prerender_manager.h"
|
| @@ -113,6 +114,10 @@ bool OriginIsOmnibox(Origin origin) {
|
| return origin == ORIGIN_OMNIBOX;
|
| }
|
|
|
| +const char* FirstContentfulPaintHiddenName(bool was_hidden) {
|
| + return was_hidden ? ".Hidden" : ".Visible";
|
| +}
|
| +
|
| } // namespace
|
|
|
| // Helper macros for origin-based histogram reporting. All HISTOGRAM arguments
|
| @@ -301,6 +306,16 @@ void PrerenderHistograms::RecordPerceivedPageLoadTime(
|
| }
|
| }
|
|
|
| +void PrerenderHistograms::RecordPerceivedFirstContentfulPaintStatus(
|
| + Origin origin,
|
| + bool successful,
|
| + bool was_hidden) {
|
| + base::UmaHistogramBoolean(
|
| + GetHistogramName(origin, IsOriginWash(), "PerceivedTTFCPRecorded") +
|
| + FirstContentfulPaintHiddenName(was_hidden),
|
| + successful);
|
| +}
|
| +
|
| void PrerenderHistograms::RecordPageLoadTimeNotSwappedIn(
|
| Origin origin,
|
| base::TimeDelta page_load_time,
|
| @@ -443,51 +458,45 @@ void PrerenderHistograms::RecordPrefetchRedirectCount(
|
| RecordHistogramEnum(histogram_name, redirect_count, kMaxRedirectCount);
|
| }
|
|
|
| -void PrerenderHistograms::RecordFirstContentfulPaint(
|
| +void PrerenderHistograms::RecordPrefetchFirstContentfulPaintTime(
|
| Origin origin,
|
| bool is_no_store,
|
| + bool was_hidden,
|
| base::TimeDelta time,
|
| base::TimeDelta prefetch_age) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
|
|
| if (!prefetch_age.is_zero()) {
|
| DCHECK_NE(origin, ORIGIN_NONE);
|
| - RecordHistogramTime(GetHistogramName(origin, IsOriginWash(),
|
| - "Prerender.NoStatePrefetchAge"),
|
| - base::TimeDelta::FromMilliseconds(10),
|
| - base::TimeDelta::FromMinutes(30), prefetch_age, 50);
|
| + RecordHistogramTime(
|
| + GetHistogramName(origin, IsOriginWash(), "Prerender.PrefetchAge"),
|
| + base::TimeDelta::FromMilliseconds(10), base::TimeDelta::FromMinutes(30),
|
| + prefetch_age, 50);
|
| }
|
|
|
| - RecordHistogramTime(GetFirstContentfulPaintHistogramName(
|
| - origin, IsOriginWash(), is_no_store, prefetch_age),
|
| - base::TimeDelta::FromMilliseconds(10),
|
| - base::TimeDelta::FromMinutes(2), time, 50);
|
| -}
|
| -
|
| -bool PrerenderHistograms::IsOriginWash() const {
|
| - if (!WithinWindow())
|
| - return false;
|
| - return origin_wash_;
|
| -}
|
| -
|
| -// static
|
| -std::string PrerenderHistograms::GetFirstContentfulPaintHistogramName(
|
| - Origin origin,
|
| - bool is_wash,
|
| - bool is_no_store,
|
| - base::TimeDelta prefetch_age) {
|
| std::string histogram_base_name;
|
| if (prefetch_age.is_zero()) {
|
| - histogram_base_name = "NoStatePrefetchTTFCP.Reference";
|
| + histogram_base_name = "PrefetchTTFCP.Reference";
|
| } else {
|
| histogram_base_name = prefetch_age < base::TimeDelta::FromMinutes(
|
| net::HttpCache::kPrefetchReuseMins)
|
| - ? "NoStatePrefetchTTFCP.Warm"
|
| - : "NoStatePrefetchTTFCP.Cold";
|
| + ? "PrefetchTTFCP.Warm"
|
| + : "PrefetchTTFCP.Cold";
|
| }
|
|
|
| histogram_base_name += is_no_store ? ".NoStore" : ".Cacheable";
|
| - return GetHistogramName(origin, is_wash, histogram_base_name);
|
| + histogram_base_name += FirstContentfulPaintHiddenName(was_hidden);
|
| + std::string histogram_name =
|
| + GetHistogramName(origin, IsOriginWash(), histogram_base_name);
|
| +
|
| + RecordHistogramTime(histogram_name, base::TimeDelta::FromMilliseconds(10),
|
| + base::TimeDelta::FromMinutes(2), time, 50);
|
| +}
|
| +
|
| +bool PrerenderHistograms::IsOriginWash() const {
|
| + if (!WithinWindow())
|
| + return false;
|
| + return origin_wash_;
|
| }
|
|
|
| } // namespace prerender
|
|
|