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..657c670ec133f6719ff0e608aa17d8350221b244 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,10 @@ std::string GetHistogramName(Origin origin, uint8 experiment_id, |
return ComposeHistogramName("omnibox", name); |
case ORIGIN_LINK_REL_PRERENDER: |
return ComposeHistogramName("web", name); |
+ case ORIGIN_LOCAL_PREDICTOR: |
+ return ComposeHistogramName("local", name); |
+ case ORIGIN_NONE: |
+ return ComposeHistogramName("none", name); |
case ORIGIN_GWS_PRERENDER: // Handled above. |
default: |
NOTREACHED(); |
@@ -73,8 +73,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 +112,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 +179,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 +196,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 +206,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 +239,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 +291,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)) |
@@ -295,7 +302,9 @@ void PrerenderHistograms::RecordPageLoadTimeNotSwappedIn( |
} |
void PrerenderHistograms::RecordSimulatedLocalBrowsingBaselinePLT( |
- 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 do not record. |
if (!IsWebURL(url)) |
return; |
@@ -303,15 +312,17 @@ void PrerenderHistograms::RecordSimulatedLocalBrowsingBaselinePLT( |
} |
void PrerenderHistograms::RecordSimulatedLocalBrowsingPLT( |
- 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 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 +330,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 +340,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 +357,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,12 +401,6 @@ 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; |
@@ -411,9 +417,11 @@ void PrerenderHistograms::RecordLocalPredictorEvent( |
} |
void PrerenderHistograms::RecordLocalPredictorTimeUntilUsed( |
- base::TimeDelta time_until_used, base::TimeDelta max_age) const { |
+ Origin origin, |
mmenke
2012/10/08 18:20:07
The function name kinda implies the origin. Think
|
+ base::TimeDelta time_until_used, |
+ base::TimeDelta max_age) const { |
PREFIXED_HISTOGRAM( |
- "LocalPredictorTimeUntilUsed", |
+ "LocalPredictorTimeUntilUsed", origin, |
UMA_HISTOGRAM_CUSTOM_TIMES( |
name, |
time_until_used, |