| 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..f35a8d66dbf70b558afec1e5545bc10812ed472d 100644
|
| --- a/chrome/browser/prerender/prerender_histograms.cc
|
| +++ b/chrome/browser/prerender/prerender_histograms.cc
|
| @@ -21,10 +21,6 @@ namespace prerender {
|
|
|
| namespace {
|
|
|
| -// Time window for which we will record windowed PLT's from the last
|
| -// observed link rel=prefetch tag.
|
| -const int kWindowDurationSeconds = 30;
|
| -
|
| std::string ComposeHistogramName(const std::string& prefix_type,
|
| const std::string& name) {
|
| if (prefix_type.empty())
|
| @@ -52,6 +48,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 +71,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)
|
|
|
| @@ -112,10 +110,11 @@ bool OriginIsOmnibox(Origin origin) {
|
| } \
|
| }
|
|
|
| -PrerenderHistograms::PrerenderHistograms()
|
| +PrerenderHistograms::PrerenderHistograms(base::TimeDelta prerender_ttl)
|
| : last_experiment_id_(kNoExperiment),
|
| last_origin_(ORIGIN_LINK_REL_PRERENDER),
|
| origin_experiment_wash_(false),
|
| + prerender_ttl_(prerender_ttl),
|
| seen_any_pageload_(true),
|
| seen_pageload_started_after_prerender_(true) {
|
| }
|
| @@ -178,13 +177,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 +194,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,7 +204,7 @@ base::TimeTicks PrerenderHistograms::GetCurrentTimeTicks() const {
|
| // Helper macro for histograms.
|
| #define RECORD_PLT(tag, perceived_page_load_time) { \
|
| PREFIXED_HISTOGRAM( \
|
| - base::FieldTrial::MakeName(tag, "Prerender"), \
|
| + base::FieldTrial::MakeName(tag, "Prerender"), origin, \
|
| UMA_HISTOGRAM_CUSTOM_TIMES( \
|
| name, \
|
| perceived_page_load_time, \
|
| @@ -236,7 +237,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 +289,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 +299,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 +308,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 {
|
| @@ -329,15 +318,15 @@ base::TimeDelta PrerenderHistograms::GetTimeSinceLastPrerender() const {
|
| bool PrerenderHistograms::WithinWindow() const {
|
| if (last_prerender_seen_time_.is_null())
|
| return false;
|
| - return GetTimeSinceLastPrerender() <=
|
| - base::TimeDelta::FromSeconds(kWindowDurationSeconds);
|
| + return GetTimeSinceLastPrerender() <= prerender_ttl_;
|
| }
|
|
|
| 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 +335,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 +379,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
|
|
|