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

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: ... new tests, indent. 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..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
« no previous file with comments | « chrome/browser/prerender/prerender_histograms.h ('k') | chrome/browser/prerender/prerender_local_predictor.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698