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 |