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

Unified Diff: chrome/browser/prerender/prerender_manager.h

Issue 7289020: Updating histograms to allow for experiments & log origin-based histograms. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 6 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_manager.h
===================================================================
--- chrome/browser/prerender/prerender_manager.h (revision 91002)
+++ chrome/browser/prerender/prerender_manager.h (working copy)
@@ -67,6 +67,9 @@
CLEAR_MAX = 0x1 << 2
};
+ // ID indicating that no experiment is active.
+ static const char kNoExperiment = -1;
dominich 2011/06/30 18:11:15 A uint8 set to static_cast<uint8>(-1) if you agree
tburkard 2011/06/30 19:45:48 Done.
+
// Owned by a Profile object for the lifetime of the profile.
PrerenderManager(Profile* profile, PrerenderTracker* prerender_tracker);
@@ -185,6 +188,11 @@
// Intended to be used when clearing the cache or history.
void ClearData(int clear_flags);
+ // Record a final status of a prerendered page in a histogram.
+ void RecordFinalStatus(Origin origin,
+ char experiment_id,
+ FinalStatus final_status) const;
+
protected:
// Test that needs needs access to internal functions.
FRIEND_TEST_ALL_PREFIXES(PrerenderManagerTest, ExpireTest);
@@ -205,6 +213,12 @@
static bool MaybeGetQueryStringBasedAliasURL(const GURL& url,
GURL* alias_url);
+ // Extracts an experiment stored in the query parameter
cbentzel 2011/06/30 18:15:39 Can we just combine this with MaybeGetQueryStringB
tburkard 2011/06/30 19:45:48 Since it's a local check that only prerendermanage
cbentzel 2011/06/30 19:51:28 The reason to move it out is the prerender_manager
+ // lpe= from the URL supplied, and returns it.
+ // Returns kNoExperiment if no experiment ID is found, or if the ID
+ // is not an integer in the range 0 to 9.
+ static char GetQueryStringBasedExperiment(const GURL& url);
+
base::TimeDelta max_prerender_age() const;
unsigned int max_elements() const;
@@ -258,7 +272,8 @@
virtual base::TimeTicks GetCurrentTimeTicks() const;
virtual PrerenderContents* CreatePrerenderContents(const GURL& url,
const GURL& referrer,
- Origin origin);
+ Origin origin,
+ char experiment_id);
// Checks if the PrerenderContents has been added to the pending delete list.
bool IsPendingDelete(PrerenderContents* entry) const;
@@ -322,6 +337,22 @@
// navigates to it. This must be called on the UI thread.
void RecordTimeUntilUsed(base::TimeDelta time_until_used);
+ // Composes a histogram name based on a histogram type.
dominich 2011/06/30 18:11:15 It doesn't look like these really need to be in th
tburkard 2011/06/30 19:45:48 Can I do the cleanup in a separate CL? This CL is
+ std::string ComposeHistogramName(std::string prefix_type,
+ std::string name) const;
+
+ // Returns the histogram name for a given origin and experiment.
+ std::string GetHistogramName(Origin origin, char experiment_id,
+ std::string name) const;
+ // Returns the histogram name for the current window.
+ std::string GetDefaultHistogramName(std::string name) const;
+ // Returns the current experiment.
+ char GetCurrentExperimentId() const;
+ // Returns the current origin.
+ Origin GetCurrentOrigin() const;
+ // Returns whether or not there is currently an origin/experiment wash.
+ bool IsOriginExperimentWash() const;
+
// Specifies whether prerendering is currently enabled for this
// manager. The value can change dynamically during the lifetime
// of the PrerenderManager.
@@ -363,6 +394,18 @@
static PrerenderManagerMode mode_;
+ // An integer indicating a Prerendering Experiment being currently conducted.
+ // (The last experiment ID seen).
+ char last_experiment_id_;
+
+ // Origin of the last prerender seen.
+ Origin last_origin_;
+
+ // A boolean indicating that we have recently encountered a combination of
+ // different experiments and origins, making an attribution of PPLT's to
+ // experiments / origins impossible.
+ bool origin_experiment_wash_;
+
// The time when we last saw a prerender request coming from a renderer.
// This is used to record perceived PLT's for a certain amount of time
// from the point that we last saw a <link rel=prerender> tag.

Powered by Google App Engine
This is Rietveld 408576698