Index: base/feature_list.h |
diff --git a/base/feature_list.h b/base/feature_list.h |
index 5091a330ad55bcbc5e5f53e86216716306c06f5d..39672632b0db26e65871433a984481751571329b 100644 |
--- a/base/feature_list.h |
+++ b/base/feature_list.h |
@@ -13,6 +13,7 @@ |
#include "base/basictypes.h" |
#include "base/gtest_prod_util.h" |
#include "base/memory/scoped_ptr.h" |
+#include "base/strings/string_piece.h" |
#include "base/synchronization/lock.h" |
namespace base { |
@@ -81,8 +82,10 @@ class BASE_EXPORT FeatureList { |
// Initializes feature overrides via command-line flags |enable_features| and |
// |disable_features|, each of which is a comma-separated list of features to |
// enable or disable, respectively. If a feature appears on both lists, then |
- // it will be disabled. Must only be invoked during the initialization phase |
- // (before FinalizeInitialization() has been called). |
+ // it will be disabled. If a list entry has the format "FeatureName<TrialName" |
+ // then this initialization will also associate the feature state override |
+ // with the named field trial, if it exists. Must only be invoked during the |
+ // initialization phase (before FinalizeInitialization() has been called). |
void InitializeFromCommandLine(const std::string& enable_features, |
const std::string& disable_features); |
@@ -119,8 +122,11 @@ class BASE_EXPORT FeatureList { |
// Returns comma-separated lists of feature names (in the same format that is |
// accepted by InitializeFromCommandLine()) corresponding to features that |
- // have been overridden - either through command-line or via FieldTrials. |
- // Must be called only after the instance has been initialized and registered. |
+ // have been overridden - either through command-line or via FieldTrials. For |
+ // those features that have an associated FieldTrial, the output entry will be |
+ // of the format "FeatureName<TrialName", where "TrialName" is the name of the |
+ // FieldTrial. Must be called only after the instance has been initialized and |
+ // registered. |
void GetFeatureOverrides(std::string* enable_overrides, |
std::string* disable_overrides); |
@@ -185,6 +191,13 @@ class BASE_EXPORT FeatureList { |
// Requires the FeatureList to have already been fully initialized. |
bool IsFeatureEnabled(const Feature& feature); |
+ // For each feature name in comma-separated list of strings |feature_list|, |
+ // registers an override with the specified |overridden_state|. Also, will |
+ // associate an optional named field trial if the entry is of the format |
+ // "FeatureName<TrialName". |
+ void RegisterOverridesFromCommandLine(const std::string& feature_list, |
+ OverrideState overridden_state); |
+ |
// Registers an override for feature |feature_name|. The override specifies |
// whether the feature should be on or off (via |overridden_state|), which |
// will take precedence over the feature's default state. If |field_trial| is |
@@ -192,7 +205,7 @@ class BASE_EXPORT FeatureList { |
// the feature, which will activate the field trial when the feature state is |
// queried. If an override is already registered for the given feature, it |
// will not be changed. |
- void RegisterOverride(const std::string& feature_name, |
+ void RegisterOverride(StringPiece feature_name, |
OverrideState overridden_state, |
FieldTrial* field_trial); |