| Index: chrome/browser/prerender/prerender_histograms.cc
|
| diff --git a/chrome/browser/prerender/prerender_histograms.cc b/chrome/browser/prerender/prerender_histograms.cc
|
| index 4e97663049a8d3e75b14b55e98a28ec60af7f2cc..398be3fb96ed06a6cc0619b29fc52bfbb55fac3d 100644
|
| --- a/chrome/browser/prerender/prerender_histograms.cc
|
| +++ b/chrome/browser/prerender/prerender_histograms.cc
|
| @@ -310,6 +310,16 @@ void PrerenderHistograms::RecordPerceivedPageLoadTime(
|
| }
|
| }
|
|
|
| +void PrerenderHistograms::RecordPerceivedFirstContentfulPaintStatus(
|
| + Origin origin,
|
| + bool successful,
|
| + bool was_hidden) {
|
| + RecordHistogramEnum(
|
| + GetHistogramName(origin, IsOriginWash(), "PerceivedTTFCPRecorded") +
|
| + FirstContentfulPaintHiddenName(was_hidden),
|
| + successful ? 1 : 0, 2);
|
| +}
|
| +
|
| void PrerenderHistograms::RecordPageLoadTimeNotSwappedIn(
|
| Origin origin,
|
| base::TimeDelta page_load_time,
|
| @@ -452,24 +462,38 @@ 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),
|
| + std::string histogram_base_name;
|
| + if (prefetch_age.is_zero()) {
|
| + histogram_base_name = "PrefetchTTFCP.Reference";
|
| + } else {
|
| + histogram_base_name = prefetch_age < base::TimeDelta::FromMinutes(
|
| + net::HttpCache::kPrefetchReuseMins)
|
| + ? "PrefetchTTFCP.Warm"
|
| + : "PrefetchTTFCP.Cold";
|
| + }
|
| +
|
| + histogram_base_name += is_no_store ? ".NoStore" : ".Cacheable";
|
| + 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);
|
| }
|
|
|
| @@ -479,24 +503,9 @@ bool PrerenderHistograms::IsOriginWash() const {
|
| 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";
|
| - } else {
|
| - histogram_base_name = prefetch_age < base::TimeDelta::FromMinutes(
|
| - net::HttpCache::kPrefetchReuseMins)
|
| - ? "NoStatePrefetchTTFCP.Warm"
|
| - : "NoStatePrefetchTTFCP.Cold";
|
| - }
|
| -
|
| - histogram_base_name += is_no_store ? ".NoStore" : ".Cacheable";
|
| - return GetHistogramName(origin, is_wash, histogram_base_name);
|
| +std::string PrerenderHistograms::FirstContentfulPaintHiddenName(
|
| + bool was_hidden) {
|
| + return was_hidden ? ".Hidden" : ".Visible";
|
| }
|
|
|
| } // namespace prerender
|
|
|