| Index: chrome/browser/about_flags.cc
|
| diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
| index 7577556a0b3e3a97ca013d70cf3a88c938e8c25c..130168f8b6d7912839084f00c171ce261a5b1926 100644
|
| --- a/chrome/browser/about_flags.cc
|
| +++ b/chrome/browser/about_flags.cc
|
| @@ -11,6 +11,7 @@
|
|
|
| #include "base/command_line.h"
|
| #include "base/memory/singleton.h"
|
| +#include "base/metrics/sparse_histogram.h"
|
| #include "base/stl_util.h"
|
| #include "base/strings/string_number_conversions.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| @@ -62,19 +63,34 @@ using base::UserMetricsAction;
|
| namespace about_flags {
|
|
|
| // Macros to simplify specifying the type.
|
| -#define SINGLE_VALUE_TYPE_AND_VALUE(command_line_switch, switch_value) \
|
| - Experiment::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 ENABLE_DISABLE_VALUE_TYPE_AND_VALUE(enable_switch, enable_value, \
|
| - disable_switch, disable_value) \
|
| - Experiment::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)
|
| +#define SINGLE_VALUE_TYPE_AND_VALUE( \
|
| + command_line_switch, switch_value, switch_uma_id) \
|
| + Experiment::SINGLE_VALUE, command_line_switch, switch_value, switch_uma_id, \
|
| + NULL, NULL, 0, NULL, 0
|
| +#define SINGLE_VALUE_TYPE(command_line_switch, switch_uma_id) \
|
| + SINGLE_VALUE_TYPE_AND_VALUE(command_line_switch, "", switch_uma_id)
|
| +#define ENABLE_DISABLE_VALUE_TYPE_AND_VALUE(enable_switch, \
|
| + enable_value, \
|
| + enable_switch_uma_id, \
|
| + disable_switch, \
|
| + disable_value, \
|
| + disable_switch_uma_id) \
|
| + Experiment::ENABLE_DISABLE_VALUE, enable_switch, enable_value, \
|
| + enable_switch_uma_id, disable_switch, disable_value, \
|
| + disable_switch_uma_id, NULL, 3
|
| +#define ENABLE_DISABLE_VALUE_TYPE(enable_switch, \
|
| + enable_switch_uma_id, \
|
| + disable_switch, \
|
| + disable_switch_uma_id) \
|
| + ENABLE_DISABLE_VALUE_TYPE_AND_VALUE(enable_switch, \
|
| + "", \
|
| + enable_switch_uma_id, \
|
| + disable_switch, \
|
| + "", \
|
| + disable_switch_uma_id)
|
| +#define MULTI_VALUE_TYPE(choices) \
|
| + Experiment::MULTI_VALUE, NULL, NULL, 0, NULL, NULL, 0, choices, \
|
| + arraysize(choices)
|
|
|
| namespace {
|
|
|
| @@ -134,50 +150,70 @@ std::set<CommandLine::StringType> ExtractFlagsFromCommandLine(
|
| }
|
|
|
| const Experiment::Choice kEnableCompositingForFixedPositionChoices[] = {
|
| - { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" },
|
| + { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
|
| + "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
|
| { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED,
|
| - switches::kEnableCompositingForFixedPosition, ""},
|
| + switches::kEnableCompositingForFixedPosition, "",
|
| + UMA_HISTOGRAM_ID_kEnableCompositingForFixedPosition },
|
| { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
|
| - switches::kDisableCompositingForFixedPosition, ""},
|
| + switches::kDisableCompositingForFixedPosition, "",
|
| + UMA_HISTOGRAM_ID_kDisableCompositingForFixedPosition },
|
| { IDS_FLAGS_COMPOSITING_FOR_FIXED_POSITION_HIGH_DPI,
|
| - switches::kEnableHighDpiCompositingForFixedPosition, ""}
|
| + switches::kEnableHighDpiCompositingForFixedPosition, "",
|
| + UMA_HISTOGRAM_ID_kEnableHighDpiCompositingForFixedPosition }
|
| };
|
|
|
| const Experiment::Choice kEnableCompositingForTransitionChoices[] = {
|
| - { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" },
|
| + { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
|
| + "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
|
| { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED,
|
| - switches::kEnableCompositingForTransition, ""},
|
| + switches::kEnableCompositingForTransition, "",
|
| + UMA_HISTOGRAM_ID_kEnableCompositingForTransition },
|
| { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
|
| - switches::kDisableCompositingForTransition, ""},
|
| + switches::kDisableCompositingForTransition, "",
|
| + UMA_HISTOGRAM_ID_kDisableCompositingForTransition },
|
| };
|
|
|
| const Experiment::Choice kEnableAcceleratedFixedRootBackgroundChoices[] = {
|
| - { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" },
|
| + { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
|
| + "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
|
| { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED,
|
| - switches::kEnableAcceleratedFixedRootBackground, ""},
|
| + switches::kEnableAcceleratedFixedRootBackground, "",
|
| + UMA_HISTOGRAM_ID_kEnableAcceleratedFixedRootBackground },
|
| { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
|
| - switches::kDisableAcceleratedFixedRootBackground, ""},
|
| + switches::kDisableAcceleratedFixedRootBackground, "",
|
| + UMA_HISTOGRAM_ID_kDisableAcceleratedFixedRootBackground },
|
| };
|
|
|
| const Experiment::Choice kTouchEventsChoices[] = {
|
| - { IDS_GENERIC_EXPERIMENT_CHOICE_AUTOMATIC, "", "" },
|
| + { IDS_GENERIC_EXPERIMENT_CHOICE_AUTOMATIC,
|
| + "",
|
| + "",
|
| + UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
|
| { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED,
|
| switches::kTouchEvents,
|
| - switches::kTouchEventsEnabled },
|
| + switches::kTouchEventsEnabled,
|
| + UMA_HISTOGRAM_ID_kTouchEvents },
|
| { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
|
| switches::kTouchEvents,
|
| - switches::kTouchEventsDisabled }
|
| + switches::kTouchEventsDisabled,
|
| + UMA_HISTOGRAM_ID_kTouchEvents }
|
| };
|
|
|
| #if defined(USE_AURA)
|
| const Experiment::Choice kOverscrollHistoryNavigationChoices[] = {
|
| - { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED, "", "" },
|
| + { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED,
|
| + "",
|
| + "",
|
| + UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
|
| { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
|
| switches::kOverscrollHistoryNavigation,
|
| - "0" },
|
| + "0",
|
| + UMA_HISTOGRAM_ID_kOverscrollHistoryNavigation },
|
| { IDS_OVERSCROLL_HISTORY_NAVIGATION_SIMPLE_UI,
|
| switches::kOverscrollHistoryNavigation,
|
| - "2" }
|
| + "2",
|
| + UMA_HISTOGRAM_ID_kOverscrollHistoryNavigation }
|
| };
|
| #endif
|
|
|
| @@ -189,161 +225,211 @@ const Experiment::Choice kNaClDebugMaskChoices[] = {
|
| // so by default we want to avoid debugging that.
|
| // NOTE: As the default value must be the empty string, the mask excluding
|
| // the PNaCl translator and secure shell is substituted elsewhere.
|
| - { IDS_NACL_DEBUG_MASK_CHOICE_EXCLUDE_UTILS_PNACL, "", "" },
|
| - { IDS_NACL_DEBUG_MASK_CHOICE_DEBUG_ALL, switches::kNaClDebugMask, "*://*" },
|
| - { IDS_NACL_DEBUG_MASK_CHOICE_INCLUDE_DEBUG,
|
| - switches::kNaClDebugMask, "*://*/*debug.nmf" }
|
| + { IDS_NACL_DEBUG_MASK_CHOICE_EXCLUDE_UTILS_PNACL, "", "",
|
| + UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
|
| + { IDS_NACL_DEBUG_MASK_CHOICE_DEBUG_ALL, switches::kNaClDebugMask, "*://*",
|
| + UMA_HISTOGRAM_ID_kNaClDebugMask },
|
| + { IDS_NACL_DEBUG_MASK_CHOICE_INCLUDE_DEBUG, switches::kNaClDebugMask,
|
| + "*://*/*debug.nmf", UMA_HISTOGRAM_ID_kNaClDebugMask }
|
| };
|
| #endif
|
|
|
| const Experiment::Choice kImplSidePaintingChoices[] = {
|
| - { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" },
|
| + { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
|
| + "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
|
| { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED,
|
| - switches::kEnableImplSidePainting, ""},
|
| + switches::kEnableImplSidePainting, "",
|
| + UMA_HISTOGRAM_ID_kEnableImplSidePainting },
|
| { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
|
| - switches::kDisableImplSidePainting, ""}
|
| + switches::kDisableImplSidePainting, "",
|
| + UMA_HISTOGRAM_ID_kDisableImplSidePainting }
|
| };
|
|
|
| const Experiment::Choice kLCDTextChoices[] = {
|
| - { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" },
|
| - { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED, switches::kEnableLCDText, ""},
|
| - { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED, switches::kDisableLCDText, ""}
|
| + { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "",
|
| + UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
|
| + { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED, switches::kEnableLCDText, "",
|
| + UMA_HISTOGRAM_ID_kEnableLCDText },
|
| + { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED, switches::kDisableLCDText, "",
|
| + UMA_HISTOGRAM_ID_kDisableLCDText }
|
| };
|
|
|
| const Experiment::Choice kDistanceFieldTextChoices[] = {
|
| - { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" },
|
| + { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
|
| + "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
|
| { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED,
|
| - switches::kEnableDistanceFieldText, "" },
|
| + switches::kEnableDistanceFieldText, "",
|
| + UMA_HISTOGRAM_ID_kEnableDistanceFieldText },
|
| { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
|
| - switches::kDisableDistanceFieldText, "" }
|
| + switches::kDisableDistanceFieldText, "",
|
| + UMA_HISTOGRAM_ID_kDisableDistanceFieldText }
|
| };
|
|
|
| #ifndef USE_AURA
|
| const Experiment::Choice kDelegatedRendererChoices[] = {
|
| - { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" },
|
| + { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
|
| + "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
|
| { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED,
|
| - switches::kEnableDelegatedRenderer, ""},
|
| + switches::kEnableDelegatedRenderer, "",
|
| + UMA_HISTOGRAM_ID_kEnableDelegatedRenderer },
|
| { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
|
| - switches::kDisableDelegatedRenderer, ""}
|
| + switches::kDisableDelegatedRenderer, "",
|
| + UMA_HISTOGRAM_ID_kDisableDelegatedRenderer }
|
| };
|
| #endif
|
|
|
| const Experiment::Choice kMaxTilesForInterestAreaChoices[] = {
|
| - { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" },
|
| + { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
|
| + "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
|
| { IDS_FLAGS_MAX_TILES_FOR_INTEREST_AREA_SHORT,
|
| - cc::switches::kMaxTilesForInterestArea, "64"},
|
| + cc::switches::kMaxTilesForInterestArea, "64",
|
| + UMA_HISTOGRAM_ID_kMaxTilesForInterestArea },
|
| { IDS_FLAGS_MAX_TILES_FOR_INTEREST_AREA_TALL,
|
| - cc::switches::kMaxTilesForInterestArea, "128"},
|
| + cc::switches::kMaxTilesForInterestArea, "128",
|
| + UMA_HISTOGRAM_ID_kMaxTilesForInterestArea },
|
| { IDS_FLAGS_MAX_TILES_FOR_INTEREST_AREA_GRANDE,
|
| - cc::switches::kMaxTilesForInterestArea, "256"},
|
| + cc::switches::kMaxTilesForInterestArea, "256",
|
| + UMA_HISTOGRAM_ID_kMaxTilesForInterestArea },
|
| { IDS_FLAGS_MAX_TILES_FOR_INTEREST_AREA_VENTI,
|
| - cc::switches::kMaxTilesForInterestArea, "512"}
|
| + cc::switches::kMaxTilesForInterestArea, "512",
|
| + UMA_HISTOGRAM_ID_kMaxTilesForInterestArea }
|
| };
|
|
|
| const Experiment::Choice kDefaultTileWidthChoices[] = {
|
| - { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" },
|
| + { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
|
| + "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
|
| { IDS_FLAGS_DEFAULT_TILE_WIDTH_SHORT,
|
| - switches::kDefaultTileWidth, "128"},
|
| + switches::kDefaultTileWidth, "128", UMA_HISTOGRAM_ID_kDefaultTileWidth },
|
| { IDS_FLAGS_DEFAULT_TILE_WIDTH_TALL,
|
| - switches::kDefaultTileWidth, "256"},
|
| + switches::kDefaultTileWidth, "256", UMA_HISTOGRAM_ID_kDefaultTileWidth },
|
| { IDS_FLAGS_DEFAULT_TILE_WIDTH_GRANDE,
|
| - switches::kDefaultTileWidth, "512"},
|
| + switches::kDefaultTileWidth, "512", UMA_HISTOGRAM_ID_kDefaultTileWidth },
|
| { IDS_FLAGS_DEFAULT_TILE_WIDTH_VENTI,
|
| - switches::kDefaultTileWidth, "1024"}
|
| + switches::kDefaultTileWidth, "1024", UMA_HISTOGRAM_ID_kDefaultTileWidth }
|
| };
|
|
|
| const Experiment::Choice kDefaultTileHeightChoices[] = {
|
| - { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" },
|
| + { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
|
| + "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
|
| { IDS_FLAGS_DEFAULT_TILE_HEIGHT_SHORT,
|
| - switches::kDefaultTileHeight, "128"},
|
| + switches::kDefaultTileHeight, "128", UMA_HISTOGRAM_ID_kDefaultTileHeight },
|
| { IDS_FLAGS_DEFAULT_TILE_HEIGHT_TALL,
|
| - switches::kDefaultTileHeight, "256"},
|
| + switches::kDefaultTileHeight, "256", UMA_HISTOGRAM_ID_kDefaultTileHeight },
|
| { IDS_FLAGS_DEFAULT_TILE_HEIGHT_GRANDE,
|
| - switches::kDefaultTileHeight, "512"},
|
| + switches::kDefaultTileHeight, "512", UMA_HISTOGRAM_ID_kDefaultTileHeight },
|
| { IDS_FLAGS_DEFAULT_TILE_HEIGHT_VENTI,
|
| - switches::kDefaultTileHeight, "1024"}
|
| + switches::kDefaultTileHeight, "1024", UMA_HISTOGRAM_ID_kDefaultTileHeight }
|
| };
|
|
|
| const Experiment::Choice kSimpleCacheBackendChoices[] = {
|
| - { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" },
|
| + { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
|
| + "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
|
| { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
|
| - switches::kUseSimpleCacheBackend, "off" },
|
| + switches::kUseSimpleCacheBackend, "off",
|
| + UMA_HISTOGRAM_ID_kUseSimpleCacheBackend },
|
| { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED,
|
| - switches::kUseSimpleCacheBackend, "on"}
|
| + switches::kUseSimpleCacheBackend, "on",
|
| + UMA_HISTOGRAM_ID_kUseSimpleCacheBackend }
|
| };
|
|
|
| #if defined(USE_AURA)
|
| const Experiment::Choice kTabCaptureUpscaleQualityChoices[] = {
|
| - { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" },
|
| + { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
|
| + "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
|
| { IDS_FLAGS_TAB_CAPTURE_SCALE_QUALITY_FAST,
|
| - switches::kTabCaptureUpscaleQuality, "fast" },
|
| + switches::kTabCaptureUpscaleQuality, "fast",
|
| + UMA_HISTOGRAM_ID_kTabCaptureUpscaleQuality },
|
| { IDS_FLAGS_TAB_CAPTURE_SCALE_QUALITY_GOOD,
|
| - switches::kTabCaptureUpscaleQuality, "good" },
|
| + switches::kTabCaptureUpscaleQuality, "good",
|
| + UMA_HISTOGRAM_ID_kTabCaptureUpscaleQuality },
|
| { IDS_FLAGS_TAB_CAPTURE_SCALE_QUALITY_BEST,
|
| - switches::kTabCaptureUpscaleQuality, "best" },
|
| + switches::kTabCaptureUpscaleQuality, "best",
|
| + UMA_HISTOGRAM_ID_kTabCaptureUpscaleQuality },
|
| };
|
|
|
| const Experiment::Choice kTabCaptureDownscaleQualityChoices[] = {
|
| - { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" },
|
| + { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
|
| + "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
|
| { IDS_FLAGS_TAB_CAPTURE_SCALE_QUALITY_FAST,
|
| - switches::kTabCaptureDownscaleQuality, "fast" },
|
| + switches::kTabCaptureDownscaleQuality, "fast",
|
| + UMA_HISTOGRAM_ID_kTabCaptureDownscaleQuality },
|
| { IDS_FLAGS_TAB_CAPTURE_SCALE_QUALITY_GOOD,
|
| - switches::kTabCaptureDownscaleQuality, "good" },
|
| + switches::kTabCaptureDownscaleQuality, "good",
|
| + UMA_HISTOGRAM_ID_kTabCaptureDownscaleQuality },
|
| { IDS_FLAGS_TAB_CAPTURE_SCALE_QUALITY_BEST,
|
| - switches::kTabCaptureDownscaleQuality, "best" },
|
| + switches::kTabCaptureDownscaleQuality, "best",
|
| + UMA_HISTOGRAM_ID_kTabCaptureDownscaleQuality },
|
| };
|
| #endif
|
|
|
| #if defined(USE_AURA) || defined(OS_LINUX)
|
| const Experiment::Choice kOverlayScrollbarChoices[] = {
|
| - { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" },
|
| + { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
|
| + "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
|
| { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED,
|
| - switches::kEnableOverlayScrollbar, ""},
|
| + switches::kEnableOverlayScrollbar, "",
|
| + UMA_HISTOGRAM_ID_kEnableOverlayScrollbar },
|
| { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
|
| - switches::kDisableOverlayScrollbar, ""}
|
| + switches::kDisableOverlayScrollbar, "",
|
| + UMA_HISTOGRAM_ID_kDisableOverlayScrollbar }
|
| };
|
| #endif
|
|
|
| const Experiment::Choice kZeroCopyChoices[] = {
|
| - { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" },
|
| + { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
|
| + "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
|
| { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED,
|
| - switches::kEnableZeroCopy, ""},
|
| + switches::kEnableZeroCopy, "", UMA_HISTOGRAM_ID_kEnableZeroCopy },
|
| { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
|
| - switches::kDisableZeroCopy, ""}
|
| + switches::kDisableZeroCopy, "", UMA_HISTOGRAM_ID_kDisableZeroCopy }
|
| };
|
|
|
| #if defined(OS_ANDROID)
|
| const Experiment::Choice kZeroSuggestExperimentsChoices[] = {
|
| - { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" },
|
| + { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
|
| + "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
|
| { IDS_FLAGS_ZERO_SUGGEST_MOST_VISITED,
|
| - switches::kEnableZeroSuggestMostVisited, ""},
|
| + switches::kEnableZeroSuggestMostVisited, "",
|
| + UMA_HISTOGRAM_ID_kEnableZeroSuggestMostVisited },
|
| { IDS_FLAGS_ZERO_SUGGEST_ETHER_SERP,
|
| - switches::kEnableZeroSuggestEtherSerp, ""},
|
| + switches::kEnableZeroSuggestEtherSerp, "",
|
| + UMA_HISTOGRAM_ID_kEnableZeroSuggestEtherSerp },
|
| { IDS_FLAGS_ZERO_SUGGEST_ETHER_NO_SERP,
|
| - switches::kEnableZeroSuggestEtherNoSerp, ""},
|
| + switches::kEnableZeroSuggestEtherNoSerp, "",
|
| + UMA_HISTOGRAM_ID_kEnableZeroSuggestEtherNoSerp },
|
| { IDS_FLAGS_ZERO_SUGGEST_PERSONALIZED,
|
| - switches::kEnableZeroSuggestPersonalized, ""},
|
| + switches::kEnableZeroSuggestPersonalized, "",
|
| + UMA_HISTOGRAM_ID_kEnableZeroSuggestPersonalized },
|
| { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
|
| - switches::kDisableZeroSuggest, ""}
|
| + switches::kDisableZeroSuggest, "", UMA_HISTOGRAM_ID_kDisableZeroSuggest }
|
| };
|
| #endif
|
|
|
| const Experiment::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" },
|
| - { IDS_FLAGS_NUM_RASTER_THREADS_THREE, switches::kNumRasterThreads, "3" },
|
| - { IDS_FLAGS_NUM_RASTER_THREADS_FOUR, switches::kNumRasterThreads, "4" }
|
| + { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
|
| + "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
|
| + { IDS_FLAGS_NUM_RASTER_THREADS_ONE,
|
| + switches::kNumRasterThreads, "1", UMA_HISTOGRAM_ID_kNumRasterThreads },
|
| + { IDS_FLAGS_NUM_RASTER_THREADS_TWO,
|
| + switches::kNumRasterThreads, "2", UMA_HISTOGRAM_ID_kNumRasterThreads },
|
| + { IDS_FLAGS_NUM_RASTER_THREADS_THREE,
|
| + switches::kNumRasterThreads, "3", UMA_HISTOGRAM_ID_kNumRasterThreads },
|
| + { IDS_FLAGS_NUM_RASTER_THREADS_FOUR,
|
| + switches::kNumRasterThreads, "4", UMA_HISTOGRAM_ID_kNumRasterThreads }
|
| };
|
|
|
| const Experiment::Choice kEnableGpuRasterizationChoices[] = {
|
| - { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" },
|
| + { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
|
| + "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
|
| { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED,
|
| - switches::kEnableGpuRasterization, "" },
|
| + switches::kEnableGpuRasterization, "",
|
| + UMA_HISTOGRAM_ID_kEnableGpuRasterization },
|
| { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
|
| - switches::kDisableGpuRasterization, "" },
|
| + switches::kDisableGpuRasterization, "",
|
| + UMA_HISTOGRAM_ID_kDisableGpuRasterization },
|
| { IDS_FLAGS_FORCE_GPU_RASTERIZATION,
|
| - switches::kForceGpuRasterization, "" },
|
| + switches::kForceGpuRasterization, "",
|
| + UMA_HISTOGRAM_ID_kForceGpuRasterization },
|
| };
|
|
|
| // We're using independent flags here (as opposed to a common flag with
|
| @@ -352,110 +438,148 @@ const Experiment::Choice kEnableGpuRasterizationChoices[] = {
|
| // experience includes other flag changes as well). It is not currently possible
|
| // to do that with "flag=value" flags.
|
| const Experiment::Choice kSearchButtonInOmniboxChoices[] = {
|
| - { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" },
|
| + { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
|
| + "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
|
| { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
|
| - switches::kDisableSearchButtonInOmnibox, ""},
|
| + switches::kDisableSearchButtonInOmnibox, "",
|
| + UMA_HISTOGRAM_ID_kDisableSearchButtonInOmnibox },
|
| { IDS_FLAGS_SEARCH_BUTTON_IN_OMNIBOX_ENABLE_FOR_STR,
|
| - switches::kEnableSearchButtonInOmniboxForStr, ""},
|
| + switches::kEnableSearchButtonInOmniboxForStr, "",
|
| + UMA_HISTOGRAM_ID_kEnableSearchButtonInOmniboxForStr },
|
| { IDS_FLAGS_SEARCH_BUTTON_IN_OMNIBOX_ENABLE_FOR_STR_OR_IIP,
|
| - switches::kEnableSearchButtonInOmniboxForStrOrIip, ""},
|
| + switches::kEnableSearchButtonInOmniboxForStrOrIip, "",
|
| + UMA_HISTOGRAM_ID_kEnableSearchButtonInOmniboxForStrOrIip },
|
| { IDS_FLAGS_SEARCH_BUTTON_IN_OMNIBOX_ENABLED,
|
| - switches::kEnableSearchButtonInOmniboxAlways, ""}
|
| + switches::kEnableSearchButtonInOmniboxAlways, "",
|
| + UMA_HISTOGRAM_ID_kEnableSearchButtonInOmniboxAlways }
|
| };
|
|
|
| // See comment above for kSearchButtonInOmniboxChoices. The same reasoning
|
| // applies here.
|
| const Experiment::Choice kOriginChipChoices[] = {
|
| - { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" },
|
| - { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED, switches::kDisableOriginChip, ""},
|
| - { IDS_FLAGS_ORIGIN_CHIP_ALWAYS, switches::kEnableOriginChipAlways, ""},
|
| - { IDS_FLAGS_ORIGIN_CHIP_ON_SRP, switches::kEnableOriginChipOnSrp, ""}
|
| + { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
|
| + "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
|
| + { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
|
| + switches::kDisableOriginChip, "", UMA_HISTOGRAM_ID_kDisableOriginChip },
|
| + { IDS_FLAGS_ORIGIN_CHIP_ALWAYS,
|
| + switches::kEnableOriginChipAlways, "",
|
| + UMA_HISTOGRAM_ID_kEnableOriginChipAlways },
|
| + { IDS_FLAGS_ORIGIN_CHIP_ON_SRP,
|
| + switches::kEnableOriginChipOnSrp, "",
|
| + UMA_HISTOGRAM_ID_kEnableOriginChipOnSrp }
|
| };
|
|
|
| const Experiment::Choice kTouchScrollingModeChoices[] = {
|
| - { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" },
|
| + { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
|
| + "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
|
| { IDS_FLAGS_TOUCH_SCROLLING_MODE_TOUCHCANCEL,
|
| switches::kTouchScrollingMode,
|
| - switches::kTouchScrollingModeTouchcancel },
|
| + switches::kTouchScrollingModeTouchcancel,
|
| + UMA_HISTOGRAM_ID_kTouchScrollingMode },
|
| { IDS_FLAGS_TOUCH_SCROLLING_MODE_ASYNC_TOUCHMOVE,
|
| switches::kTouchScrollingMode,
|
| - switches::kTouchScrollingModeAsyncTouchmove },
|
| + switches::kTouchScrollingModeAsyncTouchmove,
|
| + UMA_HISTOGRAM_ID_kTouchScrollingMode },
|
| { IDS_FLAGS_TOUCH_SCROLLING_MODE_SYNC_TOUCHMOVE,
|
| switches::kTouchScrollingMode,
|
| - switches::kTouchScrollingModeSyncTouchmove },
|
| + switches::kTouchScrollingModeSyncTouchmove,
|
| + UMA_HISTOGRAM_ID_kTouchScrollingMode },
|
| };
|
|
|
| #if defined(ENABLE_APP_LIST)
|
| const Experiment::Choice kEnableSyncAppListChoices[] = {
|
| - { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" },
|
| + { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
|
| + "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
|
| { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED,
|
| - app_list::switches::kEnableSyncAppList, "" },
|
| + app_list::switches::kEnableSyncAppList, "",
|
| + UMA_HISTOGRAM_ID_kEnableSyncAppList },
|
| { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
|
| - app_list::switches::kDisableSyncAppList, "" },
|
| + app_list::switches::kDisableSyncAppList, "",
|
| + UMA_HISTOGRAM_ID_kDisableSyncAppList },
|
| };
|
| #endif
|
|
|
| const Experiment::Choice kExtensionContentVerificationChoices[] = {
|
| - { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" },
|
| + { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
|
| + "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
|
| { IDS_FLAGS_EXTENSION_CONTENT_VERIFICATION_BOOTSTRAP,
|
| extensions::switches::kExtensionContentVerification,
|
| - extensions::switches::kExtensionContentVerificationBootstrap },
|
| + extensions::switches::kExtensionContentVerificationBootstrap,
|
| + UMA_HISTOGRAM_ID_kExtensionContentVerification },
|
| { IDS_FLAGS_EXTENSION_CONTENT_VERIFICATION_ENFORCE,
|
| extensions::switches::kExtensionContentVerification,
|
| - extensions::switches::kExtensionContentVerificationEnforce },
|
| + extensions::switches::kExtensionContentVerificationEnforce,
|
| + UMA_HISTOGRAM_ID_kExtensionContentVerification },
|
| { IDS_FLAGS_EXTENSION_CONTENT_VERIFICATION_ENFORCE_STRICT,
|
| extensions::switches::kExtensionContentVerification,
|
| - extensions::switches::kExtensionContentVerificationEnforceStrict },
|
| + extensions::switches::kExtensionContentVerificationEnforceStrict,
|
| + UMA_HISTOGRAM_ID_kExtensionContentVerification },
|
| };
|
|
|
| // Using independent flags (instead of flag=value flags) to be able to
|
| // associate the version with a FieldTrial. FieldTrials don't currently support
|
| // flag=value flags.
|
| const Experiment::Choice kSSLInterstitialVersions[] = {
|
| - { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" },
|
| + { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
|
| + "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
|
| { IDS_FLAGS_SSL_INTERSTITIAL_VERSION_V1,
|
| - switches::kSSLInterstitialVersionV1, "" },
|
| + switches::kSSLInterstitialVersionV1, "",
|
| + UMA_HISTOGRAM_ID_kSSLInterstitialVersionV1 },
|
| { IDS_FLAGS_SSL_INTERSTITIAL_VERSION_V2_GRAY,
|
| - switches::kSSLInterstitialVersionV2Gray, "" },
|
| + switches::kSSLInterstitialVersionV2Gray, "",
|
| + UMA_HISTOGRAM_ID_kSSLInterstitialVersionV2Gray },
|
| { IDS_FLAGS_SSL_INTERSTITIAL_VERSION_V2_COLORFUL,
|
| - switches::kSSLInterstitialVersionV2Colorful, "" },
|
| + switches::kSSLInterstitialVersionV2Colorful, "",
|
| + UMA_HISTOGRAM_ID_kSSLInterstitialVersionV2Colorful },
|
| };
|
|
|
| // Using independent flags (instead of flag=value flags) to be able to
|
| // associate the version with a FieldTrial. FieldTrials don't currently support
|
| // flag=value flags.
|
| const Experiment::Choice kMalwareInterstitialVersions[] = {
|
| - { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" },
|
| + { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
|
| + "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
|
| { IDS_FLAGS_MALWARE_INTERSTITIAL_VERSION_V2,
|
| - switches::kMalwareInterstitialVersionV2, "" },
|
| + switches::kMalwareInterstitialVersionV2, "",
|
| + UMA_HISTOGRAM_ID_kMalwareInterstitialVersionV2 },
|
| { IDS_FLAGS_MALWARE_INTERSTITIAL_VERSION_V3,
|
| - switches::kMalwareInterstitialVersionV3, "" },
|
| + switches::kMalwareInterstitialVersionV3, "",
|
| + UMA_HISTOGRAM_ID_kMalwareInterstitialVersionV3 },
|
| };
|
|
|
| #if defined(OS_CHROMEOS)
|
| const Experiment::Choice kEnableFileManagerMTPChoices[] = {
|
| - { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" },
|
| + { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
|
| + "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
|
| { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED,
|
| - chromeos::switches::kEnableFileManagerMTP, "true" },
|
| + chromeos::switches::kEnableFileManagerMTP, "true",
|
| + UMA_HISTOGRAM_ID_kEnableFileManagerMTP },
|
| { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
|
| - chromeos::switches::kEnableFileManagerMTP, "false" }
|
| + chromeos::switches::kEnableFileManagerMTP, "false",
|
| + UMA_HISTOGRAM_ID_kEnableFileManagerMTP }
|
| };
|
|
|
| const Experiment::Choice kEnableFileManagerNewGalleryChoices[] = {
|
| - { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", ""},
|
| + { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
|
| + "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
|
| { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED,
|
| - chromeos::switches::kFileManagerEnableNewGallery, "true"},
|
| + chromeos::switches::kFileManagerEnableNewGallery, "true",
|
| + UMA_HISTOGRAM_ID_kFileManagerEnableNewGallery },
|
| { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
|
| - chromeos::switches::kFileManagerEnableNewGallery, "false"}
|
| + chromeos::switches::kFileManagerEnableNewGallery, "false",
|
| + UMA_HISTOGRAM_ID_kFileManagerEnableNewGallery }
|
| };
|
| #endif
|
|
|
| const Experiment::Choice kEnableSettingsWindowChoices[] = {
|
| - { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" },
|
| + { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
|
| + "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
|
| { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED,
|
| - ::switches::kEnableSettingsWindow, "" },
|
| + ::switches::kEnableSettingsWindow, "",
|
| + UMA_HISTOGRAM_ID_kEnableSettingsWindow },
|
| { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
|
| - ::switches::kDisableSettingsWindow, "" },
|
| + ::switches::kDisableSettingsWindow, "",
|
| + UMA_HISTOGRAM_ID_kDisableSettingsWindow },
|
| };
|
|
|
| // RECORDING USER METRICS FOR FLAGS:
|
| @@ -500,7 +624,8 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_IGNORE_GPU_BLACKLIST_NAME,
|
| IDS_FLAGS_IGNORE_GPU_BLACKLIST_DESCRIPTION,
|
| kOsAll,
|
| - SINGLE_VALUE_TYPE(switches::kIgnoreGpuBlacklist)
|
| + SINGLE_VALUE_TYPE(switches::kIgnoreGpuBlacklist,
|
| + UMA_HISTOGRAM_ID_kIgnoreGpuBlacklist)
|
| },
|
| {
|
| "threaded-compositing-mode",
|
| @@ -512,22 +637,27 @@ const Experiment kExperiments[] = {
|
| 0,
|
| #endif
|
| ENABLE_DISABLE_VALUE_TYPE(switches::kEnableThreadedCompositing,
|
| - switches::kDisableThreadedCompositing)
|
| + UMA_HISTOGRAM_ID_kEnableThreadedCompositing,
|
| + switches::kDisableThreadedCompositing,
|
| + UMA_HISTOGRAM_ID_kDisableThreadedCompositing)
|
| },
|
| {
|
| "force-accelerated-composited-scrolling",
|
| - IDS_FLAGS_FORCE_ACCELERATED_OVERFLOW_SCROLL_MODE_NAME,
|
| - IDS_FLAGS_FORCE_ACCELERATED_OVERFLOW_SCROLL_MODE_DESCRIPTION,
|
| - kOsAll,
|
| - ENABLE_DISABLE_VALUE_TYPE(switches::kEnableAcceleratedOverflowScroll,
|
| - switches::kDisableAcceleratedOverflowScroll)
|
| + IDS_FLAGS_FORCE_ACCELERATED_OVERFLOW_SCROLL_MODE_NAME,
|
| + IDS_FLAGS_FORCE_ACCELERATED_OVERFLOW_SCROLL_MODE_DESCRIPTION, kOsAll,
|
| + ENABLE_DISABLE_VALUE_TYPE(
|
| + switches::kEnableAcceleratedOverflowScroll,
|
| + UMA_HISTOGRAM_ID_kEnableAcceleratedOverflowScroll,
|
| + switches::kDisableAcceleratedOverflowScroll,
|
| + UMA_HISTOGRAM_ID_kDisableAcceleratedOverflowScroll)
|
| },
|
| {
|
| "disable_layer_squashing",
|
| IDS_FLAGS_DISABLE_LAYER_SQUASHING_NAME,
|
| IDS_FLAGS_DISABLE_LAYER_SQUASHING_DESCRIPTION,
|
| kOsAll,
|
| - SINGLE_VALUE_TYPE(switches::kDisableLayerSquashing)
|
| + SINGLE_VALUE_TYPE(switches::kDisableLayerSquashing,
|
| + UMA_HISTOGRAM_ID_kDisableLayerSquashing)
|
| },
|
| #if defined(OS_WIN)
|
| {
|
| @@ -535,7 +665,8 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_DISABLE_DIRECT_WRITE_NAME,
|
| IDS_FLAGS_DISABLE_DIRECT_WRITE_DESCRIPTION,
|
| kOsWin,
|
| - SINGLE_VALUE_TYPE(switches::kDisableDirectWrite)
|
| + SINGLE_VALUE_TYPE(switches::kDisableDirectWrite,
|
| + UMA_HISTOGRAM_ID_kDisableDirectWrite)
|
| },
|
| #endif
|
| {
|
| @@ -543,35 +674,40 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_EXPERIMENTAL_CANVAS_FEATURES_NAME,
|
| IDS_FLAGS_ENABLE_EXPERIMENTAL_CANVAS_FEATURES_DESCRIPTION,
|
| kOsAll,
|
| - SINGLE_VALUE_TYPE(switches::kEnableExperimentalCanvasFeatures)
|
| + SINGLE_VALUE_TYPE(switches::kEnableExperimentalCanvasFeatures,
|
| + UMA_HISTOGRAM_ID_kEnableExperimentalCanvasFeatures)
|
| },
|
| {
|
| "disable-accelerated-2d-canvas",
|
| IDS_FLAGS_DISABLE_ACCELERATED_2D_CANVAS_NAME,
|
| IDS_FLAGS_DISABLE_ACCELERATED_2D_CANVAS_DESCRIPTION,
|
| kOsAll,
|
| - SINGLE_VALUE_TYPE(switches::kDisableAccelerated2dCanvas)
|
| + SINGLE_VALUE_TYPE(switches::kDisableAccelerated2dCanvas,
|
| + UMA_HISTOGRAM_ID_kDisableAccelerated2dCanvas)
|
| },
|
| {
|
| "composited-layer-borders",
|
| IDS_FLAGS_COMPOSITED_LAYER_BORDERS,
|
| IDS_FLAGS_COMPOSITED_LAYER_BORDERS_DESCRIPTION,
|
| kOsAll,
|
| - SINGLE_VALUE_TYPE(cc::switches::kShowCompositedLayerBorders)
|
| + SINGLE_VALUE_TYPE(cc::switches::kShowCompositedLayerBorders,
|
| + UMA_HISTOGRAM_ID_kShowCompositedLayerBorders)
|
| },
|
| {
|
| "show-fps-counter",
|
| IDS_FLAGS_SHOW_FPS_COUNTER,
|
| IDS_FLAGS_SHOW_FPS_COUNTER_DESCRIPTION,
|
| kOsAll,
|
| - SINGLE_VALUE_TYPE(cc::switches::kShowFPSCounter)
|
| + SINGLE_VALUE_TYPE(cc::switches::kShowFPSCounter,
|
| + UMA_HISTOGRAM_ID_kShowFPSCounter)
|
| },
|
| {
|
| "disable-webgl",
|
| IDS_FLAGS_DISABLE_WEBGL_NAME,
|
| IDS_FLAGS_DISABLE_WEBGL_DESCRIPTION,
|
| kOsAll,
|
| - SINGLE_VALUE_TYPE(switches::kDisableExperimentalWebGL)
|
| + SINGLE_VALUE_TYPE(switches::kDisableExperimentalWebGL,
|
| + UMA_HISTOGRAM_ID_kDisableExperimentalWebGL)
|
| },
|
| {
|
| "disable-webrtc",
|
| @@ -579,9 +715,10 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_DISABLE_WEBRTC_DESCRIPTION,
|
| kOsAndroid,
|
| #if defined(OS_ANDROID)
|
| - SINGLE_VALUE_TYPE(switches::kDisableWebRTC)
|
| + SINGLE_VALUE_TYPE(switches::kDisableWebRTC,
|
| + UMA_HISTOGRAM_ID_kDisableWebRTC)
|
| #else
|
| - SINGLE_VALUE_TYPE("")
|
| + SINGLE_VALUE_TYPE("", 0)
|
| #endif
|
| },
|
| #if defined(ENABLE_WEBRTC)
|
| @@ -590,21 +727,24 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_DISABLE_DEVICE_ENUMERATION_NAME,
|
| IDS_FLAGS_DISABLE_DEVICE_ENUMERATION_DESCRIPTION,
|
| kOsAll,
|
| - SINGLE_VALUE_TYPE(switches::kDisableDeviceEnumeration)
|
| + SINGLE_VALUE_TYPE(switches::kDisableDeviceEnumeration,
|
| + UMA_HISTOGRAM_ID_kDisableDeviceEnumeration)
|
| },
|
| {
|
| "disable-webrtc-hw-decoding",
|
| IDS_FLAGS_DISABLE_WEBRTC_HW_DECODING_NAME,
|
| IDS_FLAGS_DISABLE_WEBRTC_HW_DECODING_DESCRIPTION,
|
| kOsAndroid | kOsCrOS,
|
| - SINGLE_VALUE_TYPE(switches::kDisableWebRtcHWDecoding)
|
| + SINGLE_VALUE_TYPE(switches::kDisableWebRtcHWDecoding,
|
| + UMA_HISTOGRAM_ID_kDisableWebRtcHWDecoding)
|
| },
|
| {
|
| "disable-webrtc-hw-encoding",
|
| IDS_FLAGS_DISABLE_WEBRTC_HW_ENCODING_NAME,
|
| IDS_FLAGS_DISABLE_WEBRTC_HW_ENCODING_DESCRIPTION,
|
| kOsAndroid | kOsCrOS,
|
| - SINGLE_VALUE_TYPE(switches::kDisableWebRtcHWEncoding)
|
| + SINGLE_VALUE_TYPE(switches::kDisableWebRtcHWEncoding,
|
| + UMA_HISTOGRAM_ID_kDisableWebRtcHWEncoding)
|
| },
|
| #endif
|
| #if defined(OS_ANDROID)
|
| @@ -613,7 +753,8 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_DISABLE_WEBAUDIO_NAME,
|
| IDS_FLAGS_DISABLE_WEBAUDIO_DESCRIPTION,
|
| kOsAndroid,
|
| - SINGLE_VALUE_TYPE(switches::kDisableWebAudio)
|
| + SINGLE_VALUE_TYPE(switches::kDisableWebAudio,
|
| + UMA_HISTOGRAM_ID_kDisableWebAudio)
|
| },
|
| #endif
|
| {
|
| @@ -644,21 +785,23 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_NACL_NAME,
|
| IDS_FLAGS_ENABLE_NACL_DESCRIPTION,
|
| kOsAll,
|
| - SINGLE_VALUE_TYPE(switches::kEnableNaCl)
|
| + SINGLE_VALUE_TYPE(switches::kEnableNaCl, UMA_HISTOGRAM_ID_kEnableNaCl)
|
| },
|
| {
|
| "enable-nacl-debug", // FLAGS:RECORD_UMA
|
| IDS_FLAGS_ENABLE_NACL_DEBUG_NAME,
|
| IDS_FLAGS_ENABLE_NACL_DEBUG_DESCRIPTION,
|
| kOsDesktop,
|
| - SINGLE_VALUE_TYPE(switches::kEnableNaClDebug)
|
| + SINGLE_VALUE_TYPE(switches::kEnableNaClDebug,
|
| + UMA_HISTOGRAM_ID_kEnableNaClDebug)
|
| },
|
| {
|
| "disable-pnacl", // FLAGS:RECORD_UMA
|
| IDS_FLAGS_DISABLE_PNACL_NAME,
|
| IDS_FLAGS_DISABLE_PNACL_DESCRIPTION,
|
| kOsDesktop,
|
| - SINGLE_VALUE_TYPE(switches::kDisablePnacl)
|
| + SINGLE_VALUE_TYPE(switches::kDisablePnacl,
|
| + UMA_HISTOGRAM_ID_kDisablePnacl)
|
| },
|
| {
|
| "nacl-debug-mask", // FLAGS:RECORD_UMA
|
| @@ -673,35 +816,39 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_EXPERIMENTAL_EXTENSION_APIS_NAME,
|
| IDS_FLAGS_EXPERIMENTAL_EXTENSION_APIS_DESCRIPTION,
|
| kOsDesktop,
|
| - SINGLE_VALUE_TYPE(extensions::switches::kEnableExperimentalExtensionApis)
|
| + SINGLE_VALUE_TYPE(extensions::switches::kEnableExperimentalExtensionApis,
|
| + UMA_HISTOGRAM_ID_kEnableExperimentalExtensionApis)
|
| },
|
| {
|
| "extensions-on-chrome-urls",
|
| IDS_FLAGS_EXTENSIONS_ON_CHROME_URLS_NAME,
|
| IDS_FLAGS_EXTENSIONS_ON_CHROME_URLS_DESCRIPTION,
|
| kOsAll,
|
| - SINGLE_VALUE_TYPE(extensions::switches::kExtensionsOnChromeURLs)
|
| + SINGLE_VALUE_TYPE(extensions::switches::kExtensionsOnChromeURLs,
|
| + UMA_HISTOGRAM_ID_kExtensionsOnChromeURLs)
|
| },
|
| {
|
| "enable-fast-unload",
|
| IDS_FLAGS_ENABLE_FAST_UNLOAD_NAME,
|
| IDS_FLAGS_ENABLE_FAST_UNLOAD_DESCRIPTION,
|
| kOsAll,
|
| - SINGLE_VALUE_TYPE(switches::kEnableFastUnload)
|
| + SINGLE_VALUE_TYPE(switches::kEnableFastUnload,
|
| + UMA_HISTOGRAM_ID_kEnableFastUnload)
|
| },
|
| {
|
| "enable-app-window-controls",
|
| IDS_FLAGS_ENABLE_APP_WINDOW_CONTROLS_NAME,
|
| IDS_FLAGS_ENABLE_APP_WINDOW_CONTROLS_DESCRIPTION,
|
| kOsDesktop,
|
| - SINGLE_VALUE_TYPE(switches::kEnableAppWindowControls)
|
| + SINGLE_VALUE_TYPE(switches::kEnableAppWindowControls,
|
| + UMA_HISTOGRAM_ID_kEnableAppWindowControls)
|
| },
|
| {
|
| "disable-hyperlink-auditing",
|
| IDS_FLAGS_DISABLE_HYPERLINK_AUDITING_NAME,
|
| IDS_FLAGS_DISABLE_HYPERLINK_AUDITING_DESCRIPTION,
|
| kOsAll,
|
| - SINGLE_VALUE_TYPE(switches::kNoPings)
|
| + SINGLE_VALUE_TYPE(switches::kNoPings, UMA_HISTOGRAM_ID_kNoPings)
|
| },
|
| #if defined(OS_ANDROID)
|
| {
|
| @@ -710,7 +857,9 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_NEW_NTP_DESCRIPTION,
|
| kOsAndroid,
|
| ENABLE_DISABLE_VALUE_TYPE(switches::kEnableNewNTP,
|
| - switches::kDisableNewNTP)
|
| + UMA_HISTOGRAM_ID_kEnableNewNTP,
|
| + switches::kDisableNewNTP,
|
| + UMA_HISTOGRAM_ID_kDisableNewNTP)
|
| },
|
| {
|
| "contextual-search",
|
| @@ -718,7 +867,9 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_CONTEXTUAL_SEARCH_DESCRIPTION,
|
| kOsAndroid,
|
| ENABLE_DISABLE_VALUE_TYPE(switches::kEnableContextualSearch,
|
| - switches::kDisableContextualSearch)
|
| + UMA_HISTOGRAM_ID_kEnableContextualSearch,
|
| + switches::kDisableContextualSearch,
|
| + UMA_HISTOGRAM_ID_kDisableContextualSearch)
|
| },
|
| #endif
|
| {
|
| @@ -726,7 +877,8 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_SHOW_AUTOFILL_TYPE_PREDICTIONS_NAME,
|
| IDS_FLAGS_SHOW_AUTOFILL_TYPE_PREDICTIONS_DESCRIPTION,
|
| kOsAll,
|
| - SINGLE_VALUE_TYPE(autofill::switches::kShowAutofillTypePredictions)
|
| + SINGLE_VALUE_TYPE(autofill::switches::kShowAutofillTypePredictions,
|
| + UMA_HISTOGRAM_ID_kShowAutofillTypePredictions)
|
| },
|
| {
|
| "enable-gesture-tap-highlight",
|
| @@ -734,7 +886,9 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_GESTURE_TAP_HIGHLIGHTING_DESCRIPTION,
|
| kOsLinux | kOsCrOS | kOsWin | kOsAndroid,
|
| ENABLE_DISABLE_VALUE_TYPE(switches::kEnableGestureTapHighlight,
|
| - switches::kDisableGestureTapHighlight)
|
| + UMA_HISTOGRAM_ID_kEnableGestureTapHighlight,
|
| + switches::kDisableGestureTapHighlight,
|
| + UMA_HISTOGRAM_ID_kDisableGestureTapHighlight)
|
| },
|
| {
|
| "enable-smooth-scrolling", // FLAGS:RECORD_UMA
|
| @@ -743,7 +897,8 @@ const Experiment kExperiments[] = {
|
| // Can't expose the switch unless the code is compiled in.
|
| // On by default for the Mac (different implementation in WebKit).
|
| kOsLinux,
|
| - SINGLE_VALUE_TYPE(switches::kEnableSmoothScrolling)
|
| + SINGLE_VALUE_TYPE(switches::kEnableSmoothScrolling,
|
| + UMA_HISTOGRAM_ID_kEnableSmoothScrolling)
|
| },
|
| #if defined(USE_AURA) || defined(OS_LINUX)
|
| {
|
| @@ -761,7 +916,8 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_PANELS_NAME,
|
| IDS_FLAGS_ENABLE_PANELS_DESCRIPTION,
|
| kOsDesktop,
|
| - SINGLE_VALUE_TYPE(switches::kEnablePanels)
|
| + SINGLE_VALUE_TYPE(switches::kEnablePanels,
|
| + UMA_HISTOGRAM_ID_kEnablePanels)
|
| },
|
| {
|
| // See http://crbug.com/120416 for how to remove this flag.
|
| @@ -769,7 +925,8 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_SAVE_PAGE_AS_MHTML_NAME,
|
| IDS_FLAGS_SAVE_PAGE_AS_MHTML_DESCRIPTION,
|
| kOsMac | kOsWin | kOsLinux,
|
| - SINGLE_VALUE_TYPE(switches::kSavePageAsMHTML)
|
| + SINGLE_VALUE_TYPE(switches::kSavePageAsMHTML,
|
| + UMA_HISTOGRAM_ID_kSavePageAsMHTML)
|
| },
|
| {
|
| "enable-quic",
|
| @@ -777,7 +934,9 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_QUIC_DESCRIPTION,
|
| kOsAll,
|
| ENABLE_DISABLE_VALUE_TYPE(switches::kEnableQuic,
|
| - switches::kDisableQuic)
|
| + UMA_HISTOGRAM_ID_kEnableQuic,
|
| + switches::kDisableQuic,
|
| + UMA_HISTOGRAM_ID_kDisableQuic)
|
| },
|
| {
|
| "enable-quic-https",
|
| @@ -785,14 +944,16 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_QUIC_HTTPS_DESCRIPTION,
|
| kOsAll,
|
| ENABLE_DISABLE_VALUE_TYPE(switches::kEnableQuicHttps,
|
| - switches::kDisableQuicHttps)
|
| + UMA_HISTOGRAM_ID_kEnableQuicHttps,
|
| + switches::kDisableQuicHttps,
|
| + UMA_HISTOGRAM_ID_kDisableQuicHttps)
|
| },
|
| {
|
| "enable-spdy4",
|
| IDS_FLAGS_ENABLE_SPDY4_NAME,
|
| IDS_FLAGS_ENABLE_SPDY4_DESCRIPTION,
|
| kOsAll,
|
| - SINGLE_VALUE_TYPE(switches::kEnableSpdy4)
|
| + SINGLE_VALUE_TYPE(switches::kEnableSpdy4, UMA_HISTOGRAM_ID_kEnableSpdy4)
|
| },
|
| {
|
| "enable-async-dns",
|
| @@ -800,28 +961,33 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_ASYNC_DNS_DESCRIPTION,
|
| kOsWin | kOsMac | kOsLinux | kOsCrOS,
|
| ENABLE_DISABLE_VALUE_TYPE(switches::kEnableAsyncDns,
|
| - switches::kDisableAsyncDns)
|
| + UMA_HISTOGRAM_ID_kEnableAsyncDns,
|
| + switches::kDisableAsyncDns,
|
| + UMA_HISTOGRAM_ID_kDisableAsyncDns)
|
| },
|
| {
|
| "disable-media-source",
|
| IDS_FLAGS_DISABLE_MEDIA_SOURCE_NAME,
|
| IDS_FLAGS_DISABLE_MEDIA_SOURCE_DESCRIPTION,
|
| kOsAll,
|
| - SINGLE_VALUE_TYPE(switches::kDisableMediaSource)
|
| + SINGLE_VALUE_TYPE(switches::kDisableMediaSource,
|
| + UMA_HISTOGRAM_ID_kDisableMediaSource)
|
| },
|
| {
|
| "enable-encrypted-media",
|
| IDS_FLAGS_ENABLE_ENCRYPTED_MEDIA_NAME,
|
| IDS_FLAGS_ENABLE_ENCRYPTED_MEDIA_DESCRIPTION,
|
| kOsAll,
|
| - SINGLE_VALUE_TYPE(switches::kEnableEncryptedMedia)
|
| + SINGLE_VALUE_TYPE(switches::kEnableEncryptedMedia,
|
| + UMA_HISTOGRAM_ID_kEnableEncryptedMedia)
|
| },
|
| {
|
| "disable-prefixed-encrypted-media",
|
| IDS_FLAGS_DISABLE_PREFIXED_ENCRYPTED_MEDIA_NAME,
|
| IDS_FLAGS_DISABLE_PREFIXED_ENCRYPTED_MEDIA_DESCRIPTION,
|
| kOsAll,
|
| - SINGLE_VALUE_TYPE(switches::kDisablePrefixedEncryptedMedia)
|
| + SINGLE_VALUE_TYPE(switches::kDisablePrefixedEncryptedMedia,
|
| + UMA_HISTOGRAM_ID_kDisablePrefixedEncryptedMedia)
|
| },
|
| #if defined(OS_ANDROID)
|
| {
|
| @@ -829,14 +995,17 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_DISABLE_INFOBAR_FOR_PROTECTED_MEDIA_IDENTIFIER_NAME,
|
| IDS_FLAGS_DISABLE_INFOBAR_FOR_PROTECTED_MEDIA_IDENTIFIER_DESCRIPTION,
|
| kOsAndroid,
|
| - SINGLE_VALUE_TYPE(switches::kDisableInfobarForProtectedMediaIdentifier)
|
| + SINGLE_VALUE_TYPE(
|
| + switches::kDisableInfobarForProtectedMediaIdentifier,
|
| + UMA_HISTOGRAM_ID_kDisableInfobarForProtectedMediaIdentifier)
|
| },
|
| {
|
| "mediadrm-enable-non-compositing",
|
| IDS_FLAGS_MEDIADRM_ENABLE_NON_COMPOSITING_NAME,
|
| IDS_FLAGS_MEDIADRM_ENABLE_NON_COMPOSITING_DESCRIPTION,
|
| kOsAndroid,
|
| - SINGLE_VALUE_TYPE(switches::kMediaDrmEnableNonCompositing)
|
| + SINGLE_VALUE_TYPE(switches::kMediaDrmEnableNonCompositing,
|
| + UMA_HISTOGRAM_ID_kMediaDrmEnableNonCompositing)
|
| },
|
| #endif // defined(OS_ANDROID)
|
| {
|
| @@ -844,7 +1013,9 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_JAVASCRIPT_HARMONY_NAME,
|
| IDS_FLAGS_ENABLE_JAVASCRIPT_HARMONY_DESCRIPTION,
|
| kOsAll,
|
| - SINGLE_VALUE_TYPE_AND_VALUE(switches::kJavaScriptFlags, "--harmony")
|
| + SINGLE_VALUE_TYPE_AND_VALUE(switches::kJavaScriptFlags,
|
| + "--harmony",
|
| + UMA_HISTOGRAM_ID_kJavaScriptFlags)
|
| },
|
| {
|
| "disable-software-rasterizer",
|
| @@ -855,7 +1026,8 @@ const Experiment kExperiments[] = {
|
| #else
|
| 0,
|
| #endif
|
| - SINGLE_VALUE_TYPE(switches::kDisableSoftwareRasterizer)
|
| + SINGLE_VALUE_TYPE(switches::kDisableSoftwareRasterizer,
|
| + UMA_HISTOGRAM_ID_kDisableSoftwareRasterizer)
|
| },
|
| {
|
| "enable-gpu-rasterization",
|
| @@ -869,56 +1041,63 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_EXPERIMENTAL_WEB_PLATFORM_FEATURES_NAME,
|
| IDS_FLAGS_EXPERIMENTAL_WEB_PLATFORM_FEATURES_DESCRIPTION,
|
| kOsAll,
|
| - SINGLE_VALUE_TYPE(switches::kEnableExperimentalWebPlatformFeatures)
|
| + SINGLE_VALUE_TYPE(
|
| + switches::kEnableExperimentalWebPlatformFeatures,
|
| + UMA_HISTOGRAM_ID_kEnableExperimentalWebPlatformFeatures)
|
| },
|
| {
|
| "disable-ntp-other-sessions-menu",
|
| IDS_FLAGS_NTP_OTHER_SESSIONS_MENU_NAME,
|
| IDS_FLAGS_NTP_OTHER_SESSIONS_MENU_DESCRIPTION,
|
| kOsDesktop,
|
| - SINGLE_VALUE_TYPE(switches::kDisableNTPOtherSessionsMenu)
|
| + SINGLE_VALUE_TYPE(switches::kDisableNTPOtherSessionsMenu,
|
| + UMA_HISTOGRAM_ID_kDisableNTPOtherSessionsMenu)
|
| },
|
| {
|
| "enable-devtools-experiments",
|
| IDS_FLAGS_ENABLE_DEVTOOLS_EXPERIMENTS_NAME,
|
| IDS_FLAGS_ENABLE_DEVTOOLS_EXPERIMENTS_DESCRIPTION,
|
| kOsDesktop,
|
| - SINGLE_VALUE_TYPE(switches::kEnableDevToolsExperiments)
|
| + SINGLE_VALUE_TYPE(switches::kEnableDevToolsExperiments,
|
| + UMA_HISTOGRAM_ID_kEnableDevToolsExperiments)
|
| },
|
| {
|
| "silent-debugger-extension-api",
|
| IDS_FLAGS_SILENT_DEBUGGER_EXTENSION_API_NAME,
|
| IDS_FLAGS_SILENT_DEBUGGER_EXTENSION_API_DESCRIPTION,
|
| kOsDesktop,
|
| - SINGLE_VALUE_TYPE(switches::kSilentDebuggerExtensionAPI)
|
| + SINGLE_VALUE_TYPE(switches::kSilentDebuggerExtensionAPI,
|
| + UMA_HISTOGRAM_ID_kSilentDebuggerExtensionAPI)
|
| },
|
| {
|
| "spellcheck-autocorrect",
|
| IDS_FLAGS_SPELLCHECK_AUTOCORRECT,
|
| IDS_FLAGS_SPELLCHECK_AUTOCORRECT_DESCRIPTION,
|
| kOsWin | kOsLinux | kOsCrOS,
|
| - SINGLE_VALUE_TYPE(switches::kEnableSpellingAutoCorrect)
|
| + SINGLE_VALUE_TYPE(switches::kEnableSpellingAutoCorrect,
|
| + UMA_HISTOGRAM_ID_kEnableSpellingAutoCorrect)
|
| },
|
| {
|
| "enable-scroll-prediction",
|
| IDS_FLAGS_ENABLE_SCROLL_PREDICTION_NAME,
|
| IDS_FLAGS_ENABLE_SCROLL_PREDICTION_DESCRIPTION,
|
| kOsDesktop,
|
| - SINGLE_VALUE_TYPE(switches::kEnableScrollPrediction)
|
| + SINGLE_VALUE_TYPE(switches::kEnableScrollPrediction,
|
| + UMA_HISTOGRAM_ID_kEnableScrollPrediction)
|
| },
|
| {
|
| "touch-events",
|
| IDS_TOUCH_EVENTS_NAME,
|
| IDS_TOUCH_EVENTS_DESCRIPTION,
|
| - kOsDesktop,
|
| - MULTI_VALUE_TYPE(kTouchEventsChoices)
|
| + kOsDesktop, MULTI_VALUE_TYPE(kTouchEventsChoices)
|
| },
|
| {
|
| "disable-touch-adjustment",
|
| IDS_DISABLE_TOUCH_ADJUSTMENT_NAME,
|
| IDS_DISABLE_TOUCH_ADJUSTMENT_DESCRIPTION,
|
| kOsWin | kOsLinux | kOsCrOS,
|
| - SINGLE_VALUE_TYPE(switches::kDisableTouchAdjustment)
|
| + SINGLE_VALUE_TYPE(switches::kDisableTouchAdjustment,
|
| + UMA_HISTOGRAM_ID_kDisableTouchAdjustment)
|
| },
|
| #if defined(OS_CHROMEOS)
|
| {
|
| @@ -928,7 +1107,9 @@ const Experiment kExperiments[] = {
|
| kOsCrOS,
|
| ENABLE_DISABLE_VALUE_TYPE(
|
| chromeos::switches::kEnableNetworkPortalNotification,
|
| - chromeos::switches::kDisableNetworkPortalNotification)
|
| + UMA_HISTOGRAM_ID_kEnableNetworkPortalNotification,
|
| + chromeos::switches::kDisableNetworkPortalNotification,
|
| + UMA_HISTOGRAM_ID_kDisableNetworkPortalNotification)
|
| },
|
| #endif
|
| {
|
| @@ -936,7 +1117,8 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_DOWNLOAD_RESUMPTION_NAME,
|
| IDS_FLAGS_ENABLE_DOWNLOAD_RESUMPTION_DESCRIPTION,
|
| kOsDesktop,
|
| - SINGLE_VALUE_TYPE(switches::kEnableDownloadResumption)
|
| + SINGLE_VALUE_TYPE(switches::kEnableDownloadResumption,
|
| + UMA_HISTOGRAM_ID_kEnableDownloadResumption)
|
| },
|
| // Native client is compiled out when DISABLE_NACL is defined.
|
| #if !defined(DISABLE_NACL)
|
| @@ -945,7 +1127,9 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ALLOW_NACL_SOCKET_API_NAME,
|
| IDS_FLAGS_ALLOW_NACL_SOCKET_API_DESCRIPTION,
|
| kOsDesktop,
|
| - SINGLE_VALUE_TYPE_AND_VALUE(switches::kAllowNaClSocketAPI, "*")
|
| + SINGLE_VALUE_TYPE_AND_VALUE(switches::kAllowNaClSocketAPI,
|
| + "*",
|
| + UMA_HISTOGRAM_ID_kAllowNaClSocketAPI)
|
| },
|
| #endif
|
| {
|
| @@ -953,7 +1137,9 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_FORCE_HIGH_DPI_NAME,
|
| IDS_FLAGS_FORCE_HIGH_DPI_DESCRIPTION,
|
| kOsCrOS,
|
| - SINGLE_VALUE_TYPE_AND_VALUE(switches::kForceDeviceScaleFactor, "2")
|
| + SINGLE_VALUE_TYPE_AND_VALUE(switches::kForceDeviceScaleFactor,
|
| + "2",
|
| + UMA_HISTOGRAM_ID_kForceDeviceScaleFactor)
|
| },
|
| #if defined(OS_CHROMEOS)
|
| {
|
| @@ -961,7 +1147,8 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ALLOW_TOUCHPAD_THREE_FINGER_CLICK_NAME,
|
| IDS_FLAGS_ALLOW_TOUCHPAD_THREE_FINGER_CLICK_DESCRIPTION,
|
| kOsCrOS,
|
| - SINGLE_VALUE_TYPE(chromeos::switches::kEnableTouchpadThreeFingerClick)
|
| + SINGLE_VALUE_TYPE(chromeos::switches::kEnableTouchpadThreeFingerClick,
|
| + UMA_HISTOGRAM_ID_kEnableTouchpadThreeFingerClick)
|
| },
|
| #endif
|
| #if defined(USE_ASH)
|
| @@ -970,21 +1157,26 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_DISABLE_MINIMIZE_ON_SECOND_LAUNCHER_ITEM_CLICK_NAME,
|
| IDS_FLAGS_DISABLE_MINIMIZE_ON_SECOND_LAUNCHER_ITEM_CLICK_DESCRIPTION,
|
| kOsAll,
|
| - SINGLE_VALUE_TYPE(switches::kDisableMinimizeOnSecondLauncherItemClick)
|
| + SINGLE_VALUE_TYPE(switches::kDisableMinimizeOnSecondLauncherItemClick,
|
| + UMA_HISTOGRAM_ID_kDisableMinimizeOnSecondLauncherItemClick)
|
| },
|
| {
|
| "show-touch-hud",
|
| IDS_FLAGS_SHOW_TOUCH_HUD_NAME,
|
| IDS_FLAGS_SHOW_TOUCH_HUD_DESCRIPTION,
|
| kOsAll,
|
| - SINGLE_VALUE_TYPE(ash::switches::kAshTouchHud)
|
| + SINGLE_VALUE_TYPE(ash::switches::kAshTouchHud,
|
| + UMA_HISTOGRAM_ID_kAshTouchHud)
|
| },
|
| {
|
| "enable-pinch",
|
| IDS_FLAGS_ENABLE_PINCH_SCALE_NAME,
|
| IDS_FLAGS_ENABLE_PINCH_SCALE_DESCRIPTION,
|
| kOsLinux | kOsWin | kOsCrOS,
|
| - ENABLE_DISABLE_VALUE_TYPE(switches::kEnablePinch, switches::kDisablePinch),
|
| + ENABLE_DISABLE_VALUE_TYPE(switches::kEnablePinch,
|
| + UMA_HISTOGRAM_ID_kEnablePinch,
|
| + switches::kDisablePinch,
|
| + UMA_HISTOGRAM_ID_kDisablePinch)
|
| },
|
| #endif // defined(USE_ASH)
|
| {
|
| @@ -992,16 +1184,18 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_PINCH_VIRTUAL_VIEWPORT_NAME,
|
| IDS_FLAGS_ENABLE_PINCH_VIRTUAL_VIEWPORT_DESCRIPTION,
|
| kOsLinux | kOsWin | kOsCrOS | kOsAndroid,
|
| - ENABLE_DISABLE_VALUE_TYPE(
|
| - cc::switches::kEnablePinchVirtualViewport,
|
| - cc::switches::kDisablePinchVirtualViewport),
|
| + ENABLE_DISABLE_VALUE_TYPE(cc::switches::kEnablePinchVirtualViewport,
|
| + UMA_HISTOGRAM_ID_kEnablePinchVirtualViewport,
|
| + cc::switches::kDisablePinchVirtualViewport,
|
| + UMA_HISTOGRAM_ID_kDisablePinchVirtualViewport)
|
| },
|
| {
|
| "enable-viewport-meta",
|
| IDS_FLAGS_ENABLE_VIEWPORT_META_NAME,
|
| IDS_FLAGS_ENABLE_VIEWPORT_META_DESCRIPTION,
|
| kOsLinux | kOsWin | kOsCrOS | kOsMac,
|
| - SINGLE_VALUE_TYPE(switches::kEnableViewportMeta),
|
| + SINGLE_VALUE_TYPE(switches::kEnableViewportMeta,
|
| + UMA_HISTOGRAM_ID_kEnableViewportMeta)
|
| },
|
| #if defined(OS_CHROMEOS)
|
| {
|
| @@ -1009,14 +1203,16 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_DISABLE_BOOT_ANIMATION,
|
| IDS_FLAGS_DISABLE_BOOT_ANIMATION_DESCRIPTION,
|
| kOsCrOSOwnerOnly,
|
| - SINGLE_VALUE_TYPE(chromeos::switches::kDisableBootAnimation),
|
| + SINGLE_VALUE_TYPE(chromeos::switches::kDisableBootAnimation,
|
| + UMA_HISTOGRAM_ID_kDisableBootAnimation)
|
| },
|
| {
|
| "enable-new-audio-player",
|
| IDS_FLAGS_FILE_MANAGER_ENABLE_NEW_AUDIO_PLAYER_NAME,
|
| IDS_FLAGS_FILE_MANAGER_ENABLE_NEW_AUDIO_PLAYER_DESCRIPTION,
|
| kOsCrOS,
|
| - SINGLE_VALUE_TYPE(chromeos::switches::kFileManagerEnableNewAudioPlayer)
|
| + SINGLE_VALUE_TYPE(chromeos::switches::kFileManagerEnableNewAudioPlayer,
|
| + UMA_HISTOGRAM_ID_kFileManagerEnableNewAudioPlayer)
|
| },
|
| {
|
| "enable-new-gallery",
|
| @@ -1030,28 +1226,33 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_DISABLE_QUICKOFFICE_COMPONENT_APP_NAME,
|
| IDS_FLAGS_DISABLE_QUICKOFFICE_COMPONENT_APP_DESCRIPTION,
|
| kOsCrOS,
|
| - SINGLE_VALUE_TYPE(chromeos::switches::kDisableQuickofficeComponentApp),
|
| + SINGLE_VALUE_TYPE(chromeos::switches::kDisableQuickofficeComponentApp,
|
| + UMA_HISTOGRAM_ID_kDisableQuickofficeComponentApp)
|
| },
|
| {
|
| "disable-saml-signin",
|
| IDS_FLAGS_DISABLE_SAML_SIGNIN_NAME,
|
| IDS_FLAGS_DISABLE_SAML_SIGNIN_DESCRIPTION,
|
| kOsCrOS,
|
| - SINGLE_VALUE_TYPE(chromeos::switches::kDisableSamlSignin),
|
| + SINGLE_VALUE_TYPE(chromeos::switches::kDisableSamlSignin,
|
| + UMA_HISTOGRAM_ID_kDisableSamlSignin)
|
| },
|
| {
|
| "disable-display-color-calibration",
|
| IDS_FLAGS_DISABLE_DISPLAY_COLOR_CALIBRATION_NAME,
|
| IDS_FLAGS_DISABLE_DISPLAY_COLOR_CALIBRATION_DESCRIPTION,
|
| kOsCrOS,
|
| - SINGLE_VALUE_TYPE(ui::switches::kDisableDisplayColorCalibration),
|
| + SINGLE_VALUE_TYPE(ui::switches::kDisableDisplayColorCalibration,
|
| + UMA_HISTOGRAM_ID_kDisableDisplayColorCalibration)
|
| },
|
| #endif // defined(OS_CHROMEOS)
|
| - { "disable-accelerated-video-decode",
|
| + {
|
| + "disable-accelerated-video-decode",
|
| IDS_FLAGS_DISABLE_ACCELERATED_VIDEO_DECODE_NAME,
|
| IDS_FLAGS_DISABLE_ACCELERATED_VIDEO_DECODE_DESCRIPTION,
|
| kOsWin | kOsCrOS,
|
| - SINGLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode),
|
| + SINGLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode,
|
| + UMA_HISTOGRAM_ID_kDisableAcceleratedVideoDecode)
|
| },
|
| #if defined(USE_ASH)
|
| {
|
| @@ -1059,13 +1260,16 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_DEBUG_SHORTCUTS_NAME,
|
| IDS_FLAGS_DEBUG_SHORTCUTS_DESCRIPTION,
|
| kOsAll,
|
| - SINGLE_VALUE_TYPE(ash::switches::kAshDebugShortcuts),
|
| + SINGLE_VALUE_TYPE(ash::switches::kAshDebugShortcuts,
|
| + UMA_HISTOGRAM_ID_kAshDebugShortcuts)
|
| },
|
| - { "ash-enable-touch-view-testing",
|
| + {
|
| + "ash-enable-touch-view-testing",
|
| IDS_FLAGS_ASH_ENABLE_TOUCH_VIEW_TESTING_NAME,
|
| IDS_FLAGS_ASH_ENABLE_TOUCH_VIEW_TESTING_DESCRIPTION,
|
| kOsCrOS,
|
| - SINGLE_VALUE_TYPE(ash::switches::kAshEnableTouchViewTesting),
|
| + SINGLE_VALUE_TYPE(ash::switches::kAshEnableTouchViewTesting,
|
| + UMA_HISTOGRAM_ID_kAshEnableTouchViewTesting)
|
| },
|
| #endif
|
| #if defined(OS_CHROMEOS)
|
| @@ -1074,14 +1278,16 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_CARRIER_SWITCHING,
|
| IDS_FLAGS_ENABLE_CARRIER_SWITCHING_DESCRIPTION,
|
| kOsCrOS,
|
| - SINGLE_VALUE_TYPE(chromeos::switches::kEnableCarrierSwitching)
|
| + SINGLE_VALUE_TYPE(chromeos::switches::kEnableCarrierSwitching,
|
| + UMA_HISTOGRAM_ID_kEnableCarrierSwitching)
|
| },
|
| {
|
| "enable-request-tablet-site",
|
| IDS_FLAGS_ENABLE_REQUEST_TABLET_SITE_NAME,
|
| IDS_FLAGS_ENABLE_REQUEST_TABLET_SITE_DESCRIPTION,
|
| kOsCrOS,
|
| - SINGLE_VALUE_TYPE(chromeos::switches::kEnableRequestTabletSite)
|
| + SINGLE_VALUE_TYPE(chromeos::switches::kEnableRequestTabletSite,
|
| + UMA_HISTOGRAM_ID_kEnableRequestTabletSite)
|
| },
|
| #endif
|
| {
|
| @@ -1089,7 +1295,8 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_DEBUG_PACKED_APP_NAME,
|
| IDS_FLAGS_DEBUG_PACKED_APP_DESCRIPTION,
|
| kOsDesktop,
|
| - SINGLE_VALUE_TYPE(switches::kDebugPackedApps)
|
| + SINGLE_VALUE_TYPE(switches::kDebugPackedApps,
|
| + UMA_HISTOGRAM_ID_kDebugPackedApps)
|
| },
|
| {
|
| "enable-password-generation",
|
| @@ -1097,7 +1304,9 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_PASSWORD_GENERATION_DESCRIPTION,
|
| kOsDesktop,
|
| ENABLE_DISABLE_VALUE_TYPE(autofill::switches::kEnablePasswordGeneration,
|
| - autofill::switches::kDisablePasswordGeneration)
|
| + UMA_HISTOGRAM_ID_kEnablePasswordGeneration,
|
| + autofill::switches::kDisablePasswordGeneration,
|
| + UMA_HISTOGRAM_ID_kDisablePasswordGeneration)
|
| },
|
| {
|
| "enable-automatic-password-saving",
|
| @@ -1105,28 +1314,33 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_AUTOMATIC_PASSWORD_SAVING_DESCRIPTION,
|
| kOsDesktop,
|
| SINGLE_VALUE_TYPE(
|
| - password_manager::switches::kEnableAutomaticPasswordSaving)
|
| + password_manager::switches::kEnableAutomaticPasswordSaving,
|
| + UMA_HISTOGRAM_ID_kEnableAutomaticPasswordSaving)
|
| },
|
| {
|
| "password-manager-reauthentication",
|
| IDS_FLAGS_PASSWORD_MANAGER_REAUTHENTICATION_NAME,
|
| IDS_FLAGS_PASSWORD_MANAGER_REAUTHENTICATION_DESCRIPTION,
|
| kOsMac | kOsWin,
|
| - SINGLE_VALUE_TYPE(switches::kDisablePasswordManagerReauthentication)
|
| + SINGLE_VALUE_TYPE(
|
| + switches::kDisablePasswordManagerReauthentication,
|
| + UMA_HISTOGRAM_ID_kDisablePasswordManagerReauthentication)
|
| },
|
| {
|
| "enable-deferred-image-decoding",
|
| IDS_FLAGS_ENABLE_DEFERRED_IMAGE_DECODING_NAME,
|
| IDS_FLAGS_ENABLE_DEFERRED_IMAGE_DECODING_DESCRIPTION,
|
| kOsMac | kOsLinux | kOsCrOS,
|
| - SINGLE_VALUE_TYPE(switches::kEnableDeferredImageDecoding)
|
| + SINGLE_VALUE_TYPE(switches::kEnableDeferredImageDecoding,
|
| + UMA_HISTOGRAM_ID_kEnableDeferredImageDecoding)
|
| },
|
| {
|
| "performance-monitor-gathering",
|
| IDS_FLAGS_PERFORMANCE_MONITOR_GATHERING_NAME,
|
| IDS_FLAGS_PERFORMANCE_MONITOR_GATHERING_DESCRIPTION,
|
| kOsAll,
|
| - SINGLE_VALUE_TYPE(switches::kPerformanceMonitorGathering)
|
| + SINGLE_VALUE_TYPE(switches::kPerformanceMonitorGathering,
|
| + UMA_HISTOGRAM_ID_kPerformanceMonitorGathering)
|
| },
|
| {
|
| "wallet-service-use-sandbox",
|
| @@ -1135,7 +1349,9 @@ const Experiment kExperiments[] = {
|
| kOsAndroid | kOsDesktop,
|
| ENABLE_DISABLE_VALUE_TYPE_AND_VALUE(
|
| autofill::switches::kWalletServiceUseSandbox, "1",
|
| - autofill::switches::kWalletServiceUseSandbox, "0")
|
| + UMA_HISTOGRAM_ID_kWalletServiceUseSandbox,
|
| + autofill::switches::kWalletServiceUseSandbox, "0",
|
| + UMA_HISTOGRAM_ID_kWalletServiceUseSandbox)
|
| },
|
| #if defined(USE_AURA)
|
| {
|
| @@ -1153,7 +1369,9 @@ const Experiment kExperiments[] = {
|
| kOsCrOS,
|
| ENABLE_DISABLE_VALUE_TYPE_AND_VALUE(
|
| switches::kScrollEndEffect, "1",
|
| - switches::kScrollEndEffect, "0")
|
| + UMA_HISTOGRAM_ID_kScrollEndEffect,
|
| + switches::kScrollEndEffect, "0",
|
| + UMA_HISTOGRAM_ID_kScrollEndEffect)
|
| },
|
| {
|
| "enable-touch-drag-drop",
|
| @@ -1161,7 +1379,9 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_TOUCH_DRAG_DROP_DESCRIPTION,
|
| kOsWin | kOsCrOS,
|
| ENABLE_DISABLE_VALUE_TYPE(switches::kEnableTouchDragDrop,
|
| - switches::kDisableTouchDragDrop)
|
| + UMA_HISTOGRAM_ID_kEnableTouchDragDrop,
|
| + switches::kDisableTouchDragDrop,
|
| + UMA_HISTOGRAM_ID_kDisableTouchDragDrop)
|
| },
|
| {
|
| "enable-touch-editing",
|
| @@ -1169,7 +1389,9 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_TOUCH_EDITING_DESCRIPTION,
|
| kOsCrOS | kOsWin | kOsLinux,
|
| ENABLE_DISABLE_VALUE_TYPE(switches::kEnableTouchEditing,
|
| - switches::kDisableTouchEditing)
|
| + UMA_HISTOGRAM_ID_kEnableTouchEditing,
|
| + switches::kDisableTouchEditing,
|
| + UMA_HISTOGRAM_ID_kDisableTouchEditing)
|
| },
|
| {
|
| "enable-suggestions-service",
|
| @@ -1177,15 +1399,20 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_SUGGESTIONS_SERVICE_DESCRIPTION,
|
| kOsAndroid | kOsCrOS,
|
| ENABLE_DISABLE_VALUE_TYPE(switches::kEnableSuggestionsService,
|
| - switches::kDisableSuggestionsService)
|
| + UMA_HISTOGRAM_ID_kEnableSuggestionsService,
|
| + switches::kDisableSuggestionsService,
|
| + UMA_HISTOGRAM_ID_kDisableSuggestionsService)
|
| },
|
| {
|
| "enable-sync-synced-notifications",
|
| IDS_FLAGS_ENABLE_SYNCED_NOTIFICATIONS_NAME,
|
| IDS_FLAGS_ENABLE_SYNCED_NOTIFICATIONS_DESCRIPTION,
|
| kOsDesktop,
|
| - ENABLE_DISABLE_VALUE_TYPE(switches::kEnableSyncSyncedNotifications,
|
| - switches::kDisableSyncSyncedNotifications)
|
| + ENABLE_DISABLE_VALUE_TYPE(
|
| + switches::kEnableSyncSyncedNotifications,
|
| + UMA_HISTOGRAM_ID_kEnableSyncSyncedNotifications,
|
| + switches::kDisableSyncSyncedNotifications,
|
| + UMA_HISTOGRAM_ID_kDisableSyncSyncedNotifications)
|
| },
|
| #if defined(ENABLE_APP_LIST)
|
| {
|
| @@ -1202,7 +1429,8 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_AVFOUNDATION_NAME,
|
| IDS_FLAGS_ENABLE_AVFOUNDATION_DESCRIPTION,
|
| kOsMac,
|
| - SINGLE_VALUE_TYPE(switches::kEnableAVFoundation)
|
| + SINGLE_VALUE_TYPE(switches::kEnableAVFoundation,
|
| + UMA_HISTOGRAM_ID_kEnableAVFoundation)
|
| },
|
| #endif
|
| {
|
| @@ -1241,15 +1469,20 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_OFFLINE_AUTO_RELOAD_DESCRIPTION,
|
| kOsAll,
|
| ENABLE_DISABLE_VALUE_TYPE(switches::kEnableOfflineAutoReload,
|
| - switches::kDisableOfflineAutoReload)
|
| + UMA_HISTOGRAM_ID_kEnableOfflineAutoReload,
|
| + switches::kDisableOfflineAutoReload,
|
| + UMA_HISTOGRAM_ID_kDisableOfflineAutoReload)
|
| },
|
| {
|
| "enable-offline-auto-reload-visible-only",
|
| IDS_FLAGS_ENABLE_OFFLINE_AUTO_RELOAD_VISIBLE_ONLY_NAME,
|
| IDS_FLAGS_ENABLE_OFFLINE_AUTO_RELOAD_VISIBLE_ONLY_DESCRIPTION,
|
| kOsAll,
|
| - ENABLE_DISABLE_VALUE_TYPE(switches::kEnableOfflineAutoReloadVisibleOnly,
|
| - switches::kDisableOfflineAutoReloadVisibleOnly)
|
| + ENABLE_DISABLE_VALUE_TYPE(
|
| + switches::kEnableOfflineAutoReloadVisibleOnly,
|
| + UMA_HISTOGRAM_ID_kEnableOfflineAutoReloadVisibleOnly,
|
| + switches::kDisableOfflineAutoReloadVisibleOnly,
|
| + UMA_HISTOGRAM_ID_kDisableOfflineAutoReloadVisibleOnly)
|
| },
|
| {
|
| "enable-offline-load-stale-cache",
|
| @@ -1257,7 +1490,9 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_OFFLINE_LOAD_STALE_DESCRIPTION,
|
| kOsLinux | kOsMac | kOsWin | kOsAndroid,
|
| ENABLE_DISABLE_VALUE_TYPE(switches::kEnableOfflineLoadStaleCache,
|
| - switches::kDisableOfflineLoadStaleCache)
|
| + UMA_HISTOGRAM_ID_kEnableOfflineLoadStaleCache,
|
| + switches::kDisableOfflineLoadStaleCache,
|
| + UMA_HISTOGRAM_ID_kDisableOfflineLoadStaleCache)
|
| },
|
| {
|
| "default-tile-width",
|
| @@ -1279,7 +1514,9 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_DISABLE_GESTURE_REQUIREMENT_FOR_MEDIA_PLAYBACK_NAME,
|
| IDS_FLAGS_DISABLE_GESTURE_REQUIREMENT_FOR_MEDIA_PLAYBACK_DESCRIPTION,
|
| kOsAndroid,
|
| - SINGLE_VALUE_TYPE(switches::kDisableGestureRequirementForMediaPlayback)
|
| + SINGLE_VALUE_TYPE(
|
| + switches::kDisableGestureRequirementForMediaPlayback,
|
| + UMA_HISTOGRAM_ID_kDisableGestureRequirementForMediaPlayback)
|
| },
|
| #endif
|
| #if defined(OS_CHROMEOS)
|
| @@ -1288,7 +1525,8 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_VIRTUAL_KEYBOARD_NAME,
|
| IDS_FLAGS_ENABLE_VIRTUAL_KEYBOARD_DESCRIPTION,
|
| kOsCrOS,
|
| - SINGLE_VALUE_TYPE(keyboard::switches::kEnableVirtualKeyboard)
|
| + SINGLE_VALUE_TYPE(keyboard::switches::kEnableVirtualKeyboard,
|
| + UMA_HISTOGRAM_ID_kEnableVirtualKeyboard)
|
| },
|
| {
|
| "enable-virtual-keyboard-overscroll",
|
| @@ -1297,14 +1535,17 @@ const Experiment kExperiments[] = {
|
| kOsCrOS,
|
| ENABLE_DISABLE_VALUE_TYPE(
|
| keyboard::switches::kEnableVirtualKeyboardOverscroll,
|
| - keyboard::switches::kDisableVirtualKeyboardOverscroll)
|
| + UMA_HISTOGRAM_ID_kEnableVirtualKeyboardOverscroll,
|
| + keyboard::switches::kDisableVirtualKeyboardOverscroll,
|
| + UMA_HISTOGRAM_ID_kDisableVirtualKeyboardOverscroll)
|
| },
|
| {
|
| "enable-swipe-selection",
|
| IDS_FLAGS_ENABLE_SWIPE_SELECTION_NAME,
|
| IDS_FLAGS_ENABLE_SWIPE_SELECTION_DESCRIPTION,
|
| kOsCrOS,
|
| - SINGLE_VALUE_TYPE(keyboard::switches::kEnableSwipeSelection)
|
| + SINGLE_VALUE_TYPE(keyboard::switches::kEnableSwipeSelection,
|
| + UMA_HISTOGRAM_ID_kEnableSwipeSelection)
|
| },
|
| {
|
| "enable-input-view",
|
| @@ -1312,14 +1553,17 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_INPUT_VIEW_DESCRIPTION,
|
| kOsCrOS,
|
| ENABLE_DISABLE_VALUE_TYPE(keyboard::switches::kEnableInputView,
|
| - keyboard::switches::kDisableInputView)
|
| + UMA_HISTOGRAM_ID_kEnableInputView,
|
| + keyboard::switches::kDisableInputView,
|
| + UMA_HISTOGRAM_ID_kDisableInputView)
|
| },
|
| {
|
| "enable-experimental-input-view-features",
|
| IDS_FLAGS_ENABLE_EXPERIMENTAL_INPUT_VIEW_FEATURES_NAME,
|
| IDS_FLAGS_ENABLE_EXPERIMENTAL_INPUT_VIEW_FEATURES_DESCRIPTION,
|
| kOsCrOS,
|
| - SINGLE_VALUE_TYPE(keyboard::switches::kEnableExperimentalInputViewFeatures)
|
| + SINGLE_VALUE_TYPE(keyboard::switches::kEnableExperimentalInputViewFeatures,
|
| + UMA_HISTOGRAM_ID_kEnableExperimentalInputViewFeatures)
|
| },
|
| #endif
|
| {
|
| @@ -1334,14 +1578,16 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_TCP_FAST_OPEN_NAME,
|
| IDS_FLAGS_ENABLE_TCP_FAST_OPEN_DESCRIPTION,
|
| kOsLinux | kOsCrOS | kOsAndroid,
|
| - SINGLE_VALUE_TYPE(switches::kEnableTcpFastOpen)
|
| + SINGLE_VALUE_TYPE(switches::kEnableTcpFastOpen,
|
| + UMA_HISTOGRAM_ID_kEnableTcpFastOpen)
|
| },
|
| {
|
| "enable-syncfs-directory-operation",
|
| IDS_FLAGS_ENABLE_SYNC_DIRECTORY_OPERATION_NAME,
|
| IDS_FLAGS_ENABLE_SYNC_DIRECTORY_OPERATION_DESCRIPTION,
|
| kOsAll,
|
| - SINGLE_VALUE_TYPE(switches::kSyncfsEnableDirectoryOperation),
|
| + SINGLE_VALUE_TYPE(switches::kSyncfsEnableDirectoryOperation,
|
| + UMA_HISTOGRAM_ID_kSyncfsEnableDirectoryOperation)
|
| },
|
| #if defined(ENABLE_SERVICE_DISCOVERY)
|
| {
|
| @@ -1349,29 +1595,35 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_DISABLE_DEVICE_DISCOVERY_NAME,
|
| IDS_FLAGS_DISABLE_DEVICE_DISCOVERY_DESCRIPTION,
|
| kOsDesktop,
|
| - SINGLE_VALUE_TYPE(switches::kDisableDeviceDiscovery)
|
| + SINGLE_VALUE_TYPE(switches::kDisableDeviceDiscovery,
|
| + UMA_HISTOGRAM_ID_kDisableDeviceDiscovery)
|
| },
|
| {
|
| "device-discovery-notifications",
|
| IDS_FLAGS_DEVICE_DISCOVERY_NOTIFICATIONS_NAME,
|
| IDS_FLAGS_DEVICE_DISCOVERY_NOTIFICATIONS_DESCRIPTION,
|
| kOsDesktop,
|
| - ENABLE_DISABLE_VALUE_TYPE(switches::kEnableDeviceDiscoveryNotifications,
|
| - switches::kDisableDeviceDiscoveryNotifications)
|
| + ENABLE_DISABLE_VALUE_TYPE(
|
| + switches::kEnableDeviceDiscoveryNotifications,
|
| + UMA_HISTOGRAM_ID_kEnableDeviceDiscoveryNotifications,
|
| + switches::kDisableDeviceDiscoveryNotifications,
|
| + UMA_HISTOGRAM_ID_kDisableDeviceDiscoveryNotifications)
|
| },
|
| {
|
| "enable-cloud-devices",
|
| IDS_FLAGS_ENABLE_CLOUD_DEVICES_NAME,
|
| IDS_FLAGS_ENABLE_CLOUD_DEVICES_DESCRIPTION,
|
| kOsDesktop,
|
| - SINGLE_VALUE_TYPE(switches::kEnableCloudDevices)
|
| + SINGLE_VALUE_TYPE(switches::kEnableCloudDevices,
|
| + UMA_HISTOGRAM_ID_kEnableCloudDevices)
|
| },
|
| {
|
| "enable-print-preview-register-promos",
|
| IDS_FLAGS_ENABLE_PRINT_PREVIEW_REGISTER_PROMOS_NAME,
|
| IDS_FLAGS_ENABLE_PRINT_PREVIEW_REGISTER_PROMOS_DESCRIPTION,
|
| kOsDesktop,
|
| - SINGLE_VALUE_TYPE(switches::kEnablePrintPreviewRegisterPromos)
|
| + SINGLE_VALUE_TYPE(switches::kEnablePrintPreviewRegisterPromos,
|
| + UMA_HISTOGRAM_ID_kEnablePrintPreviewRegisterPromos)
|
| },
|
| #endif // ENABLE_SERVICE_DISCOVERY
|
| #if defined(OS_WIN)
|
| @@ -1380,7 +1632,8 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_CLOUD_PRINT_XPS_NAME,
|
| IDS_FLAGS_ENABLE_CLOUD_PRINT_XPS_DESCRIPTION,
|
| kOsWin,
|
| - SINGLE_VALUE_TYPE(switches::kEnableCloudPrintXps)
|
| + SINGLE_VALUE_TYPE(switches::kEnableCloudPrintXps,
|
| + UMA_HISTOGRAM_ID_kEnableCloudPrintXps)
|
| },
|
| #endif
|
| #if defined(OS_MACOSX)
|
| @@ -1389,7 +1642,8 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_SIMPLIFIED_FULLSCREEN_NAME,
|
| IDS_FLAGS_ENABLE_SIMPLIFIED_FULLSCREEN_DESCRIPTION,
|
| kOsMac,
|
| - SINGLE_VALUE_TYPE(switches::kEnableSimplifiedFullscreen)
|
| + SINGLE_VALUE_TYPE(switches::kEnableSimplifiedFullscreen,
|
| + UMA_HISTOGRAM_ID_kEnableSimplifiedFullscreen)
|
| },
|
| #endif
|
| #if defined(USE_AURA)
|
| @@ -1413,21 +1667,24 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_SPELLING_FEEDBACK_FIELD_TRIAL_NAME,
|
| IDS_FLAGS_ENABLE_SPELLING_FEEDBACK_FIELD_TRIAL_DESCRIPTION,
|
| kOsAll,
|
| - SINGLE_VALUE_TYPE(switches::kEnableSpellingFeedbackFieldTrial)
|
| + SINGLE_VALUE_TYPE(switches::kEnableSpellingFeedbackFieldTrial,
|
| + UMA_HISTOGRAM_ID_kEnableSpellingFeedbackFieldTrial)
|
| },
|
| {
|
| "enable-webgl-draft-extensions",
|
| IDS_FLAGS_ENABLE_WEBGL_DRAFT_EXTENSIONS_NAME,
|
| IDS_FLAGS_ENABLE_WEBGL_DRAFT_EXTENSIONS_DESCRIPTION,
|
| kOsAll,
|
| - SINGLE_VALUE_TYPE(switches::kEnableWebGLDraftExtensions)
|
| + SINGLE_VALUE_TYPE(switches::kEnableWebGLDraftExtensions,
|
| + UMA_HISTOGRAM_ID_kEnableWebGLDraftExtensions)
|
| },
|
| {
|
| "enable-web-midi",
|
| IDS_FLAGS_ENABLE_WEB_MIDI_NAME,
|
| IDS_FLAGS_ENABLE_WEB_MIDI_DESCRIPTION,
|
| kOsMac | kOsWin | kOsLinux | kOsCrOS | kOsAndroid,
|
| - SINGLE_VALUE_TYPE(switches::kEnableWebMIDI)
|
| + SINGLE_VALUE_TYPE(switches::kEnableWebMIDI,
|
| + UMA_HISTOGRAM_ID_kEnableWebMIDI)
|
| },
|
| {
|
| "enable-new-profile-management",
|
| @@ -1435,7 +1692,9 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_NEW_PROFILE_MANAGEMENT_DESCRIPTION,
|
| kOsAndroid | kOsMac | kOsWin | kOsLinux | kOsCrOS,
|
| ENABLE_DISABLE_VALUE_TYPE(switches::kEnableNewProfileManagement,
|
| - switches::kDisableNewProfileManagement)
|
| + UMA_HISTOGRAM_ID_kEnableNewProfileManagement,
|
| + switches::kDisableNewProfileManagement,
|
| + UMA_HISTOGRAM_ID_kDisableNewProfileManagement)
|
| },
|
| {
|
| "enable-account-consistency",
|
| @@ -1443,54 +1702,62 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_ACCOUNT_CONSISTENCY_DESCRIPTION,
|
| kOsAndroid | kOsMac | kOsWin | kOsLinux | kOsCrOS,
|
| ENABLE_DISABLE_VALUE_TYPE(switches::kEnableAccountConsistency,
|
| - switches::kDisableAccountConsistency)
|
| + UMA_HISTOGRAM_ID_kEnableAccountConsistency,
|
| + switches::kDisableAccountConsistency,
|
| + UMA_HISTOGRAM_ID_kDisableAccountConsistency)
|
| },
|
| {
|
| "enable-fast-user-switching",
|
| IDS_FLAGS_ENABLE_FAST_USER_SWITCHING_NAME,
|
| IDS_FLAGS_ENABLE_FAST_USER_SWITCHING_DESCRIPTION,
|
| kOsMac | kOsWin | kOsLinux,
|
| - SINGLE_VALUE_TYPE(switches::kFastUserSwitching)
|
| + SINGLE_VALUE_TYPE(switches::kFastUserSwitching,
|
| + UMA_HISTOGRAM_ID_kFastUserSwitching)
|
| },
|
| {
|
| "enable-new-avatar-menu",
|
| IDS_FLAGS_ENABLE_NEW_AVATAR_MENU_NAME,
|
| IDS_FLAGS_ENABLE_NEW_AVATAR_MENU_DESCRIPTION,
|
| kOsMac | kOsWin | kOsLinux,
|
| - SINGLE_VALUE_TYPE(switches::kNewAvatarMenu)
|
| + SINGLE_VALUE_TYPE(switches::kNewAvatarMenu,
|
| + UMA_HISTOGRAM_ID_kNewAvatarMenu)
|
| },
|
| {
|
| "enable-web-based-signin",
|
| IDS_FLAGS_ENABLE_WEB_BASED_SIGNIN_NAME,
|
| IDS_FLAGS_ENABLE_WEB_BASED_SIGNIN_DESCRIPTION,
|
| kOsMac | kOsWin | kOsLinux,
|
| - SINGLE_VALUE_TYPE(switches::kEnableWebBasedSignin)
|
| + SINGLE_VALUE_TYPE(switches::kEnableWebBasedSignin,
|
| + UMA_HISTOGRAM_ID_kEnableWebBasedSignin)
|
| },
|
| {
|
| "enable-google-profile-info",
|
| IDS_FLAGS_ENABLE_GOOGLE_PROFILE_INFO_NAME,
|
| IDS_FLAGS_ENABLE_GOOGLE_PROFILE_INFO_DESCRIPTION,
|
| kOsMac | kOsWin | kOsLinux,
|
| - SINGLE_VALUE_TYPE(switches::kGoogleProfileInfo)
|
| + SINGLE_VALUE_TYPE(switches::kGoogleProfileInfo,
|
| + UMA_HISTOGRAM_ID_kGoogleProfileInfo)
|
| },
|
| {
|
| "reset-app-list-install-state",
|
| IDS_FLAGS_RESET_APP_LIST_INSTALL_STATE_NAME,
|
| IDS_FLAGS_RESET_APP_LIST_INSTALL_STATE_DESCRIPTION,
|
| kOsMac | kOsWin | kOsLinux,
|
| - SINGLE_VALUE_TYPE(switches::kResetAppListInstallState)
|
| + SINGLE_VALUE_TYPE(switches::kResetAppListInstallState,
|
| + UMA_HISTOGRAM_ID_kResetAppListInstallState)
|
| },
|
| #if defined(ENABLE_APP_LIST)
|
| #if defined(OS_LINUX)
|
| - {
|
| - // This is compiled out on non-Linux platforms because otherwise it would be
|
| + { // This is compiled out on non-Linux platforms because otherwise it would
|
| + // be
|
| // visible on Win/Mac/CrOS but not on Linux GTK, which would be confusing.
|
| // TODO(mgiuca): Remove the #if when Aura is the default on Linux.
|
| "enable-app-list",
|
| IDS_FLAGS_ENABLE_APP_LIST_NAME,
|
| IDS_FLAGS_ENABLE_APP_LIST_DESCRIPTION,
|
| kOsLinux,
|
| - SINGLE_VALUE_TYPE(switches::kEnableAppList)
|
| + SINGLE_VALUE_TYPE(switches::kEnableAppList,
|
| + UMA_HISTOGRAM_ID_kEnableAppList)
|
| },
|
| #endif
|
| {
|
| @@ -1498,14 +1765,16 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_DISABLE_APP_INFO_IN_APP_LIST,
|
| IDS_FLAGS_DISABLE_APP_INFO_IN_APP_LIST_DESCRIPTION,
|
| kOsLinux | kOsWin | kOsCrOS,
|
| - SINGLE_VALUE_TYPE(app_list::switches::kDisableAppInfo)
|
| + SINGLE_VALUE_TYPE(app_list::switches::kDisableAppInfo,
|
| + UMA_HISTOGRAM_ID_kDisableAppInfo)
|
| },
|
| {
|
| "disable-app-list-voice-search",
|
| IDS_FLAGS_DISABLE_APP_LIST_VOICE_SEARCH,
|
| IDS_FLAGS_DISABLE_APP_LIST_VOICE_SEARCH_DESCRIPTION,
|
| kOsCrOS,
|
| - SINGLE_VALUE_TYPE(app_list::switches::kDisableVoiceSearch)
|
| + SINGLE_VALUE_TYPE(app_list::switches::kDisableVoiceSearch,
|
| + UMA_HISTOGRAM_ID_kDisableVoiceSearch)
|
| },
|
| #endif
|
| #if defined(OS_ANDROID)
|
| @@ -1514,17 +1783,8 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_ACCESSIBILITY_TAB_SWITCHER_NAME,
|
| IDS_FLAGS_ENABLE_ACCESSIBILITY_TAB_SWITCHER_DESCRIPTION,
|
| kOsAndroid,
|
| - SINGLE_VALUE_TYPE(switches::kEnableAccessibilityTabSwitcher)
|
| - },
|
| - {
|
| - // TODO(dmazzoni): remove this flag when native android accessibility
|
| - // ships in the stable channel. http://crbug.com/356775
|
| - "enable-accessibility-script-injection",
|
| - IDS_FLAGS_ENABLE_ACCESSIBILITY_SCRIPT_INJECTION_NAME,
|
| - IDS_FLAGS_ENABLE_ACCESSIBILITY_SCRIPT_INJECTION_DESCRIPTION,
|
| - kOsAndroid,
|
| - // Java-only switch: ContentSwitches.ENABLE_ACCESSIBILITY_SCRIPT_INJECTION.
|
| - SINGLE_VALUE_TYPE("enable-accessibility-script-injection")
|
| + SINGLE_VALUE_TYPE(switches::kEnableAccessibilityTabSwitcher,
|
| + UMA_HISTOGRAM_ID_kEnableAccessibilityTabSwitcher)
|
| },
|
| #endif
|
| {
|
| @@ -1532,7 +1792,8 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ONE_COPY_NAME,
|
| IDS_FLAGS_ONE_COPY_DESCRIPTION,
|
| kOsAll,
|
| - SINGLE_VALUE_TYPE(switches::kEnableOneCopy)
|
| + SINGLE_VALUE_TYPE(switches::kEnableOneCopy,
|
| + UMA_HISTOGRAM_ID_kEnableOneCopy)
|
| },
|
| {
|
| "enable-zero-copy",
|
| @@ -1547,7 +1808,8 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_FIRST_RUN_UI_TRANSITIONS_NAME,
|
| IDS_FLAGS_ENABLE_FIRST_RUN_UI_TRANSITIONS_DESCRIPTION,
|
| kOsCrOS,
|
| - SINGLE_VALUE_TYPE(chromeos::switches::kEnableFirstRunUITransitions)
|
| + SINGLE_VALUE_TYPE(chromeos::switches::kEnableFirstRunUITransitions,
|
| + UMA_HISTOGRAM_ID_kEnableFirstRunUITransitions)
|
| },
|
| #endif
|
| {
|
| @@ -1555,49 +1817,56 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_DISABLE_COMPOSITOR_TOUCH_HIT_TESTING_NAME,
|
| IDS_FLAGS_DISABLE_COMPOSITOR_TOUCH_HIT_TESTING_DESCRIPTION,
|
| kOsAll,
|
| - SINGLE_VALUE_TYPE(cc::switches::kDisableCompositorTouchHitTesting),
|
| + SINGLE_VALUE_TYPE(cc::switches::kDisableCompositorTouchHitTesting,
|
| + UMA_HISTOGRAM_ID_kDisableCompositorTouchHitTesting)
|
| },
|
| {
|
| "enable-streamlined-hosted-apps",
|
| IDS_FLAGS_ENABLE_STREAMLINED_HOSTED_APPS_NAME,
|
| IDS_FLAGS_ENABLE_STREAMLINED_HOSTED_APPS_DESCRIPTION,
|
| kOsWin | kOsCrOS | kOsLinux,
|
| - SINGLE_VALUE_TYPE(switches::kEnableStreamlinedHostedApps)
|
| + SINGLE_VALUE_TYPE(switches::kEnableStreamlinedHostedApps,
|
| + UMA_HISTOGRAM_ID_kEnableStreamlinedHostedApps)
|
| },
|
| {
|
| "enable-prominent-url-app-flow",
|
| IDS_FLAGS_ENABLE_PROMINENT_URL_APP_FLOW_NAME,
|
| IDS_FLAGS_ENABLE_PROMINENT_URL_APP_FLOW_DESCRIPTION,
|
| kOsWin | kOsCrOS | kOsLinux,
|
| - SINGLE_VALUE_TYPE(switches::kEnableProminentURLAppFlow)
|
| + SINGLE_VALUE_TYPE(switches::kEnableProminentURLAppFlow,
|
| + UMA_HISTOGRAM_ID_kEnableProminentURLAppFlow)
|
| },
|
| {
|
| "enable-ephemeral-apps",
|
| IDS_FLAGS_ENABLE_EPHEMERAL_APPS_NAME,
|
| IDS_FLAGS_ENABLE_EPHEMERAL_APPS_DESCRIPTION,
|
| kOsAll,
|
| - SINGLE_VALUE_TYPE(switches::kEnableEphemeralApps)
|
| + SINGLE_VALUE_TYPE(switches::kEnableEphemeralApps,
|
| + UMA_HISTOGRAM_ID_kEnableEphemeralApps)
|
| },
|
| {
|
| "enable-linkable-ephemeral-apps",
|
| IDS_FLAGS_ENABLE_LINKABLE_EPHEMERAL_APPS_NAME,
|
| IDS_FLAGS_ENABLE_LINKABLE_EPHEMERAL_APPS_DESCRIPTION,
|
| kOsAll,
|
| - SINGLE_VALUE_TYPE(switches::kEnableLinkableEphemeralApps)
|
| + SINGLE_VALUE_TYPE(switches::kEnableLinkableEphemeralApps,
|
| + UMA_HISTOGRAM_ID_kEnableLinkableEphemeralApps)
|
| },
|
| {
|
| "enable-service-worker",
|
| IDS_FLAGS_ENABLE_SERVICE_WORKER_NAME,
|
| IDS_FLAGS_ENABLE_SERVICE_WORKER_DESCRIPTION,
|
| kOsAll,
|
| - SINGLE_VALUE_TYPE(switches::kEnableServiceWorker)
|
| + SINGLE_VALUE_TYPE(switches::kEnableServiceWorker,
|
| + UMA_HISTOGRAM_ID_kEnableServiceWorker)
|
| },
|
| {
|
| "enable-service-worker-sync",
|
| IDS_FLAGS_ENABLE_SERVICE_WORKER_SYNC_NAME,
|
| IDS_FLAGS_ENABLE_SERVICE_WORKER_SYNC_DESCRIPTION,
|
| kOsAll,
|
| - SINGLE_VALUE_TYPE(switches::kEnableServiceWorkerSync)
|
| + SINGLE_VALUE_TYPE(switches::kEnableServiceWorkerSync,
|
| + UMA_HISTOGRAM_ID_kEnableServiceWorkerSync)
|
| },
|
| #if defined(OS_ANDROID)
|
| {
|
| @@ -1606,7 +1875,8 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_DISABLE_CLICK_DELAY_DESCRIPTION,
|
| kOsAndroid,
|
| // Java-only switch: CommandLine.DISABLE_CLICK_DELAY
|
| - SINGLE_VALUE_TYPE("disable-click-delay")
|
| + SINGLE_VALUE_TYPE(switches::kDisableClickDelay,
|
| + UMA_HISTOGRAM_ID_kDisableClickDelay)
|
| },
|
| #endif
|
| #if defined(OS_MACOSX)
|
| @@ -1615,7 +1885,8 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_TRANSLATE_NEW_UX_NAME,
|
| IDS_FLAGS_ENABLE_TRANSLATE_NEW_UX_DESCRIPTION,
|
| kOsMac,
|
| - SINGLE_VALUE_TYPE(switches::kEnableTranslateNewUX)
|
| + SINGLE_VALUE_TYPE(switches::kEnableTranslateNewUX,
|
| + UMA_HISTOGRAM_ID_kEnableTranslateNewUX)
|
| },
|
| #endif
|
| #if defined(TOOLKIT_VIEWS)
|
| @@ -1624,7 +1895,8 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_DISABLE_VIEWS_RECT_BASED_TARGETING_NAME,
|
| IDS_FLAGS_DISABLE_VIEWS_RECT_BASED_TARGETING_DESCRIPTION,
|
| kOsCrOS | kOsWin,
|
| - SINGLE_VALUE_TYPE(views::switches::kDisableViewsRectBasedTargeting)
|
| + SINGLE_VALUE_TYPE(views::switches::kDisableViewsRectBasedTargeting,
|
| + UMA_HISTOGRAM_ID_kDisableViewsRectBasedTargeting)
|
| },
|
| #endif
|
| {
|
| @@ -1632,7 +1904,8 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_APPS_SHOW_ON_FIRST_PAINT_NAME,
|
| IDS_FLAGS_ENABLE_APPS_SHOW_ON_FIRST_PAINT_DESCRIPTION,
|
| kOsDesktop,
|
| - SINGLE_VALUE_TYPE(switches::kEnableAppsShowOnFirstPaint)
|
| + SINGLE_VALUE_TYPE(switches::kEnableAppsShowOnFirstPaint,
|
| + UMA_HISTOGRAM_ID_kEnableAppsShowOnFirstPaint)
|
| },
|
| {
|
| "enhanced-bookmarks-experiment",
|
| @@ -1641,21 +1914,25 @@ const Experiment kExperiments[] = {
|
| kOsDesktop,
|
| ENABLE_DISABLE_VALUE_TYPE_AND_VALUE(
|
| switches::kEnhancedBookmarksExperiment, "1",
|
| - switches::kEnhancedBookmarksExperiment, "0")
|
| + UMA_HISTOGRAM_ID_kEnhancedBookmarksExperiment,
|
| + switches::kEnhancedBookmarksExperiment, "0",
|
| + UMA_HISTOGRAM_ID_kEnhancedBookmarksExperiment)
|
| },
|
| {
|
| "manual-enhanced-bookmarks",
|
| IDS_FLAGS_ENABLE_ENHANCED_BOOKMARKS_NAME,
|
| IDS_FLAGS_ENABLE_ENHANCED_BOOKMARKS_DESCRIPTION,
|
| kOsDesktop,
|
| - SINGLE_VALUE_TYPE(switches::kManualEnhancedBookmarks)
|
| + SINGLE_VALUE_TYPE(switches::kManualEnhancedBookmarks,
|
| + UMA_HISTOGRAM_ID_kManualEnhancedBookmarks)
|
| },
|
| {
|
| "manual-enhanced-bookmarks-optout",
|
| IDS_FLAGS_ENABLE_ENHANCED_BOOKMARKS_NAME,
|
| IDS_FLAGS_ENABLE_ENHANCED_BOOKMARKS_DESCRIPTION,
|
| kOsDesktop,
|
| - SINGLE_VALUE_TYPE(switches::kManualEnhancedBookmarksOptout)
|
| + SINGLE_VALUE_TYPE(switches::kManualEnhancedBookmarksOptout,
|
| + UMA_HISTOGRAM_ID_kManualEnhancedBookmarksOptout)
|
| },
|
| #if defined(OS_ANDROID)
|
| {
|
| @@ -1692,7 +1969,8 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_DISABLE_IGNORE_AUTOCOMPLETE_OFF_NAME,
|
| IDS_FLAGS_DISABLE_IGNORE_AUTOCOMPLETE_OFF_DESCRIPTION,
|
| kOsAll,
|
| - SINGLE_VALUE_TYPE(autofill::switches::kDisableIgnoreAutocompleteOff)
|
| + SINGLE_VALUE_TYPE(autofill::switches::kDisableIgnoreAutocompleteOff,
|
| + UMA_HISTOGRAM_ID_kDisableIgnoreAutocompleteOff)
|
| },
|
| {
|
| "enable-permissions-bubbles",
|
| @@ -1700,7 +1978,9 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_PERMISSIONS_BUBBLES_DESCRIPTION,
|
| kOsAll,
|
| ENABLE_DISABLE_VALUE_TYPE(switches::kEnablePermissionsBubbles,
|
| - switches::kDisablePermissionsBubbles)
|
| + UMA_HISTOGRAM_ID_kEnablePermissionsBubbles,
|
| + switches::kDisablePermissionsBubbles,
|
| + UMA_HISTOGRAM_ID_kDisablePermissionsBubbles)
|
| },
|
| {
|
| "enable-session-crashed-bubble",
|
| @@ -1708,14 +1988,17 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_SESSION_CRASHED_BUBBLE_DESCRIPTION,
|
| kOsWin | kOsLinux,
|
| ENABLE_DISABLE_VALUE_TYPE(switches::kEnableSessionCrashedBubble,
|
| - switches::kDisableSessionCrashedBubble)
|
| + UMA_HISTOGRAM_ID_kEnableSessionCrashedBubble,
|
| + switches::kDisableSessionCrashedBubble,
|
| + UMA_HISTOGRAM_ID_kDisableSessionCrashedBubble)
|
| },
|
| {
|
| "out-of-process-pdf",
|
| IDS_FLAGS_OUT_OF_PROCESS_PDF_NAME,
|
| IDS_FLAGS_OUT_OF_PROCESS_PDF_DESCRIPTION,
|
| kOsDesktop,
|
| - SINGLE_VALUE_TYPE(switches::kOutOfProcessPdf)
|
| + SINGLE_VALUE_TYPE(switches::kOutOfProcessPdf,
|
| + UMA_HISTOGRAM_ID_kOutOfProcessPdf)
|
| },
|
| #if defined(OS_ANDROID)
|
| {
|
| @@ -1724,21 +2007,24 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_FAST_TEXT_AUTOSIZING_DESCRIPTION,
|
| kOsAndroid,
|
| ENABLE_DISABLE_VALUE_TYPE(switches::kEnableFastTextAutosizing,
|
| - switches::kDisableFastTextAutosizing)
|
| + UMA_HISTOGRAM_ID_kEnableFastTextAutosizing,
|
| + switches::kDisableFastTextAutosizing,
|
| + UMA_HISTOGRAM_ID_kDisableFastTextAutosizing)
|
| },
|
| {
|
| "disable-cast",
|
| IDS_FLAGS_DISABLE_CAST_NAME,
|
| IDS_FLAGS_DISABLE_CAST_DESCRIPTION,
|
| kOsAndroid,
|
| - SINGLE_VALUE_TYPE(switches::kDisableCast)
|
| + SINGLE_VALUE_TYPE(switches::kDisableCast, UMA_HISTOGRAM_ID_kDisableCast)
|
| },
|
| {
|
| "prefetch-search-results",
|
| IDS_FLAGS_PREFETCH_SEARCH_RESULTS_NAME,
|
| IDS_FLAGS_PREFETCH_SEARCH_RESULTS_DESCRIPTION,
|
| kOsAndroid,
|
| - SINGLE_VALUE_TYPE(switches::kPrefetchSearchResults)
|
| + SINGLE_VALUE_TYPE(switches::kPrefetchSearchResults,
|
| + UMA_HISTOGRAM_ID_kPrefetchSearchResults)
|
| },
|
| #endif
|
| #if defined(ENABLE_APP_LIST)
|
| @@ -1747,14 +2033,16 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_EXPERIMENTAL_APP_LIST_NAME,
|
| IDS_FLAGS_ENABLE_EXPERIMENTAL_APP_LIST_DESCRIPTION,
|
| kOsWin | kOsLinux | kOsCrOS,
|
| - SINGLE_VALUE_TYPE(app_list::switches::kEnableExperimentalAppList)
|
| + SINGLE_VALUE_TYPE(app_list::switches::kEnableExperimentalAppList,
|
| + UMA_HISTOGRAM_ID_kEnableExperimentalAppList)
|
| },
|
| {
|
| "enable-centered-app-list",
|
| IDS_FLAGS_ENABLE_CENTERED_APP_LIST_NAME,
|
| IDS_FLAGS_ENABLE_CENTERED_APP_LIST_DESCRIPTION,
|
| kOsWin | kOsLinux | kOsCrOS,
|
| - SINGLE_VALUE_TYPE(app_list::switches::kEnableCenteredAppList)
|
| + SINGLE_VALUE_TYPE(app_list::switches::kEnableCenteredAppList,
|
| + UMA_HISTOGRAM_ID_kEnableCenteredAppList)
|
| },
|
| #endif
|
| {
|
| @@ -1769,7 +2057,8 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_BLEEDING_RENDERER_NAME,
|
| IDS_FLAGS_BLEEDING_RENDERER_DESCRIPTION,
|
| kOsAndroid,
|
| - SINGLE_VALUE_TYPE(switches::kEnableBleedingEdgeRenderingFastPaths)
|
| + SINGLE_VALUE_TYPE(switches::kEnableBleedingEdgeRenderingFastPaths,
|
| + UMA_HISTOGRAM_ID_kEnableBleedingEdgeRenderingFastPaths)
|
| },
|
| {
|
| "enable-settings-window",
|
| @@ -1784,7 +2073,8 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_INSTANT_SEARCH_CLICKS_NAME,
|
| IDS_FLAGS_ENABLE_INSTANT_SEARCH_CLICKS_DESCRIPTION,
|
| kOsAndroid,
|
| - SINGLE_VALUE_TYPE(switches::kEnableInstantSearchClicks)
|
| + SINGLE_VALUE_TYPE(switches::kEnableInstantSearchClicks,
|
| + UMA_HISTOGRAM_ID_kEnableInstantSearchClicks)
|
| },
|
| #endif
|
| {
|
| @@ -1793,7 +2083,9 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_SAVE_PASSWORD_BUBBLE_DESCRIPTION,
|
| kOsWin | kOsLinux | kOsCrOS,
|
| ENABLE_DISABLE_VALUE_TYPE(switches::kEnableSavePasswordBubble,
|
| - switches::kDisableSavePasswordBubble)
|
| + UMA_HISTOGRAM_ID_kEnableSavePasswordBubble,
|
| + switches::kDisableSavePasswordBubble,
|
| + UMA_HISTOGRAM_ID_kDisableSavePasswordBubble)
|
| },
|
| #if defined(GOOGLE_CHROME_BUILD)
|
| {
|
| @@ -1801,7 +2093,8 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_EASY_UNLOCK_NAME,
|
| IDS_FLAGS_ENABLE_EASY_UNLOCK_DESCRIPTION,
|
| kOsCrOS,
|
| - SINGLE_VALUE_TYPE(switches::kEnableEasyUnlock)
|
| + SINGLE_VALUE_TYPE(switches::kEnableEasyUnlock,
|
| + UMA_HISTOGRAM_ID_kEnableEasyUnlock)
|
| },
|
| #endif
|
| {
|
| @@ -1809,7 +2102,8 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_DISABLE_EMBEDDED_SHARED_WORKER_NAME,
|
| IDS_FLAGS_DISABLE_EMBEDDED_SHARED_WORKER_DESCRIPTION,
|
| kOsDesktop,
|
| - SINGLE_VALUE_TYPE(switches::kDisableEmbeddedSharedWorker)
|
| + SINGLE_VALUE_TYPE(switches::kDisableEmbeddedSharedWorker,
|
| + UMA_HISTOGRAM_ID_kDisableEmbeddedSharedWorker)
|
| },
|
| #if defined(OS_CHROMEOS)
|
| {
|
| @@ -1827,7 +2121,9 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ALLOW_INSECURE_WEBSOCKET_FROM_HTTPS_ORIGIN_NAME,
|
| IDS_FLAGS_ALLOW_INSECURE_WEBSOCKET_FROM_HTTPS_ORIGIN_DESCRIPTION,
|
| kOsAll,
|
| - SINGLE_VALUE_TYPE(switches::kAllowInsecureWebSocketFromHttpsOrigin)
|
| + SINGLE_VALUE_TYPE(
|
| + switches::kAllowInsecureWebSocketFromHttpsOrigin,
|
| + UMA_HISTOGRAM_ID_kAllowInsecureWebSocketFromHttpsOrigin)
|
| },
|
| #if defined(OS_MACOSX)
|
| {
|
| @@ -1835,7 +2131,8 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_APPS_KEEP_CHROME_ALIVE_NAME,
|
| IDS_FLAGS_APPS_KEEP_CHROME_ALIVE_DESCRIPTION,
|
| kOsMac,
|
| - SINGLE_VALUE_TYPE(switches::kAppsKeepChromeAlive)
|
| + SINGLE_VALUE_TYPE(switches::kAppsKeepChromeAlive,
|
| + UMA_HISTOGRAM_ID_kAppsKeepChromeAlive)
|
| },
|
| #endif
|
| {
|
| @@ -1843,7 +2140,8 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_APPS_FILE_ASSOCIATIONS_NAME,
|
| IDS_FLAGS_ENABLE_APPS_FILE_ASSOCIATIONS_DESCRIPTION,
|
| kOsMac,
|
| - SINGLE_VALUE_TYPE(switches::kEnableAppsFileAssociations)
|
| + SINGLE_VALUE_TYPE(switches::kEnableAppsFileAssociations,
|
| + UMA_HISTOGRAM_ID_kEnableAppsFileAssociations)
|
| },
|
| #if defined(OS_ANDROID)
|
| {
|
| @@ -1851,14 +2149,16 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_EMBEDDEDSEARCH_API_NAME,
|
| IDS_FLAGS_ENABLE_EMBEDDEDSEARCH_API_DESCRIPTION,
|
| kOsAndroid,
|
| - SINGLE_VALUE_TYPE(switches::kEnableEmbeddedSearchAPI)
|
| + SINGLE_VALUE_TYPE(switches::kEnableEmbeddedSearchAPI,
|
| + UMA_HISTOGRAM_ID_kEnableEmbeddedSearchAPI)
|
| },
|
| {
|
| "enable-app-install-alerts",
|
| IDS_FLAGS_ENABLE_APP_INSTALL_ALERTS_NAME,
|
| IDS_FLAGS_ENABLE_APP_INSTALL_ALERTS_DESCRIPTION,
|
| kOsAndroid,
|
| - SINGLE_VALUE_TYPE(switches::kEnableAppInstallAlerts)
|
| + SINGLE_VALUE_TYPE(switches::kEnableAppInstallAlerts,
|
| + UMA_HISTOGRAM_ID_kEnableAppInstallAlerts)
|
| },
|
| #endif
|
| {
|
| @@ -1882,7 +2182,9 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_TEXT_INPUT_FOCUS_MANAGER_DESCRIPTION,
|
| kOsCrOS | kOsLinux | kOsWin,
|
| ENABLE_DISABLE_VALUE_TYPE(switches::kEnableTextInputFocusManager,
|
| - switches::kDisableTextInputFocusManager)
|
| + UMA_HISTOGRAM_ID_kEnableTextInputFocusManager,
|
| + switches::kDisableTextInputFocusManager,
|
| + UMA_HISTOGRAM_ID_kDisableTextInputFocusManager)
|
| },
|
| #endif
|
| {
|
| @@ -1890,14 +2192,16 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_USER_CONSENT_FOR_EXTENSION_SCRIPTS_NAME,
|
| IDS_FLAGS_USER_CONSENT_FOR_EXTENSION_SCRIPTS_DESCRIPTION,
|
| kOsAll,
|
| - SINGLE_VALUE_TYPE(extensions::switches::kEnableScriptsRequireAction)
|
| + SINGLE_VALUE_TYPE(extensions::switches::kEnableScriptsRequireAction,
|
| + UMA_HISTOGRAM_ID_kEnableScriptsRequireAction)
|
| },
|
| {
|
| "enable-harfbuzz-rendertext",
|
| IDS_FLAGS_ENABLE_HARFBUZZ_RENDERTEXT_NAME,
|
| IDS_FLAGS_ENABLE_HARFBUZZ_RENDERTEXT_DESCRIPTION,
|
| kOsDesktop,
|
| - SINGLE_VALUE_TYPE(switches::kEnableHarfBuzzRenderText)
|
| + SINGLE_VALUE_TYPE(switches::kEnableHarfBuzzRenderText,
|
| + UMA_HISTOGRAM_ID_kEnableHarfBuzzRenderText)
|
| },
|
| #if defined(OS_ANDROID)
|
| {
|
| @@ -1905,7 +2209,8 @@ const Experiment kExperiments[] = {
|
| IDS_FLAGS_ENABLE_ANSWERS_IN_SUGGEST_NAME,
|
| IDS_FLAGS_ENABLE_ANSWERS_IN_SUGGEST_DESCRIPTION,
|
| kOsAndroid,
|
| - SINGLE_VALUE_TYPE(switches::kEnableAnswersInSuggest)
|
| + SINGLE_VALUE_TYPE(switches::kEnableAnswersInSuggest,
|
| + UMA_HISTOGRAM_ID_kEnableAnswersInSuggest)
|
| },
|
| #endif
|
| {
|
| @@ -1930,7 +2235,9 @@ const Experiment kExperiments[] = {
|
| kOsAndroid,
|
| ENABLE_DISABLE_VALUE_TYPE(
|
| data_reduction_proxy::switches::kEnableDataReductionProxyDev,
|
| - data_reduction_proxy::switches::kDisableDataReductionProxyDev)
|
| + UMA_HISTOGRAM_ID_kEnableDataReductionProxyDev,
|
| + data_reduction_proxy::switches::kDisableDataReductionProxyDev,
|
| + UMA_HISTOGRAM_ID_kDisableDataReductionProxyDev)
|
| },
|
| #endif
|
| };
|
| @@ -1945,6 +2252,7 @@ class FlagsState {
|
| void ConvertFlagsToSwitches(FlagsStorage* flags_storage,
|
| CommandLine* command_line,
|
| SentinelsMode sentinels);
|
| + const SwitchesHistogramIDs& GetSwitchesHistogramIds();
|
| bool IsRestartNeededToCommitChanges();
|
| void SetExperimentEnabled(
|
| FlagsStorage* flags_storage,
|
| @@ -1963,6 +2271,8 @@ class FlagsState {
|
| private:
|
| bool needs_restart_;
|
| std::map<std::string, std::string> flags_switches_;
|
| + // Lazy initialized by GetSwitchesHistogramIds().
|
| + SwitchesHistogramIDs switches_histogram_id_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(FlagsState);
|
| };
|
| @@ -2143,18 +2453,36 @@ void ConvertFlagsToSwitches(FlagsStorage* flags_storage,
|
| sentinels);
|
| }
|
|
|
| +const SwitchesHistogramIDs& GetSwitchesHistogramIds() {
|
| + return FlagsState::GetInstance()->GetSwitchesHistogramIds();
|
| +}
|
| +
|
| bool AreSwitchesIdenticalToCurrentCommandLine(
|
| - const CommandLine& new_cmdline, const CommandLine& active_cmdline) {
|
| + const CommandLine& new_cmdline,
|
| + const CommandLine& active_cmdline,
|
| + std::set<CommandLine::StringType>* out_difference) {
|
| std::set<CommandLine::StringType> new_flags =
|
| ExtractFlagsFromCommandLine(new_cmdline);
|
| std::set<CommandLine::StringType> active_flags =
|
| ExtractFlagsFromCommandLine(active_cmdline);
|
|
|
| + bool result = false;
|
| // Needed because std::equal doesn't check if the 2nd set is empty.
|
| - if (new_flags.size() != active_flags.size())
|
| - return false;
|
| + if (new_flags.size() == active_flags.size()) {
|
| + result =
|
| + std::equal(new_flags.begin(), new_flags.end(), active_flags.begin());
|
| + }
|
| +
|
| + if (out_difference && !result) {
|
| + std::set_symmetric_difference(
|
| + new_flags.begin(),
|
| + new_flags.end(),
|
| + active_flags.begin(),
|
| + active_flags.end(),
|
| + std::inserter(*out_difference, out_difference->begin()));
|
| + }
|
|
|
| - return std::equal(new_flags.begin(), new_flags.end(), active_flags.begin());
|
| + return result;
|
| }
|
|
|
| void GetFlagsExperimentsData(FlagsStorage* flags_storage,
|
| @@ -2262,6 +2590,47 @@ void RecordUMAStatistics(FlagsStorage* flags_storage) {
|
| content::RecordAction(UserMetricsAction("StartupTick"));
|
| }
|
|
|
| +void ReportCustomFlags(const std::string& uma_histogram_hame,
|
| + const std::set<std::string>& command_line_difference) {
|
| + const about_flags::SwitchesHistogramIDs& switch_histogram_id_map =
|
| + about_flags::GetSwitchesHistogramIds();
|
| + for (std::set<std::string>::const_iterator it =
|
| + command_line_difference.begin();
|
| + it != command_line_difference.end();
|
| + ++it) {
|
| + int uma_id = about_flags::UMA_HISTOGRAM_ID_UNKNOWN_FLAG;
|
| + if (it->size() > 2) {
|
| + // Skip '--' before switch name.
|
| + std::string switch_name(it->substr(2));
|
| +
|
| + // Kill value, if any.
|
| + const size_t value_pos = switch_name.find('=');
|
| + if (value_pos != std::string::npos)
|
| + switch_name.resize(value_pos);
|
| +
|
| + const about_flags::SwitchesHistogramIDs::const_iterator pos =
|
| + switch_histogram_id_map.find(switch_name);
|
| + if (pos != switch_histogram_id_map.end()) {
|
| + uma_id = pos->second;
|
| + } else {
|
| + uma_id = about_flags::UMA_HISTOGRAM_ID_UNKNOWN_FLAG;
|
| + NOTREACHED() << "ReportCustomFlags(): flag '" << *it << "' ('"
|
| + << switch_name << "') is unknown.";
|
| + }
|
| + } else {
|
| + uma_id = about_flags::UMA_HISTOGRAM_ID_BAD_FLAG_FORMAT;
|
| + NOTREACHED() << "ReportCustomFlags(): flag '" << *it
|
| + << "' has incorrect format.";
|
| + }
|
| + VLOG(1) << "ReportCustomFlags(): histogram='" << uma_histogram_hame << "' '"
|
| + << *it << "', uma_id=" << uma_id;
|
| +
|
| + // Sparse histogram macro does not cache the histogram, so it's safe
|
| + // to use macro with non-static histogram name here.
|
| + UMA_HISTOGRAM_SPARSE_SLOWLY(uma_histogram_hame, uma_id);
|
| + }
|
| +}
|
| +
|
| //////////////////////////////////////////////////////////////////////////////
|
| // FlagsState implementation.
|
|
|
| @@ -2346,6 +2715,44 @@ void FlagsState::ConvertFlagsToSwitches(FlagsStorage* flags_storage,
|
| }
|
| }
|
|
|
| +void SetSwitchToHistogramIdMapping(const std::string& switch_name,
|
| + const int switch_histogram_id,
|
| + std::map<std::string, int>* out_map) {
|
| + const std::pair<std::map<std::string, int>::iterator, bool> status =
|
| + out_map->insert(std::make_pair(switch_name, switch_histogram_id));
|
| + DCHECK(status.second || status.first->second == switch_histogram_id);
|
| +}
|
| +
|
| +const SwitchesHistogramIDs& FlagsState::GetSwitchesHistogramIds() {
|
| + if (!switches_histogram_id_.empty())
|
| + return switches_histogram_id_;
|
| +
|
| + for (size_t i = 0; i < num_experiments; ++i) {
|
| + const Experiment& e = experiments[i];
|
| + if (e.type == Experiment::SINGLE_VALUE) {
|
| + SetSwitchToHistogramIdMapping(e.command_line_switch,
|
| + e.command_line_switch_histogram_id,
|
| + &switches_histogram_id_);
|
| + } else if (e.type == Experiment::MULTI_VALUE) {
|
| + for (int j = 0; j < e.num_choices; ++j) {
|
| + SetSwitchToHistogramIdMapping(
|
| + e.choices[j].command_line_switch,
|
| + e.choices[j].command_line_switch_histogram_id,
|
| + &switches_histogram_id_);
|
| + }
|
| + } else {
|
| + DCHECK_EQ(e.type, Experiment::ENABLE_DISABLE_VALUE);
|
| + SetSwitchToHistogramIdMapping(e.command_line_switch,
|
| + e.command_line_switch_histogram_id,
|
| + &switches_histogram_id_);
|
| + SetSwitchToHistogramIdMapping(e.disable_command_line_switch,
|
| + e.disable_command_line_switch_histogram_id,
|
| + &switches_histogram_id_);
|
| + }
|
| + }
|
| + return switches_histogram_id_;
|
| +}
|
| +
|
| bool FlagsState::IsRestartNeededToCommitChanges() {
|
| return needs_restart_;
|
| }
|
|
|