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

Unified Diff: chrome/browser/about_flags.cc

Issue 344883002: Collect UMA statistics on which chrome://flags lead to chrome restart on ChromeOS. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Use PathService to get DIR_SOURCE_ROOT in unit test. Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/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_;
}

Powered by Google App Engine
This is Rietveld 408576698