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

Unified Diff: base/metrics/field_trial.h

Issue 6213001: disable field trials if the build is 30 days or older (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: '' Created 9 years, 11 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
« no previous file with comments | « no previous file | base/metrics/field_trial.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/metrics/field_trial.h
===================================================================
--- base/metrics/field_trial.h (revision 70854)
+++ base/metrics/field_trial.h (working copy)
@@ -112,6 +112,18 @@
// number is used as the group name.
std::string group_name() const { return group_name_; }
+ // Return true if there is a default group with kAllRemainingProbability.
+ // all_remaining_probability_set_ is set to true when AppendGroup is called
+ // with kAllRemainingProbability as group probability. When MakeName is called
+ // we assert that all_remaining_probability_set_ is set to true.
+ bool all_remaining_probability_set() const {
+ return all_remaining_probability_set_;
+ }
+
+ // Set the usage_timeout from build time of the module to disable Field Trial.
+ void SetUsageTimeout(const base::TimeDelta& usage_timeout);
+ base::TimeDelta usage_timeout() const { return usage_timeout_; }
+
// Helper function for the most common use: as an argument to specifiy the
// name of a HISTOGRAM. Use the original histogram name as the name_prefix.
static std::string MakeName(const std::string& name_prefix,
@@ -125,6 +137,17 @@
virtual ~FieldTrial();
+ // Determine if the field trial is to be disabled or not based on
+ // usage_timeout_, build time of the module and Now(). This method sets
+ // disable_field_trial_ to true, if the difference between build time of the
+ // module and Now() is greater than usage_timeout_. If disable_field_trial_ is
+ // true then the field trial reverts to the 'default' bucket.
+ static bool ShouldFieldTrialBeDisabled(
+ const base::TimeDelta& usage_timeout);
+
+ // Get build time.
+ static Time GetBuildTime();
+
// The name of the field trial, as can be found via the FieldTrialList.
// This is empty of the trial is not in the experiment.
const std::string name_;
@@ -151,6 +174,17 @@
// If this Trial is not a member of an group, this string is empty.
std::string group_name_;
+ // Set to true if there is a default group with kAllRemainingProbability.
+ bool all_remaining_probability_set_;
+
+ // The default value (all remaining probabilities) can be selected after the
+ // usage_timeout, which is based on the build time of the module.
+ base::TimeDelta usage_timeout_;
+
+ // When disable_field_trial_ is true, field trial reverts to the 'default'
+ // bucket.
+ bool disable_field_trial_;
+
// When benchmarking is enabled, field trials all revert to the 'default'
// bucket.
static bool enable_benchmarking_;
« no previous file with comments | « no previous file | base/metrics/field_trial.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698