Index: chrome/browser/about_flags.cc |
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc |
index 95affd34b13441bb31be64b57e7eb7d8a1a0233b..10e0f4b8906f05081e47d042ecd19ac0c0adc17d 100644 |
--- a/chrome/browser/about_flags.cc |
+++ b/chrome/browser/about_flags.cc |
@@ -56,9 +56,7 @@ |
#include "ui/native_theme/native_theme_switches.h" |
#include "ui/views/views_switches.h" |
-#if defined(OS_ANDROID) |
-#include "components/data_reduction_proxy/core/common/data_reduction_proxy_switches.h" |
-#else |
+#if !defined(OS_ANDROID) |
#include "ui/message_center/message_center_switches.h" |
#endif |
@@ -87,23 +85,24 @@ namespace about_flags { |
// Macros to simplify specifying the type. |
#define SINGLE_VALUE_TYPE_AND_VALUE(command_line_switch, switch_value) \ |
- Experiment::SINGLE_VALUE, \ |
+ FeatureEntry::SINGLE_VALUE, \ |
command_line_switch, switch_value, NULL, NULL, NULL, 0 |
#define SINGLE_VALUE_TYPE(command_line_switch) \ |
SINGLE_VALUE_TYPE_AND_VALUE(command_line_switch, "") |
#define SINGLE_DISABLE_VALUE_TYPE_AND_VALUE(command_line_switch, switch_value) \ |
- Experiment::SINGLE_DISABLE_VALUE, \ |
+ FeatureEntry::SINGLE_DISABLE_VALUE, \ |
command_line_switch, switch_value, NULL, NULL, NULL, 0 |
#define SINGLE_DISABLE_VALUE_TYPE(command_line_switch) \ |
SINGLE_DISABLE_VALUE_TYPE_AND_VALUE(command_line_switch, "") |
#define ENABLE_DISABLE_VALUE_TYPE_AND_VALUE(enable_switch, enable_value, \ |
disable_switch, disable_value) \ |
- Experiment::ENABLE_DISABLE_VALUE, enable_switch, enable_value, \ |
+ FeatureEntry::ENABLE_DISABLE_VALUE, enable_switch, enable_value, \ |
disable_switch, disable_value, NULL, 3 |
#define ENABLE_DISABLE_VALUE_TYPE(enable_switch, disable_switch) \ |
ENABLE_DISABLE_VALUE_TYPE_AND_VALUE(enable_switch, "", disable_switch, "") |
#define MULTI_VALUE_TYPE(choices) \ |
- Experiment::MULTI_VALUE, NULL, NULL, NULL, NULL, choices, arraysize(choices) |
+ FeatureEntry::MULTI_VALUE, NULL, NULL, NULL, NULL, choices, \ |
+ arraysize(choices) |
namespace { |
@@ -121,7 +120,7 @@ const unsigned kOsAll = kOsMac | kOsWin | kOsLinux | kOsCrOS | kOsAndroid; |
const unsigned kOsDesktop = kOsMac | kOsWin | kOsLinux | kOsCrOS; |
// Adds a |StringValue| to |list| for each platform where |bitmask| indicates |
-// whether the experiment is available on that platform. |
+// whether the entry is available on that platform. |
void AddOsStrings(unsigned bitmask, base::ListValue* list) { |
struct { |
unsigned bit; |
@@ -173,7 +172,7 @@ std::set<base::CommandLine::StringType> ExtractFlagsFromCommandLine( |
return flags; |
} |
-const Experiment::Choice kTouchEventsChoices[] = { |
+const FeatureEntry::Choice kTouchEventsChoices[] = { |
{ IDS_GENERIC_EXPERIMENT_CHOICE_AUTOMATIC, "", "" }, |
{ IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED, |
switches::kTouchEvents, |
@@ -184,7 +183,7 @@ const Experiment::Choice kTouchEventsChoices[] = { |
}; |
#if defined(USE_AURA) |
-const Experiment::Choice kOverscrollHistoryNavigationChoices[] = { |
+const FeatureEntry::Choice kOverscrollHistoryNavigationChoices[] = { |
{ IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED, "", "" }, |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED, |
switches::kOverscrollHistoryNavigation, |
@@ -195,7 +194,7 @@ const Experiment::Choice kOverscrollHistoryNavigationChoices[] = { |
}; |
#endif |
-const Experiment::Choice kTouchTextSelectionStrategyChoices[] = { |
+const FeatureEntry::Choice kTouchTextSelectionStrategyChoices[] = { |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, |
{ IDS_TOUCH_SELECTION_STRATEGY_CHARACTER, |
switches::kTouchTextSelectionStrategy, |
@@ -205,7 +204,7 @@ const Experiment::Choice kTouchTextSelectionStrategyChoices[] = { |
"direction" } |
}; |
-const Experiment::Choice kTraceUploadURL[] = { |
+const FeatureEntry::Choice kTraceUploadURL[] = { |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED, "", "" }, |
{ IDS_TRACE_UPLOAD_URL_CHOICE_OTHER, switches::kTraceUploadURL, |
"https://performance-insights.appspot.com/upload?tags=flags,Other"}, |
@@ -218,7 +217,7 @@ const Experiment::Choice kTraceUploadURL[] = { |
}; |
#if !defined(DISABLE_NACL) |
-const Experiment::Choice kNaClDebugMaskChoices[] = { |
+const FeatureEntry::Choice kNaClDebugMaskChoices[] = { |
// Secure shell can be used on ChromeOS for forwarding the TCP port opened by |
// debug stub to a remote machine. Since secure shell uses NaCl, we usually |
// want to avoid debugging that. The PNaCl translator is also a NaCl module, |
@@ -232,7 +231,7 @@ const Experiment::Choice kNaClDebugMaskChoices[] = { |
}; |
#endif |
-const Experiment::Choice kMarkNonSecureAsChoices[] = { |
+const FeatureEntry::Choice kMarkNonSecureAsChoices[] = { |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, |
{ IDS_MARK_NON_SECURE_AS_NEUTRAL, |
switches::kMarkNonSecureAs, switches::kMarkNonSecureAsNeutral}, |
@@ -240,7 +239,7 @@ const Experiment::Choice kMarkNonSecureAsChoices[] = { |
switches::kMarkNonSecureAs, switches::kMarkNonSecureAsNonSecure} |
}; |
-const Experiment::Choice kDataReductionProxyLoFiChoices[] = { |
+const FeatureEntry::Choice kDataReductionProxyLoFiChoices[] = { |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, |
{ IDS_FLAGS_DATA_REDUCTION_PROXY_LO_FI_ALWAYS_ON, |
data_reduction_proxy::switches::kDataReductionProxyLoFi, |
@@ -258,7 +257,7 @@ const Experiment::Choice kDataReductionProxyLoFiChoices[] = { |
kDataReductionProxyLoFiValueSlowConnectionsOnly} |
}; |
-const Experiment::Choice kShowSavedCopyChoices[] = { |
+const FeatureEntry::Choice kShowSavedCopyChoices[] = { |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, |
{ IDS_FLAGS_ENABLE_SHOW_SAVED_COPY_PRIMARY, |
switches::kShowSavedCopy, switches::kEnableShowSavedCopyPrimary }, |
@@ -268,7 +267,7 @@ const Experiment::Choice kShowSavedCopyChoices[] = { |
switches::kShowSavedCopy, switches::kDisableShowSavedCopy } |
}; |
-const Experiment::Choice kDefaultTileWidthChoices[] = { |
+const FeatureEntry::Choice kDefaultTileWidthChoices[] = { |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, |
{ IDS_FLAGS_DEFAULT_TILE_WIDTH_SHORT, |
switches::kDefaultTileWidth, "128"}, |
@@ -280,7 +279,7 @@ const Experiment::Choice kDefaultTileWidthChoices[] = { |
switches::kDefaultTileWidth, "1024"} |
}; |
-const Experiment::Choice kDefaultTileHeightChoices[] = { |
+const FeatureEntry::Choice kDefaultTileHeightChoices[] = { |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, |
{ IDS_FLAGS_DEFAULT_TILE_HEIGHT_SHORT, |
switches::kDefaultTileHeight, "128"}, |
@@ -292,7 +291,7 @@ const Experiment::Choice kDefaultTileHeightChoices[] = { |
switches::kDefaultTileHeight, "1024"} |
}; |
-const Experiment::Choice kSimpleCacheBackendChoices[] = { |
+const FeatureEntry::Choice kSimpleCacheBackendChoices[] = { |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED, |
switches::kUseSimpleCacheBackend, "off" }, |
@@ -301,7 +300,7 @@ const Experiment::Choice kSimpleCacheBackendChoices[] = { |
}; |
#if defined(USE_AURA) |
-const Experiment::Choice kTabCaptureUpscaleQualityChoices[] = { |
+const FeatureEntry::Choice kTabCaptureUpscaleQualityChoices[] = { |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, |
{ IDS_FLAGS_TAB_CAPTURE_SCALE_QUALITY_FAST, |
switches::kTabCaptureUpscaleQuality, "fast" }, |
@@ -311,7 +310,7 @@ const Experiment::Choice kTabCaptureUpscaleQualityChoices[] = { |
switches::kTabCaptureUpscaleQuality, "best" }, |
}; |
-const Experiment::Choice kTabCaptureDownscaleQualityChoices[] = { |
+const FeatureEntry::Choice kTabCaptureDownscaleQualityChoices[] = { |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, |
{ IDS_FLAGS_TAB_CAPTURE_SCALE_QUALITY_FAST, |
switches::kTabCaptureDownscaleQuality, "fast" }, |
@@ -323,7 +322,7 @@ const Experiment::Choice kTabCaptureDownscaleQualityChoices[] = { |
#endif |
#if defined(OS_ANDROID) |
-const Experiment::Choice kReaderModeHeuristicsChoices[] = { |
+const FeatureEntry::Choice kReaderModeHeuristicsChoices[] = { |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", ""}, |
{ IDS_FLAGS_READER_MODE_HEURISTICS_MARKUP, |
switches::kReaderModeHeuristics, |
@@ -340,7 +339,7 @@ const Experiment::Choice kReaderModeHeuristicsChoices[] = { |
}; |
#endif |
-const Experiment::Choice kNumRasterThreadsChoices[] = { |
+const FeatureEntry::Choice kNumRasterThreadsChoices[] = { |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, |
{ IDS_FLAGS_NUM_RASTER_THREADS_ONE, switches::kNumRasterThreads, "1" }, |
{ IDS_FLAGS_NUM_RASTER_THREADS_TWO, switches::kNumRasterThreads, "2" }, |
@@ -348,7 +347,7 @@ const Experiment::Choice kNumRasterThreadsChoices[] = { |
{ IDS_FLAGS_NUM_RASTER_THREADS_FOUR, switches::kNumRasterThreads, "4" } |
}; |
-const Experiment::Choice kGpuRasterizationMSAASampleCountChoices[] = { |
+const FeatureEntry::Choice kGpuRasterizationMSAASampleCountChoices[] = { |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, |
"", |
"" }, |
@@ -364,7 +363,7 @@ const Experiment::Choice kGpuRasterizationMSAASampleCountChoices[] = { |
switches::kGpuRasterizationMSAASampleCount, "16" }, |
}; |
-const Experiment::Choice kEnableGpuRasterizationChoices[] = { |
+const FeatureEntry::Choice kEnableGpuRasterizationChoices[] = { |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, |
{ IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED, |
switches::kEnableGpuRasterization, "" }, |
@@ -375,7 +374,7 @@ const Experiment::Choice kEnableGpuRasterizationChoices[] = { |
}; |
#if defined(OS_CHROMEOS) |
-const Experiment::Choice kMemoryPressureThresholdChoices[] = { |
+const FeatureEntry::Choice kMemoryPressureThresholdChoices[] = { |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, |
{ IDS_FLAGS_CONSERVATIVE_THRESHOLDS, |
chromeos::switches::kMemoryPressureThresholds, |
@@ -392,7 +391,7 @@ const Experiment::Choice kMemoryPressureThresholdChoices[] = { |
}; |
#endif |
-const Experiment::Choice kExtensionContentVerificationChoices[] = { |
+const FeatureEntry::Choice kExtensionContentVerificationChoices[] = { |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, |
{ IDS_FLAGS_EXTENSION_CONTENT_VERIFICATION_BOOTSTRAP, |
switches::kExtensionContentVerification, |
@@ -405,7 +404,7 @@ const Experiment::Choice kExtensionContentVerificationChoices[] = { |
switches::kExtensionContentVerificationEnforceStrict }, |
}; |
-const Experiment::Choice kAutofillSyncCredentialChoices[] = { |
+const FeatureEntry::Choice kAutofillSyncCredentialChoices[] = { |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", ""}, |
{ IDS_ALLOW_AUTOFILL_SYNC_CREDENTIAL, |
password_manager::switches::kAllowAutofillSyncCredential, ""}, |
@@ -415,7 +414,7 @@ const Experiment::Choice kAutofillSyncCredentialChoices[] = { |
password_manager::switches::kDisallowAutofillSyncCredential, ""}, |
}; |
-const Experiment::Choice kFillOnAccountSelectChoices[] = { |
+const FeatureEntry::Choice kFillOnAccountSelectChoices[] = { |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED, |
autofill::switches::kDisableFillOnAccountSelect, "" }, |
@@ -426,7 +425,7 @@ const Experiment::Choice kFillOnAccountSelectChoices[] = { |
}; |
#if defined(ENABLE_TOPCHROME_MD) |
-const Experiment::Choice kTopChromeMaterialDesignChoices[] = { |
+const FeatureEntry::Choice kTopChromeMaterialDesignChoices[] = { |
{IDS_FLAGS_TOP_CHROME_MD_NON_MATERIAL, "", ""}, |
{IDS_FLAGS_TOP_CHROME_MD_MATERIAL, |
switches::kTopChromeMD, |
@@ -437,7 +436,7 @@ const Experiment::Choice kTopChromeMaterialDesignChoices[] = { |
#endif |
#if defined(OS_CHROMEOS) |
-const Experiment::Choice kAshMaterialDesignInkDropAnimationSpeed[] = { |
+const FeatureEntry::Choice kAshMaterialDesignInkDropAnimationSpeed[] = { |
{IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", ""}, |
{IDS_FLAGS_MATERIAL_DESIGN_INK_DROP_ANIMATION_FAST, |
switches::kMaterialDesignInkDropAnimationSpeed, |
@@ -446,7 +445,7 @@ const Experiment::Choice kAshMaterialDesignInkDropAnimationSpeed[] = { |
switches::kMaterialDesignInkDropAnimationSpeed, |
switches::kMaterialDesignInkDropAnimationSpeedSlow}}; |
-const Experiment::Choice kDataSaverPromptChoices[] = { |
+const FeatureEntry::Choice kDataSaverPromptChoices[] = { |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, |
{ IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED, |
chromeos::switches::kEnableDataSaverPrompt, "" }, |
@@ -457,7 +456,7 @@ const Experiment::Choice kDataSaverPromptChoices[] = { |
chromeos::switches::kDataSaverPromptDemoMode }, |
}; |
-const Experiment::Choice kFloatingVirtualKeyboardChoices[] = { |
+const FeatureEntry::Choice kFloatingVirtualKeyboardChoices[] = { |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED, |
keyboard::switches::kFloatingVirtualKeyboard, |
@@ -467,7 +466,7 @@ const Experiment::Choice kFloatingVirtualKeyboardChoices[] = { |
keyboard::switches::kFloatingVirtualKeyboardEnabled}, |
}; |
-const Experiment::Choice kSmartVirtualKeyboardChoices[] = { |
+const FeatureEntry::Choice kSmartVirtualKeyboardChoices[] = { |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED, |
keyboard::switches::kSmartVirtualKeyboard, |
@@ -477,7 +476,7 @@ const Experiment::Choice kSmartVirtualKeyboardChoices[] = { |
keyboard::switches::kSmartVirtualKeyboardEnabled}, |
}; |
-const Experiment::Choice kGestureTypingChoices[] = { |
+const FeatureEntry::Choice kGestureTypingChoices[] = { |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED, |
keyboard::switches::kGestureTyping, |
@@ -487,7 +486,7 @@ const Experiment::Choice kGestureTypingChoices[] = { |
keyboard::switches::kGestureTypingEnabled}, |
}; |
-const Experiment::Choice kGestureEditingChoices[] = { |
+const FeatureEntry::Choice kGestureEditingChoices[] = { |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED, |
keyboard::switches::kGestureEditing, |
@@ -497,7 +496,7 @@ const Experiment::Choice kGestureEditingChoices[] = { |
keyboard::switches::kGestureEditingEnabled}, |
}; |
-const Experiment::Choice kDownloadNotificationChoices[] = { |
+const FeatureEntry::Choice kDownloadNotificationChoices[] = { |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, |
{ IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED, |
switches::kEnableDownloadNotification, |
@@ -508,7 +507,7 @@ const Experiment::Choice kDownloadNotificationChoices[] = { |
}; |
#endif |
-const Experiment::Choice kSupervisedUserSafeSitesChoices[] = { |
+const FeatureEntry::Choice kSupervisedUserSafeSitesChoices[] = { |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, |
{ IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED, |
switches::kSupervisedUserSafeSites, |
@@ -524,7 +523,7 @@ const Experiment::Choice kSupervisedUserSafeSitesChoices[] = { |
"online-check-only" } |
}; |
-const Experiment::Choice kV8CacheOptionsChoices[] = { |
+const FeatureEntry::Choice kV8CacheOptionsChoices[] = { |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED, switches::kV8CacheOptions, "none" }, |
{ IDS_FLAGS_V8_CACHE_OPTIONS_PARSE, switches::kV8CacheOptions, "parse" }, |
@@ -532,7 +531,7 @@ const Experiment::Choice kV8CacheOptionsChoices[] = { |
}; |
#if defined(OS_ANDROID) |
-const Experiment::Choice kProgressBarAnimationChoices[] = { |
+const FeatureEntry::Choice kProgressBarAnimationChoices[] = { |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, |
{ IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED, |
switches::kProgressBarAnimation, "disabled" }, |
@@ -546,7 +545,7 @@ const Experiment::Choice kProgressBarAnimationChoices[] = { |
#endif // defined(OS_ANDROID) |
#if defined(OS_CHROMEOS) |
-const Experiment::Choice kCrosRegionsModeChoices[] = { |
+const FeatureEntry::Choice kCrosRegionsModeChoices[] = { |
{ IDS_FLAGS_CROS_REGIONS_MODE_DEFAULT, "", "" }, |
{ IDS_FLAGS_CROS_REGIONS_MODE_OVERRIDE, chromeos::switches::kCrosRegionsMode, |
chromeos::switches::kCrosRegionsModeOverride }, |
@@ -556,7 +555,7 @@ const Experiment::Choice kCrosRegionsModeChoices[] = { |
#endif // defined(OS_CHROMEOS) |
#if defined(OS_WIN) |
-const Experiment::Choice kPpapiWin32kLockdown[] = { |
+const FeatureEntry::Choice kPpapiWin32kLockdown[] = { |
{IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", ""}, |
{IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED, |
switches::kEnableWin32kLockDownMimeTypes, ""}, |
@@ -577,9 +576,9 @@ const Experiment::Choice kPpapiWin32kLockdown[] = { |
// RECORDING USER METRICS FOR FLAGS: |
// ----------------------------------------------------------------------------- |
-// The first line of the experiment is the internal name. If you'd like to |
-// gather statistics about the usage of your flag, you should append a marker |
-// comment to the end of the feature name, like so: |
+// The first line of the entry is the internal name. If you'd like to gather |
+// statistics about the usage of your flag, you should append a marker comment |
+// to the end of the feature name, like so: |
// "my-special-feature", // FLAGS:RECORD_UMA |
// |
// After doing that, run |
@@ -600,22 +599,22 @@ const Experiment::Choice kPpapiWin32kLockdown[] = { |
// whereas running with the flag enabled happens until the user flips the flag |
// again. |
-// To add a new experiment add to the end of kExperiments. There are two |
-// distinct types of experiments: |
-// . SINGLE_VALUE: experiment is either on or off. Use the SINGLE_VALUE_TYPE |
+// To add a new entry, add to the end of kFeatureEntries. There are two |
+// distinct types of entries: |
+// . SINGLE_VALUE: entry is either on or off. Use the SINGLE_VALUE_TYPE |
// macro for this type supplying the command line to the macro. |
// . MULTI_VALUE: a list of choices, the first of which should correspond to a |
// deactivated state for this lab (i.e. no command line option). To specify |
-// this type of experiment use the macro MULTI_VALUE_TYPE supplying it the |
+// this type of entry use the macro MULTI_VALUE_TYPE supplying it the |
// array of choices. |
-// See the documentation of Experiment for details on the fields. |
+// See the documentation of FeatureEntry for details on the fields. |
// |
// Command-line switches must have entries in enum "LoginCustomFlags" in |
// histograms.xml. See note in histograms.xml and don't forget to run |
// AboutFlagsHistogramTest unit test to calculate and verify checksum. |
// |
// When adding a new choice, add it to the end of the list. |
-const Experiment kExperiments[] = { |
+const FeatureEntry kFeatureEntries[] = { |
{"ignore-gpu-blacklist", |
IDS_FLAGS_IGNORE_GPU_BLACKLIST_NAME, |
IDS_FLAGS_IGNORE_GPU_BLACKLIST_DESCRIPTION, |
@@ -2127,8 +2126,8 @@ const Experiment kExperiments[] = { |
// histograms.xml and don't forget to run AboutFlagsHistogramTest unit test. |
}; |
-const Experiment* experiments = kExperiments; |
-size_t num_experiments = arraysize(kExperiments); |
+const FeatureEntry* g_entries = kFeatureEntries; |
+size_t g_num_entries = arraysize(kFeatureEntries); |
// Stores and encapsulates the little state that about:flags has. |
class FlagsState { |
@@ -2138,7 +2137,7 @@ class FlagsState { |
base::CommandLine* command_line, |
SentinelsMode sentinels); |
bool IsRestartNeededToCommitChanges(); |
- void SetExperimentEnabled(flags_ui::FlagsStorage* flags_storage, |
+ void SetFeatureEntryEnabled(flags_ui::FlagsStorage* flags_storage, |
const std::string& internal_name, |
bool enable); |
void RemoveFlagsSwitches( |
@@ -2158,35 +2157,35 @@ class FlagsState { |
DISALLOW_COPY_AND_ASSIGN(FlagsState); |
}; |
-// Adds the internal names for the specified experiment to |names|. |
-void AddInternalName(const Experiment& e, std::set<std::string>* names) { |
- if (e.type == Experiment::SINGLE_VALUE || |
- e.type == Experiment::SINGLE_DISABLE_VALUE) { |
+// Adds the internal names for the specified entry to |names|. |
+void AddInternalName(const FeatureEntry& e, std::set<std::string>* names) { |
+ if (e.type == FeatureEntry::SINGLE_VALUE || |
+ e.type == FeatureEntry::SINGLE_DISABLE_VALUE) { |
names->insert(e.internal_name); |
} else { |
- DCHECK(e.type == Experiment::MULTI_VALUE || |
- e.type == Experiment::ENABLE_DISABLE_VALUE); |
+ DCHECK(e.type == FeatureEntry::MULTI_VALUE || |
+ e.type == FeatureEntry::ENABLE_DISABLE_VALUE); |
for (int i = 0; i < e.num_choices; ++i) |
names->insert(e.NameForChoice(i)); |
} |
} |
-// Confirms that an experiment is valid, used in a DCHECK in |
+// Confirms that an entry is valid, used in a DCHECK in |
// SanitizeList below. |
-bool ValidateExperiment(const Experiment& e) { |
+bool ValidateFeatureEntry(const FeatureEntry& e) { |
switch (e.type) { |
- case Experiment::SINGLE_VALUE: |
- case Experiment::SINGLE_DISABLE_VALUE: |
+ case FeatureEntry::SINGLE_VALUE: |
+ case FeatureEntry::SINGLE_DISABLE_VALUE: |
DCHECK_EQ(0, e.num_choices); |
DCHECK(!e.choices); |
break; |
- case Experiment::MULTI_VALUE: |
+ case FeatureEntry::MULTI_VALUE: |
DCHECK_GT(e.num_choices, 0); |
DCHECK(e.choices); |
DCHECK(e.choices[0].command_line_switch); |
DCHECK_EQ('\0', e.choices[0].command_line_switch[0]); |
break; |
- case Experiment::ENABLE_DISABLE_VALUE: |
+ case FeatureEntry::ENABLE_DISABLE_VALUE: |
DCHECK_EQ(3, e.num_choices); |
DCHECK(!e.choices); |
DCHECK(e.command_line_switch); |
@@ -2200,24 +2199,24 @@ bool ValidateExperiment(const Experiment& e) { |
return true; |
} |
-// Removes all experiments from prefs::kEnabledLabsExperiments that are |
-// unknown, to prevent this list to become very long as experiments are added |
+// Removes all entries from prefs::kEnabledLabsExperiments that are |
+// unknown, to prevent this list to become very long as entries are added |
// and removed. |
void SanitizeList(flags_ui::FlagsStorage* flags_storage) { |
- std::set<std::string> known_experiments; |
- for (size_t i = 0; i < num_experiments; ++i) { |
- DCHECK(ValidateExperiment(experiments[i])); |
- AddInternalName(experiments[i], &known_experiments); |
+ std::set<std::string> known_entries; |
+ for (size_t i = 0; i < g_num_entries; ++i) { |
+ DCHECK(ValidateFeatureEntry(g_entries[i])); |
+ AddInternalName(g_entries[i], &known_entries); |
} |
- std::set<std::string> enabled_experiments = flags_storage->GetFlags(); |
+ std::set<std::string> enabled_entries = flags_storage->GetFlags(); |
- std::set<std::string> new_enabled_experiments = |
+ std::set<std::string> new_enabled_entries = |
base::STLSetIntersection<std::set<std::string> >( |
- known_experiments, enabled_experiments); |
+ known_entries, enabled_entries); |
- if (new_enabled_experiments != enabled_experiments) |
- flags_storage->SetFlags(new_enabled_experiments); |
+ if (new_enabled_entries != enabled_entries) |
+ flags_storage->SetFlags(new_enabled_entries); |
} |
void GetSanitizedEnabledFlags(flags_ui::FlagsStorage* flags_storage, |
@@ -2226,25 +2225,25 @@ void GetSanitizedEnabledFlags(flags_ui::FlagsStorage* flags_storage, |
*result = flags_storage->GetFlags(); |
} |
-bool SkipConditionalExperiment(const Experiment& experiment) { |
+bool SkipConditionalFeatureEntry(const FeatureEntry& entry) { |
version_info::Channel channel = chrome::GetChannel(); |
#if defined(OS_ANDROID) |
// enable-data-reduction-proxy-dev is only available for the Dev/Beta channel. |
- if (!strcmp("enable-data-reduction-proxy-dev", experiment.internal_name) && |
+ if (!strcmp("enable-data-reduction-proxy-dev", entry.internal_name) && |
channel != version_info::Channel::BETA && |
channel != version_info::Channel::DEV) { |
return true; |
} |
// enable-data-reduction-proxy-alt is only available for the Dev channel. |
- if (!strcmp("enable-data-reduction-proxy-alt", experiment.internal_name) && |
+ if (!strcmp("enable-data-reduction-proxy-alt", entry.internal_name) && |
channel != version_info::Channel::DEV) { |
return true; |
} |
// enable-data-reduction-proxy-carrier-test is only available for Chromium |
// builds and the Canary/Dev channel. |
if (!strcmp("enable-data-reduction-proxy-carrier-test", |
- experiment.internal_name) && |
+ entry.internal_name) && |
channel != version_info::Channel::DEV && |
channel != version_info::Channel::CANARY && |
channel != version_info::Channel::UNKNOWN) { |
@@ -2254,7 +2253,7 @@ bool SkipConditionalExperiment(const Experiment& experiment) { |
// data-reduction-proxy-lo-fi is only available for Chromium builds and |
// the Canary/Dev/Beta channels. |
- if (!strcmp("data-reduction-proxy-lo-fi", experiment.internal_name) && |
+ if (!strcmp("data-reduction-proxy-lo-fi", entry.internal_name) && |
channel != version_info::Channel::BETA && |
channel != version_info::Channel::DEV && |
channel != version_info::Channel::CANARY && |
@@ -2265,7 +2264,7 @@ bool SkipConditionalExperiment(const Experiment& experiment) { |
// enable-data-reduction-proxy-config-client is only available for Chromium |
// builds and the Canary/Dev channels. |
if (!strcmp("enable-data-reduction-proxy-config-client", |
- experiment.internal_name) && |
+ entry.internal_name) && |
channel != version_info::Channel::DEV && |
channel != version_info::Channel::CANARY && |
channel != version_info::Channel::UNKNOWN) { |
@@ -2276,7 +2275,7 @@ bool SkipConditionalExperiment(const Experiment& experiment) { |
// enable-data-reduction-proxy-bypass-warning is only available for Chromium |
// builds and Canary/Dev channel. |
if (!strcmp("enable-data-reduction-proxy-bypass-warnings", |
- experiment.internal_name) && |
+ entry.internal_name) && |
channel != version_info::Channel::UNKNOWN && |
channel != version_info::Channel::CANARY && |
channel != version_info::Channel::DEV) { |
@@ -2295,39 +2294,40 @@ void GetSanitizedEnabledFlagsForCurrentPlatform( |
std::set<std::string>* result) { |
GetSanitizedEnabledFlags(flags_storage, result); |
- // Filter out any experiments that aren't enabled on the current platform. We |
+ // Filter out any entries that aren't enabled on the current platform. We |
// don't remove these from prefs else syncing to a platform with a different |
- // set of experiments would be lossy. |
- std::set<std::string> platform_experiments; |
+ // set of entries would be lossy. |
+ std::set<std::string> platform_entries; |
int current_platform = GetCurrentPlatform(); |
- for (size_t i = 0; i < num_experiments; ++i) { |
- if (experiments[i].supported_platforms & current_platform) |
- AddInternalName(experiments[i], &platform_experiments); |
+ for (size_t i = 0; i < g_num_entries; ++i) { |
+ const FeatureEntry& entry = g_entries[i]; |
+ if (entry.supported_platforms & current_platform) |
+ AddInternalName(entry, &platform_entries); |
#if defined(OS_CHROMEOS) |
- if (experiments[i].supported_platforms & kOsCrOSOwnerOnly) |
- AddInternalName(experiments[i], &platform_experiments); |
+ if (g_entries[i].supported_platforms & kOsCrOSOwnerOnly) |
+ AddInternalName(entry, &platform_entries); |
#endif |
} |
- std::set<std::string> new_enabled_experiments = |
+ std::set<std::string> new_enabled_entries = |
base::STLSetIntersection<std::set<std::string> >( |
- platform_experiments, *result); |
+ platform_entries, *result); |
- result->swap(new_enabled_experiments); |
+ result->swap(new_enabled_entries); |
} |
-// Returns true if none of this experiment's options have been enabled. |
+// Returns true if none of this entry's options have been enabled. |
bool IsDefaultValue( |
- const Experiment& experiment, |
- const std::set<std::string>& enabled_experiments) { |
- switch (experiment.type) { |
- case Experiment::SINGLE_VALUE: |
- case Experiment::SINGLE_DISABLE_VALUE: |
- return enabled_experiments.count(experiment.internal_name) == 0; |
- case Experiment::MULTI_VALUE: |
- case Experiment::ENABLE_DISABLE_VALUE: |
- for (int i = 0; i < experiment.num_choices; ++i) { |
- if (enabled_experiments.count(experiment.NameForChoice(i)) > 0) |
+ const FeatureEntry& entry, |
+ const std::set<std::string>& enabled_entries) { |
+ switch (entry.type) { |
+ case FeatureEntry::SINGLE_VALUE: |
+ case FeatureEntry::SINGLE_DISABLE_VALUE: |
+ return enabled_entries.count(entry.internal_name) == 0; |
+ case FeatureEntry::MULTI_VALUE: |
+ case FeatureEntry::ENABLE_DISABLE_VALUE: |
+ for (int i = 0; i < entry.num_choices; ++i) { |
+ if (enabled_entries.count(entry.NameForChoice(i)) > 0) |
return false; |
} |
break; |
@@ -2337,19 +2337,19 @@ bool IsDefaultValue( |
return true; |
} |
-// Returns the Value representing the choice data in the specified experiment. |
+// Returns the Value representing the choice data in the specified entry. |
base::Value* CreateChoiceData( |
- const Experiment& experiment, |
- const std::set<std::string>& enabled_experiments) { |
- DCHECK(experiment.type == Experiment::MULTI_VALUE || |
- experiment.type == Experiment::ENABLE_DISABLE_VALUE); |
+ const FeatureEntry& entry, |
+ const std::set<std::string>& enabled_entries) { |
+ DCHECK(entry.type == FeatureEntry::MULTI_VALUE || |
+ entry.type == FeatureEntry::ENABLE_DISABLE_VALUE); |
base::ListValue* result = new base::ListValue; |
- for (int i = 0; i < experiment.num_choices; ++i) { |
+ for (int i = 0; i < entry.num_choices; ++i) { |
base::DictionaryValue* value = new base::DictionaryValue; |
- const std::string name = experiment.NameForChoice(i); |
+ const std::string name = entry.NameForChoice(i); |
value->SetString("internal_name", name); |
- value->SetString("description", experiment.DescriptionForChoice(i)); |
- value->SetBoolean("selected", enabled_experiments.count(name) > 0); |
+ value->SetString("description", entry.DescriptionForChoice(i)); |
+ value->SetBoolean("selected", enabled_entries.count(name) > 0); |
result->Append(value); |
} |
return result; |
@@ -2357,20 +2357,20 @@ base::Value* CreateChoiceData( |
} // namespace |
-std::string Experiment::NameForChoice(int index) const { |
- DCHECK(type == Experiment::MULTI_VALUE || |
- type == Experiment::ENABLE_DISABLE_VALUE); |
+std::string FeatureEntry::NameForChoice(int index) const { |
+ DCHECK(type == FeatureEntry::MULTI_VALUE || |
+ type == FeatureEntry::ENABLE_DISABLE_VALUE); |
DCHECK_LT(index, num_choices); |
return std::string(internal_name) + testing::kMultiSeparator + |
base::IntToString(index); |
} |
-base::string16 Experiment::DescriptionForChoice(int index) const { |
- DCHECK(type == Experiment::MULTI_VALUE || |
- type == Experiment::ENABLE_DISABLE_VALUE); |
+base::string16 FeatureEntry::DescriptionForChoice(int index) const { |
+ DCHECK(type == FeatureEntry::MULTI_VALUE || |
+ type == FeatureEntry::ENABLE_DISABLE_VALUE); |
DCHECK_LT(index, num_choices); |
int description_id; |
- if (type == Experiment::ENABLE_DISABLE_VALUE) { |
+ if (type == FeatureEntry::ENABLE_DISABLE_VALUE) { |
const int kEnableDisableDescriptionIds[] = { |
IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, |
IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED, |
@@ -2419,64 +2419,64 @@ bool AreSwitchesIdenticalToCurrentCommandLine( |
return result; |
} |
-void GetFlagsExperimentsData(flags_ui::FlagsStorage* flags_storage, |
- FlagAccess access, |
- base::ListValue* supported_experiments, |
- base::ListValue* unsupported_experiments) { |
- std::set<std::string> enabled_experiments; |
- GetSanitizedEnabledFlags(flags_storage, &enabled_experiments); |
+void GetFlagFeatureEntries(flags_ui::FlagsStorage* flags_storage, |
+ FlagAccess access, |
+ base::ListValue* supported_entries, |
+ base::ListValue* unsupported_entries) { |
+ std::set<std::string> enabled_entries; |
+ GetSanitizedEnabledFlags(flags_storage, &enabled_entries); |
int current_platform = GetCurrentPlatform(); |
- for (size_t i = 0; i < num_experiments; ++i) { |
- const Experiment& experiment = experiments[i]; |
- if (SkipConditionalExperiment(experiment)) |
+ for (size_t i = 0; i < g_num_entries; ++i) { |
+ const FeatureEntry& entry = g_entries[i]; |
+ if (SkipConditionalFeatureEntry(entry)) |
continue; |
base::DictionaryValue* data = new base::DictionaryValue(); |
- data->SetString("internal_name", experiment.internal_name); |
+ data->SetString("internal_name", entry.internal_name); |
data->SetString("name", |
- l10n_util::GetStringUTF16(experiment.visible_name_id)); |
+ l10n_util::GetStringUTF16(entry.visible_name_id)); |
data->SetString("description", |
l10n_util::GetStringUTF16( |
- experiment.visible_description_id)); |
+ entry.visible_description_id)); |
base::ListValue* supported_platforms = new base::ListValue(); |
- AddOsStrings(experiment.supported_platforms, supported_platforms); |
+ AddOsStrings(entry.supported_platforms, supported_platforms); |
data->Set("supported_platforms", supported_platforms); |
// True if the switch is not currently passed. |
- bool is_default_value = IsDefaultValue(experiment, enabled_experiments); |
+ bool is_default_value = IsDefaultValue(entry, enabled_entries); |
data->SetBoolean("is_default", is_default_value); |
- switch (experiment.type) { |
- case Experiment::SINGLE_VALUE: |
- case Experiment::SINGLE_DISABLE_VALUE: |
+ switch (entry.type) { |
+ case FeatureEntry::SINGLE_VALUE: |
+ case FeatureEntry::SINGLE_DISABLE_VALUE: |
data->SetBoolean( |
"enabled", |
(!is_default_value && |
- experiment.type == Experiment::SINGLE_VALUE) || |
+ entry.type == FeatureEntry::SINGLE_VALUE) || |
(is_default_value && |
- experiment.type == Experiment::SINGLE_DISABLE_VALUE)); |
+ entry.type == FeatureEntry::SINGLE_DISABLE_VALUE)); |
break; |
- case Experiment::MULTI_VALUE: |
- case Experiment::ENABLE_DISABLE_VALUE: |
- data->Set("choices", CreateChoiceData(experiment, enabled_experiments)); |
+ case FeatureEntry::MULTI_VALUE: |
+ case FeatureEntry::ENABLE_DISABLE_VALUE: |
+ data->Set("choices", CreateChoiceData(entry, enabled_entries)); |
break; |
default: |
NOTREACHED(); |
} |
- bool supported = (experiment.supported_platforms & current_platform) != 0; |
+ bool supported = (entry.supported_platforms & current_platform) != 0; |
#if defined(OS_CHROMEOS) |
if (access == kOwnerAccessToFlags && |
- (experiment.supported_platforms & kOsCrOSOwnerOnly) != 0) { |
+ (entry.supported_platforms & kOsCrOSOwnerOnly) != 0) { |
supported = true; |
} |
#endif |
if (supported) |
- supported_experiments->Append(data); |
+ supported_entries->Append(data); |
else |
- unsupported_experiments->Append(data); |
+ unsupported_entries->Append(data); |
} |
} |
@@ -2484,10 +2484,10 @@ bool IsRestartNeededToCommitChanges() { |
return FlagsState::GetInstance()->IsRestartNeededToCommitChanges(); |
} |
-void SetExperimentEnabled(flags_ui::FlagsStorage* flags_storage, |
+void SetFeatureEntryEnabled(flags_ui::FlagsStorage* flags_storage, |
const std::string& internal_name, |
bool enable) { |
- FlagsState::GetInstance()->SetExperimentEnabled(flags_storage, |
+ FlagsState::GetInstance()->SetFeatureEntryEnabled(flags_storage, |
internal_name, enable); |
} |
@@ -2584,19 +2584,19 @@ void FlagsState::ConvertFlagsToSwitches(flags_ui::FlagsStorage* flags_storage, |
if (command_line->HasSwitch(switches::kNoExperiments)) |
return; |
- std::set<std::string> enabled_experiments; |
+ std::set<std::string> enabled_entries; |
GetSanitizedEnabledFlagsForCurrentPlatform(flags_storage, |
- &enabled_experiments); |
+ &enabled_entries); |
NameToSwitchAndValueMap name_to_switch_map; |
- for (size_t i = 0; i < num_experiments; ++i) { |
- const Experiment& e = experiments[i]; |
- if (e.type == Experiment::SINGLE_VALUE || |
- e.type == Experiment::SINGLE_DISABLE_VALUE) { |
+ for (size_t i = 0; i < g_num_entries; ++i) { |
+ const FeatureEntry& e = g_entries[i]; |
+ if (e.type == FeatureEntry::SINGLE_VALUE || |
+ e.type == FeatureEntry::SINGLE_DISABLE_VALUE) { |
SetFlagToSwitchMapping(e.internal_name, e.command_line_switch, |
e.command_line_value, &name_to_switch_map); |
- } else if (e.type == Experiment::MULTI_VALUE) { |
+ } else if (e.type == FeatureEntry::MULTI_VALUE) { |
for (int j = 0; j < e.num_choices; ++j) { |
SetFlagToSwitchMapping(e.NameForChoice(j), |
e.choices[j].command_line_switch, |
@@ -2604,7 +2604,7 @@ void FlagsState::ConvertFlagsToSwitches(flags_ui::FlagsStorage* flags_storage, |
&name_to_switch_map); |
} |
} else { |
- DCHECK_EQ(e.type, Experiment::ENABLE_DISABLE_VALUE); |
+ DCHECK_EQ(e.type, FeatureEntry::ENABLE_DISABLE_VALUE); |
SetFlagToSwitchMapping(e.NameForChoice(0), std::string(), std::string(), |
&name_to_switch_map); |
SetFlagToSwitchMapping(e.NameForChoice(1), e.command_line_switch, |
@@ -2620,9 +2620,9 @@ void FlagsState::ConvertFlagsToSwitches(flags_ui::FlagsStorage* flags_storage, |
std::pair<std::string, std::string>(switches::kFlagSwitchesBegin, |
std::string())); |
} |
- for (const std::string& experiment_name : enabled_experiments) { |
+ for (const std::string& entry_name : enabled_entries) { |
NameToSwitchAndValueMap::const_iterator name_to_switch_it = |
- name_to_switch_map.find(experiment_name); |
+ name_to_switch_map.find(entry_name); |
if (name_to_switch_it == name_to_switch_map.end()) { |
NOTREACHED(); |
continue; |
@@ -2648,70 +2648,70 @@ bool FlagsState::IsRestartNeededToCommitChanges() { |
return needs_restart_; |
} |
-void FlagsState::SetExperimentEnabled(flags_ui::FlagsStorage* flags_storage, |
- const std::string& internal_name, |
- bool enable) { |
+void FlagsState::SetFeatureEntryEnabled(flags_ui::FlagsStorage* flags_storage, |
+ const std::string& internal_name, |
+ bool enable) { |
size_t at_index = internal_name.find(testing::kMultiSeparator); |
if (at_index != std::string::npos) { |
DCHECK(enable); |
- // We're being asked to enable a multi-choice experiment. Disable the |
+ // We're being asked to enable a multi-choice entry. Disable the |
// currently selected choice. |
DCHECK_NE(at_index, 0u); |
- const std::string experiment_name = internal_name.substr(0, at_index); |
- SetExperimentEnabled(flags_storage, experiment_name, false); |
+ const std::string entry_name = internal_name.substr(0, at_index); |
+ SetFeatureEntryEnabled(flags_storage, entry_name, false); |
// And enable the new choice, if it is not the default first choice. |
- if (internal_name != experiment_name + "@0") { |
- std::set<std::string> enabled_experiments; |
- GetSanitizedEnabledFlags(flags_storage, &enabled_experiments); |
- needs_restart_ |= enabled_experiments.insert(internal_name).second; |
- flags_storage->SetFlags(enabled_experiments); |
+ if (internal_name != entry_name + "@0") { |
+ std::set<std::string> enabled_entries; |
+ GetSanitizedEnabledFlags(flags_storage, &enabled_entries); |
+ needs_restart_ |= enabled_entries.insert(internal_name).second; |
+ flags_storage->SetFlags(enabled_entries); |
} |
return; |
} |
- std::set<std::string> enabled_experiments; |
- GetSanitizedEnabledFlags(flags_storage, &enabled_experiments); |
+ std::set<std::string> enabled_entries; |
+ GetSanitizedEnabledFlags(flags_storage, &enabled_entries); |
- const Experiment* e = NULL; |
- for (size_t i = 0; i < num_experiments; ++i) { |
- if (experiments[i].internal_name == internal_name) { |
- e = experiments + i; |
+ const FeatureEntry* e = NULL; |
+ for (size_t i = 0; i < g_num_entries; ++i) { |
+ if (g_entries[i].internal_name == internal_name) { |
+ e = g_entries + i; |
break; |
} |
} |
DCHECK(e); |
- if (e->type == Experiment::SINGLE_VALUE) { |
+ if (e->type == FeatureEntry::SINGLE_VALUE) { |
if (enable) |
- needs_restart_ |= enabled_experiments.insert(internal_name).second; |
+ needs_restart_ |= enabled_entries.insert(internal_name).second; |
else |
- needs_restart_ |= (enabled_experiments.erase(internal_name) > 0); |
- } else if (e->type == Experiment::SINGLE_DISABLE_VALUE) { |
+ needs_restart_ |= (enabled_entries.erase(internal_name) > 0); |
+ } else if (e->type == FeatureEntry::SINGLE_DISABLE_VALUE) { |
if (!enable) |
- needs_restart_ |= enabled_experiments.insert(internal_name).second; |
+ needs_restart_ |= enabled_entries.insert(internal_name).second; |
else |
- needs_restart_ |= (enabled_experiments.erase(internal_name) > 0); |
+ needs_restart_ |= (enabled_entries.erase(internal_name) > 0); |
} else { |
if (enable) { |
// Enable the first choice. |
- needs_restart_ |= enabled_experiments.insert(e->NameForChoice(0)).second; |
+ needs_restart_ |= enabled_entries.insert(e->NameForChoice(0)).second; |
} else { |
// Find the currently enabled choice and disable it. |
for (int i = 0; i < e->num_choices; ++i) { |
std::string choice_name = e->NameForChoice(i); |
- if (enabled_experiments.find(choice_name) != |
- enabled_experiments.end()) { |
+ if (enabled_entries.find(choice_name) != |
+ enabled_entries.end()) { |
needs_restart_ = true; |
- enabled_experiments.erase(choice_name); |
+ enabled_entries.erase(choice_name); |
// Continue on just in case there's a bug and more than one |
- // experiment for this choice was enabled. |
+ // entry for this choice was enabled. |
} |
} |
} |
} |
- flags_storage->SetFlags(enabled_experiments); |
+ flags_storage->SetFlags(enabled_entries); |
} |
void FlagsState::RemoveFlagsSwitches( |
@@ -2723,8 +2723,8 @@ void FlagsState::RemoveFlagsSwitches( |
void FlagsState::ResetAllFlags(flags_ui::FlagsStorage* flags_storage) { |
needs_restart_ = true; |
- std::set<std::string> no_experiments; |
- flags_storage->SetFlags(no_experiments); |
+ std::set<std::string> no_entries; |
+ flags_storage->SetFlags(no_entries); |
} |
void FlagsState::reset() { |
@@ -2746,19 +2746,19 @@ void ClearState() { |
FlagsState::GetInstance()->reset(); |
} |
-void SetExperiments(const Experiment* e, size_t count) { |
- if (!e) { |
- experiments = kExperiments; |
- num_experiments = arraysize(kExperiments); |
+void SetFeatureEntries(const FeatureEntry* entries, size_t count) { |
+ if (!entries) { |
+ g_entries = kFeatureEntries; |
+ g_num_entries = arraysize(kFeatureEntries); |
} else { |
- experiments = e; |
- num_experiments = count; |
+ g_entries = entries; |
+ g_num_entries = count; |
} |
} |
-const Experiment* GetExperiments(size_t* count) { |
- *count = num_experiments; |
- return experiments; |
+const FeatureEntry* GetFeatureEntries(size_t* count) { |
+ *count = g_num_entries; |
+ return g_entries; |
} |
} // namespace testing |