Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5302)

Unified Diff: chrome/browser/prerender/prerender_histograms.cc

Issue 11028037: Fix prerender histograms for multiple prerender case. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix windows build Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698