Chromium Code Reviews| 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") + |
|
pasko
2016/12/12 17:32:06
this suffix is not mentioned in histograms.xml
mattcary
2016/12/12 21:14:54
Oops, done.
What happens if the histogram is miss
pasko
2016/12/15 19:37:51
Yeah, I guess we could get some histograms verifie
|
| + 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 |