| Index: chrome/browser/prerender/prerender_histograms.cc
|
| diff --git a/chrome/browser/prerender/prerender_histograms.cc b/chrome/browser/prerender/prerender_histograms.cc
|
| index 5e75a03cef4eb5f2f4e4e699546b6a56382cd4e9..ced90b871758ec4d0b31c721d9883a288a732e27 100644
|
| --- a/chrome/browser/prerender/prerender_histograms.cc
|
| +++ b/chrome/browser/prerender/prerender_histograms.cc
|
| @@ -21,8 +21,10 @@ namespace prerender {
|
|
|
| namespace {
|
|
|
| -// Time window for which we will record windowed PLT's from the last
|
| -// observed link rel=prefetch tag.
|
| +// Time window for which we will record windowed PLTs from the last observed
|
| +// link rel=prefetch tag. This is not intended to be the same as the prerender
|
| +// ttl, it's just intended to be a window during which a prerender has likely
|
| +// affected performance.
|
| const int kWindowDurationSeconds = 30;
|
|
|
| std::string ComposeHistogramName(const std::string& prefix_type,
|
| @@ -52,6 +54,8 @@ std::string GetHistogramName(Origin origin, uint8 experiment_id,
|
| return ComposeHistogramName("omnibox", name);
|
| case ORIGIN_LINK_REL_PRERENDER:
|
| return ComposeHistogramName("web", name);
|
| + case ORIGIN_NONE:
|
| + return ComposeHistogramName("none", name);
|
| case ORIGIN_GWS_PRERENDER: // Handled above.
|
| default:
|
| NOTREACHED();
|
| @@ -73,8 +77,8 @@ bool OriginIsOmnibox(Origin origin) {
|
| // All HISTOGRAM arguments must be UMA_HISTOGRAM... macros that contain an
|
| // argument "name" which these macros will eventually substitute for the
|
| // actual name used.
|
| -#define PREFIXED_HISTOGRAM(histogram_name, HISTOGRAM) \
|
| - PREFIXED_HISTOGRAM_INTERNAL(GetCurrentOrigin(), GetCurrentExperimentId(), \
|
| +#define PREFIXED_HISTOGRAM(histogram_name, origin, HISTOGRAM) \
|
| + PREFIXED_HISTOGRAM_INTERNAL(origin, GetCurrentExperimentId(), \
|
| IsOriginExperimentWash(), HISTOGRAM, \
|
| histogram_name)
|
|
|
| @@ -105,6 +109,8 @@ bool OriginIsOmnibox(Origin origin) {
|
| HISTOGRAM; \
|
| } else if (origin == ORIGIN_OMNIBOX) { \
|
| HISTOGRAM; \
|
| + } else if (origin == ORIGIN_NONE) { \
|
| + HISTOGRAM; \
|
| } else if (experiment != kNoExperiment) { \
|
| HISTOGRAM; \
|
| } else { \
|
| @@ -178,13 +184,15 @@ void PrerenderHistograms::RecordUsedPrerender(Origin origin) const {
|
| }
|
|
|
| void PrerenderHistograms::RecordTimeSinceLastRecentVisit(
|
| + Origin origin,
|
| base::TimeDelta delta) const {
|
| PREFIXED_HISTOGRAM(
|
| - "TimeSinceLastRecentVisit",
|
| + "TimeSinceLastRecentVisit", origin,
|
| UMA_HISTOGRAM_TIMES(name, delta));
|
| }
|
|
|
| void PrerenderHistograms::RecordFractionPixelsFinalAtSwapin(
|
| + Origin origin,
|
| double fraction) const {
|
| if (fraction < 0.0 || fraction > 1.0)
|
| return;
|
| @@ -193,7 +201,7 @@ void PrerenderHistograms::RecordFractionPixelsFinalAtSwapin(
|
| return;
|
| PREFIXED_HISTOGRAM(
|
| base::FieldTrial::MakeName("FractionPixelsFinalAtSwapin", "Prerender"),
|
| - UMA_HISTOGRAM_PERCENTAGE(name, percentage));
|
| + origin, UMA_HISTOGRAM_PERCENTAGE(name, percentage));
|
| }
|
|
|
| base::TimeTicks PrerenderHistograms::GetCurrentTimeTicks() const {
|
| @@ -203,8 +211,8 @@ base::TimeTicks PrerenderHistograms::GetCurrentTimeTicks() const {
|
| // Helper macro for histograms.
|
| #define RECORD_PLT(tag, perceived_page_load_time) { \
|
| PREFIXED_HISTOGRAM( \
|
| - base::FieldTrial::MakeName(tag, "Prerender"), \
|
| - UMA_HISTOGRAM_CUSTOM_TIMES( \
|
| + base::FieldTrial::MakeName(tag, "Prerender"), origin, \
|
| + UMA_HISTOGRAM_CUSTOM_TIMES( \
|
| name, \
|
| perceived_page_load_time, \
|
| base::TimeDelta::FromMilliseconds(10), \
|
| @@ -236,7 +244,9 @@ base::TimeTicks PrerenderHistograms::GetCurrentTimeTicks() const {
|
| // FirstAfterMissNonOverlapping but NOT FirstAfterMiss
|
|
|
| void PrerenderHistograms::RecordPerceivedPageLoadTime(
|
| - base::TimeDelta perceived_page_load_time, bool was_prerender,
|
| + Origin origin,
|
| + base::TimeDelta perceived_page_load_time,
|
| + bool was_prerender,
|
| bool was_complete_prerender, const GURL& url) {
|
| if (!IsWebURL(url))
|
| return;
|
| @@ -286,7 +296,9 @@ void PrerenderHistograms::RecordPerceivedPageLoadTime(
|
| }
|
|
|
| void PrerenderHistograms::RecordPageLoadTimeNotSwappedIn(
|
| - base::TimeDelta page_load_time, const GURL& url) const {
|
| + Origin origin,
|
| + base::TimeDelta page_load_time,
|
| + const GURL& url) const {
|
| // If the URL to be prerendered is not a http[s] URL, or is a Google URL,
|
| // do not record.
|
| if (!IsWebURL(url) || IsGoogleDomain(url))
|
| @@ -294,24 +306,8 @@ void PrerenderHistograms::RecordPageLoadTimeNotSwappedIn(
|
| RECORD_PLT("PrerenderNotSwappedInPLT", page_load_time);
|
| }
|
|
|
| -void PrerenderHistograms::RecordSimulatedLocalBrowsingBaselinePLT(
|
| - base::TimeDelta page_load_time, const GURL& url) const {
|
| - // If the URL to be prerendered is not a http[s] URL do not record.
|
| - if (!IsWebURL(url))
|
| - return;
|
| - RECORD_PLT("SimulatedLocalBrowsingBaselinePLT", page_load_time);
|
| -}
|
| -
|
| -void PrerenderHistograms::RecordSimulatedLocalBrowsingPLT(
|
| - base::TimeDelta page_load_time, const GURL& url) const {
|
| - // If the URL to be prerendered is not a http[s] URL do not record.
|
| - if (!IsWebURL(url))
|
| - return;
|
| - RECORD_PLT("SimulatedLocalBrowsingPLT", page_load_time);
|
| -}
|
| -
|
| -void PrerenderHistograms::RecordPercentLoadDoneAtSwapin(double fraction)
|
| - const {
|
| +void PrerenderHistograms::RecordPercentLoadDoneAtSwapin(Origin origin,
|
| + double fraction) const {
|
| if (fraction < 0.0 || fraction > 1.0)
|
| return;
|
| int percentage = static_cast<int>(fraction * 100);
|
| @@ -319,7 +315,7 @@ void PrerenderHistograms::RecordPercentLoadDoneAtSwapin(double fraction)
|
| return;
|
| PREFIXED_HISTOGRAM(
|
| base::FieldTrial::MakeName("PercentLoadDoneAtSwapin", "Prerender"),
|
| - UMA_HISTOGRAM_PERCENTAGE(name, percentage));
|
| + origin, UMA_HISTOGRAM_PERCENTAGE(name, percentage));
|
| }
|
|
|
| base::TimeDelta PrerenderHistograms::GetTimeSinceLastPrerender() const {
|
| @@ -334,10 +330,11 @@ bool PrerenderHistograms::WithinWindow() const {
|
| }
|
|
|
| void PrerenderHistograms::RecordTimeUntilUsed(
|
| + Origin origin,
|
| base::TimeDelta time_until_used,
|
| base::TimeDelta time_to_live) const {
|
| PREFIXED_HISTOGRAM(
|
| - "TimeUntilUsed",
|
| + "TimeUntilUsed", origin,
|
| UMA_HISTOGRAM_CUSTOM_TIMES(
|
| name,
|
| time_until_used,
|
| @@ -346,16 +343,17 @@ void PrerenderHistograms::RecordTimeUntilUsed(
|
| 50));
|
| }
|
|
|
| -void PrerenderHistograms::RecordPerSessionCount(int count) const {
|
| +void PrerenderHistograms::RecordPerSessionCount(Origin origin,
|
| + int count) const {
|
| PREFIXED_HISTOGRAM(
|
| - "PrerendersPerSessionCount",
|
| + "PrerendersPerSessionCount", origin,
|
| UMA_HISTOGRAM_COUNTS(name, count));
|
| }
|
|
|
| void PrerenderHistograms::RecordTimeBetweenPrerenderRequests(
|
| - base::TimeDelta time) const {
|
| + Origin origin, base::TimeDelta time) const {
|
| PREFIXED_HISTOGRAM(
|
| - "TimeBetweenPrerenderRequests",
|
| + "TimeBetweenPrerenderRequests", origin,
|
| UMA_HISTOGRAM_TIMES(name, time));
|
| }
|
|
|
| @@ -389,37 +387,10 @@ uint8 PrerenderHistograms::GetCurrentExperimentId() const {
|
| return last_experiment_id_;
|
| }
|
|
|
| -Origin PrerenderHistograms::GetCurrentOrigin() const {
|
| - if (!WithinWindow())
|
| - return ORIGIN_LINK_REL_PRERENDER;
|
| - return last_origin_;
|
| -}
|
| -
|
| bool PrerenderHistograms::IsOriginExperimentWash() const {
|
| if (!WithinWindow())
|
| return false;
|
| return origin_experiment_wash_;
|
| }
|
|
|
| -void PrerenderHistograms::RecordLocalPredictorEvent(
|
| - PrerenderLocalPredictor::Event event) const {
|
| - UMA_HISTOGRAM_ENUMERATION(
|
| - ComposeHistogramName("", base::FieldTrial::MakeName(
|
| - "LocalPredictorEvent", "Prerender")),
|
| - event,
|
| - PrerenderLocalPredictor::EVENT_MAX_VALUE);
|
| -}
|
| -
|
| -void PrerenderHistograms::RecordLocalPredictorTimeUntilUsed(
|
| - base::TimeDelta time_until_used, base::TimeDelta max_age) const {
|
| - PREFIXED_HISTOGRAM(
|
| - "LocalPredictorTimeUntilUsed",
|
| - UMA_HISTOGRAM_CUSTOM_TIMES(
|
| - name,
|
| - time_until_used,
|
| - base::TimeDelta::FromMilliseconds(10),
|
| - max_age,
|
| - 50));
|
| -}
|
| -
|
| } // namespace prerender
|
|
|