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..9593cb75c307940bc7366886364673eafc33712d 100644 |
| --- a/chrome/browser/prerender/prerender_histograms.cc |
| +++ b/chrome/browser/prerender/prerender_histograms.cc |
| @@ -113,6 +113,10 @@ bool OriginIsOmnibox(Origin origin) { |
| return origin == ORIGIN_OMNIBOX; |
| } |
| +std::string FirstContentfulPaintHiddenName(bool was_hidden) { |
|
pasko
2016/12/22 18:22:01
nit: const char* may be a tiny bit faster/economic
mattcary
2016/12/23 09:58:15
Done.
|
| + return was_hidden ? ".Hidden" : ".Visible"; |
| +} |
| + |
| } // namespace |
| // Helper macros for origin-based histogram reporting. All HISTOGRAM arguments |
| @@ -310,6 +314,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,51 +466,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 |