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

Side by Side 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: Update after review. Created 6 years, 4 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/about_flags.h" 5 #include "chrome/browser/about_flags.h"
6 6
7 #include <iterator> 7 #include <iterator>
8 #include <map> 8 #include <map>
9 #include <set> 9 #include <set>
10 #include <utility> 10 #include <utility>
11 11
12 #include "base/command_line.h" 12 #include "base/command_line.h"
13 #include "base/memory/singleton.h" 13 #include "base/memory/singleton.h"
14 #include "base/metrics/sparse_histogram.h"
14 #include "base/stl_util.h" 15 #include "base/stl_util.h"
15 #include "base/strings/string_number_conversions.h" 16 #include "base/strings/string_number_conversions.h"
16 #include "base/strings/utf_string_conversions.h" 17 #include "base/strings/utf_string_conversions.h"
17 #include "base/values.h" 18 #include "base/values.h"
18 #include "cc/base/switches.h" 19 #include "cc/base/switches.h"
19 #include "chrome/browser/bookmarks/enhanced_bookmarks_features.h" 20 #include "chrome/browser/bookmarks/enhanced_bookmarks_features.h"
20 #include "chrome/browser/flags_storage.h" 21 #include "chrome/browser/flags_storage.h"
21 #include "chrome/common/chrome_content_client.h" 22 #include "chrome/common/chrome_content_client.h"
22 #include "chrome/common/chrome_switches.h" 23 #include "chrome/common/chrome_switches.h"
23 #include "components/autofill/core/common/autofill_switches.h" 24 #include "components/autofill/core/common/autofill_switches.h"
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 56
56 #if defined(ENABLE_APP_LIST) 57 #if defined(ENABLE_APP_LIST)
57 #include "ui/app_list/app_list_switches.h" 58 #include "ui/app_list/app_list_switches.h"
58 #endif 59 #endif
59 60
60 using base::UserMetricsAction; 61 using base::UserMetricsAction;
61 62
62 namespace about_flags { 63 namespace about_flags {
63 64
64 // Macros to simplify specifying the type. 65 // Macros to simplify specifying the type.
65 #define SINGLE_VALUE_TYPE_AND_VALUE(command_line_switch, switch_value) \ 66 #define SINGLE_VALUE_TYPE_AND_VALUE( \
66 Experiment::SINGLE_VALUE, \ 67 command_line_switch, switch_value, switch_uma_id) \
67 command_line_switch, switch_value, NULL, NULL, NULL, 0 68 Experiment::SINGLE_VALUE, command_line_switch, switch_value, switch_uma_id, \
68 #define SINGLE_VALUE_TYPE(command_line_switch) \ 69 NULL, NULL, 0, NULL, 0
69 SINGLE_VALUE_TYPE_AND_VALUE(command_line_switch, "") 70 #define SINGLE_VALUE_TYPE(command_line_switch, switch_uma_id) \
70 #define ENABLE_DISABLE_VALUE_TYPE_AND_VALUE(enable_switch, enable_value, \ 71 SINGLE_VALUE_TYPE_AND_VALUE(command_line_switch, "", switch_uma_id)
71 disable_switch, disable_value) \ 72 #define ENABLE_DISABLE_VALUE_TYPE_AND_VALUE(enable_switch, \
72 Experiment::ENABLE_DISABLE_VALUE, enable_switch, enable_value, \ 73 enable_value, \
73 disable_switch, disable_value, NULL, 3 74 enable_switch_uma_id, \
74 #define ENABLE_DISABLE_VALUE_TYPE(enable_switch, disable_switch) \ 75 disable_switch, \
75 ENABLE_DISABLE_VALUE_TYPE_AND_VALUE(enable_switch, "", disable_switch, "") 76 disable_value, \
76 #define MULTI_VALUE_TYPE(choices) \ 77 disable_switch_uma_id) \
77 Experiment::MULTI_VALUE, NULL, NULL, NULL, NULL, choices, arraysize(choices) 78 Experiment::ENABLE_DISABLE_VALUE, enable_switch, enable_value, \
79 enable_switch_uma_id, disable_switch, disable_value, \
80 disable_switch_uma_id, NULL, 3
81 #define ENABLE_DISABLE_VALUE_TYPE(enable_switch, \
82 enable_switch_uma_id, \
83 disable_switch, \
84 disable_switch_uma_id) \
85 ENABLE_DISABLE_VALUE_TYPE_AND_VALUE(enable_switch, \
86 "", \
87 enable_switch_uma_id, \
88 disable_switch, \
89 "", \
90 disable_switch_uma_id)
91 #define MULTI_VALUE_TYPE(choices) \
92 Experiment::MULTI_VALUE, NULL, NULL, 0, NULL, NULL, 0, choices, \
93 arraysize(choices)
78 94
79 namespace { 95 namespace {
80 96
81 const unsigned kOsAll = kOsMac | kOsWin | kOsLinux | kOsCrOS | kOsAndroid; 97 const unsigned kOsAll = kOsMac | kOsWin | kOsLinux | kOsCrOS | kOsAndroid;
82 const unsigned kOsDesktop = kOsMac | kOsWin | kOsLinux | kOsCrOS; 98 const unsigned kOsDesktop = kOsMac | kOsWin | kOsLinux | kOsCrOS;
83 99
84 // Adds a |StringValue| to |list| for each platform where |bitmask| indicates 100 // Adds a |StringValue| to |list| for each platform where |bitmask| indicates
85 // whether the experiment is available on that platform. 101 // whether the experiment is available on that platform.
86 void AddOsStrings(unsigned bitmask, base::ListValue* list) { 102 void AddOsStrings(unsigned bitmask, base::ListValue* list) {
87 struct { 103 struct {
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 GetSwitchString(chromeos::switches::kPolicySwitchesBegin)); 143 GetSwitchString(chromeos::switches::kPolicySwitchesBegin));
128 last = std::find(cmdline.argv().begin(), cmdline.argv().end(), 144 last = std::find(cmdline.argv().begin(), cmdline.argv().end(),
129 GetSwitchString(chromeos::switches::kPolicySwitchesEnd)); 145 GetSwitchString(chromeos::switches::kPolicySwitchesEnd));
130 if (first != cmdline.argv().end() && last != cmdline.argv().end()) 146 if (first != cmdline.argv().end() && last != cmdline.argv().end())
131 flags.insert(first + 1, last); 147 flags.insert(first + 1, last);
132 #endif 148 #endif
133 return flags; 149 return flags;
134 } 150 }
135 151
136 const Experiment::Choice kEnableCompositingForFixedPositionChoices[] = { 152 const Experiment::Choice kEnableCompositingForFixedPositionChoices[] = {
137 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, 153 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
154 "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
138 { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED, 155 { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED,
139 switches::kEnableCompositingForFixedPosition, ""}, 156 switches::kEnableCompositingForFixedPosition, "",
157 UMA_HISTOGRAM_ID_kEnableCompositingForFixedPosition },
140 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED, 158 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
141 switches::kDisableCompositingForFixedPosition, ""}, 159 switches::kDisableCompositingForFixedPosition, "",
160 UMA_HISTOGRAM_ID_kDisableCompositingForFixedPosition },
142 { IDS_FLAGS_COMPOSITING_FOR_FIXED_POSITION_HIGH_DPI, 161 { IDS_FLAGS_COMPOSITING_FOR_FIXED_POSITION_HIGH_DPI,
143 switches::kEnableHighDpiCompositingForFixedPosition, ""} 162 switches::kEnableHighDpiCompositingForFixedPosition, "",
163 UMA_HISTOGRAM_ID_kEnableHighDpiCompositingForFixedPosition }
144 }; 164 };
145 165
146 const Experiment::Choice kEnableCompositingForTransitionChoices[] = { 166 const Experiment::Choice kEnableCompositingForTransitionChoices[] = {
147 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, 167 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
168 "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
148 { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED, 169 { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED,
149 switches::kEnableCompositingForTransition, ""}, 170 switches::kEnableCompositingForTransition, "",
171 UMA_HISTOGRAM_ID_kEnableCompositingForTransition },
150 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED, 172 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
151 switches::kDisableCompositingForTransition, ""}, 173 switches::kDisableCompositingForTransition, "",
174 UMA_HISTOGRAM_ID_kDisableCompositingForTransition },
152 }; 175 };
153 176
154 const Experiment::Choice kEnableAcceleratedFixedRootBackgroundChoices[] = { 177 const Experiment::Choice kEnableAcceleratedFixedRootBackgroundChoices[] = {
155 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, 178 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
179 "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
156 { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED, 180 { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED,
157 switches::kEnableAcceleratedFixedRootBackground, ""}, 181 switches::kEnableAcceleratedFixedRootBackground, "",
182 UMA_HISTOGRAM_ID_kEnableAcceleratedFixedRootBackground },
158 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED, 183 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
159 switches::kDisableAcceleratedFixedRootBackground, ""}, 184 switches::kDisableAcceleratedFixedRootBackground, "",
185 UMA_HISTOGRAM_ID_kDisableAcceleratedFixedRootBackground },
160 }; 186 };
161 187
162 const Experiment::Choice kTouchEventsChoices[] = { 188 const Experiment::Choice kTouchEventsChoices[] = {
163 { IDS_GENERIC_EXPERIMENT_CHOICE_AUTOMATIC, "", "" }, 189 { IDS_GENERIC_EXPERIMENT_CHOICE_AUTOMATIC,
190 "",
191 "",
192 UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
164 { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED, 193 { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED,
165 switches::kTouchEvents, 194 switches::kTouchEvents,
166 switches::kTouchEventsEnabled }, 195 switches::kTouchEventsEnabled,
196 UMA_HISTOGRAM_ID_kTouchEvents },
167 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED, 197 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
168 switches::kTouchEvents, 198 switches::kTouchEvents,
169 switches::kTouchEventsDisabled } 199 switches::kTouchEventsDisabled,
200 UMA_HISTOGRAM_ID_kTouchEvents }
170 }; 201 };
171 202
172 #if defined(USE_AURA) 203 #if defined(USE_AURA)
173 const Experiment::Choice kOverscrollHistoryNavigationChoices[] = { 204 const Experiment::Choice kOverscrollHistoryNavigationChoices[] = {
174 { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED, "", "" }, 205 { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED,
206 "",
207 "",
208 UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
175 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED, 209 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
176 switches::kOverscrollHistoryNavigation, 210 switches::kOverscrollHistoryNavigation,
177 "0" }, 211 "0",
212 UMA_HISTOGRAM_ID_kOverscrollHistoryNavigation },
178 { IDS_OVERSCROLL_HISTORY_NAVIGATION_SIMPLE_UI, 213 { IDS_OVERSCROLL_HISTORY_NAVIGATION_SIMPLE_UI,
179 switches::kOverscrollHistoryNavigation, 214 switches::kOverscrollHistoryNavigation,
180 "2" } 215 "2",
216 UMA_HISTOGRAM_ID_kOverscrollHistoryNavigation }
181 }; 217 };
182 #endif 218 #endif
183 219
184 #if !defined(DISABLE_NACL) 220 #if !defined(DISABLE_NACL)
185 const Experiment::Choice kNaClDebugMaskChoices[] = { 221 const Experiment::Choice kNaClDebugMaskChoices[] = {
186 // Secure shell can be used on ChromeOS for forwarding the TCP port opened by 222 // Secure shell can be used on ChromeOS for forwarding the TCP port opened by
187 // debug stub to a remote machine. Since secure shell uses NaCl, we usually 223 // debug stub to a remote machine. Since secure shell uses NaCl, we usually
188 // want to avoid debugging that. The PNaCl translator is also a NaCl module, 224 // want to avoid debugging that. The PNaCl translator is also a NaCl module,
189 // so by default we want to avoid debugging that. 225 // so by default we want to avoid debugging that.
190 // NOTE: As the default value must be the empty string, the mask excluding 226 // NOTE: As the default value must be the empty string, the mask excluding
191 // the PNaCl translator and secure shell is substituted elsewhere. 227 // the PNaCl translator and secure shell is substituted elsewhere.
192 { IDS_NACL_DEBUG_MASK_CHOICE_EXCLUDE_UTILS_PNACL, "", "" }, 228 { IDS_NACL_DEBUG_MASK_CHOICE_EXCLUDE_UTILS_PNACL, "", "",
193 { IDS_NACL_DEBUG_MASK_CHOICE_DEBUG_ALL, switches::kNaClDebugMask, "*://*" }, 229 UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
194 { IDS_NACL_DEBUG_MASK_CHOICE_INCLUDE_DEBUG, 230 { IDS_NACL_DEBUG_MASK_CHOICE_DEBUG_ALL, switches::kNaClDebugMask, "*://*",
195 switches::kNaClDebugMask, "*://*/*debug.nmf" } 231 UMA_HISTOGRAM_ID_kNaClDebugMask },
232 { IDS_NACL_DEBUG_MASK_CHOICE_INCLUDE_DEBUG, switches::kNaClDebugMask,
233 "*://*/*debug.nmf", UMA_HISTOGRAM_ID_kNaClDebugMask }
196 }; 234 };
197 #endif 235 #endif
198 236
199 const Experiment::Choice kImplSidePaintingChoices[] = { 237 const Experiment::Choice kImplSidePaintingChoices[] = {
200 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, 238 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
201 { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED, 239 "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
202 switches::kEnableImplSidePainting, ""}, 240 { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED,
203 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED, 241 switches::kEnableImplSidePainting, "",
204 switches::kDisableImplSidePainting, ""} 242 UMA_HISTOGRAM_ID_kEnableImplSidePainting },
243 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
244 switches::kDisableImplSidePainting, "",
245 UMA_HISTOGRAM_ID_kDisableImplSidePainting }
205 }; 246 };
206 247
207 const Experiment::Choice kLCDTextChoices[] = { 248 const Experiment::Choice kLCDTextChoices[] = {
208 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, 249 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "",
209 { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED, switches::kEnableLCDText, ""}, 250 UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
210 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED, switches::kDisableLCDText, ""} 251 { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED, switches::kEnableLCDText, "",
252 UMA_HISTOGRAM_ID_kEnableLCDText },
253 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED, switches::kDisableLCDText, "",
254 UMA_HISTOGRAM_ID_kDisableLCDText }
211 }; 255 };
212 256
213 const Experiment::Choice kDistanceFieldTextChoices[] = { 257 const Experiment::Choice kDistanceFieldTextChoices[] = {
214 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, 258 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
215 { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED, 259 "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
216 switches::kEnableDistanceFieldText, "" }, 260 { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED,
217 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED, 261 switches::kEnableDistanceFieldText, "",
218 switches::kDisableDistanceFieldText, "" } 262 UMA_HISTOGRAM_ID_kEnableDistanceFieldText },
263 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
264 switches::kDisableDistanceFieldText, "",
265 UMA_HISTOGRAM_ID_kDisableDistanceFieldText }
219 }; 266 };
220 267
221 #ifndef USE_AURA 268 #ifndef USE_AURA
222 const Experiment::Choice kDelegatedRendererChoices[] = { 269 const Experiment::Choice kDelegatedRendererChoices[] = {
223 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, 270 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
224 { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED, 271 "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
225 switches::kEnableDelegatedRenderer, ""}, 272 { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED,
226 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED, 273 switches::kEnableDelegatedRenderer, "",
227 switches::kDisableDelegatedRenderer, ""} 274 UMA_HISTOGRAM_ID_kEnableDelegatedRenderer },
275 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
276 switches::kDisableDelegatedRenderer, "",
277 UMA_HISTOGRAM_ID_kDisableDelegatedRenderer }
228 }; 278 };
229 #endif 279 #endif
230 280
231 const Experiment::Choice kMaxTilesForInterestAreaChoices[] = { 281 const Experiment::Choice kMaxTilesForInterestAreaChoices[] = {
232 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, 282 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
283 "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
233 { IDS_FLAGS_MAX_TILES_FOR_INTEREST_AREA_SHORT, 284 { IDS_FLAGS_MAX_TILES_FOR_INTEREST_AREA_SHORT,
234 cc::switches::kMaxTilesForInterestArea, "64"}, 285 cc::switches::kMaxTilesForInterestArea, "64",
286 UMA_HISTOGRAM_ID_kMaxTilesForInterestArea },
235 { IDS_FLAGS_MAX_TILES_FOR_INTEREST_AREA_TALL, 287 { IDS_FLAGS_MAX_TILES_FOR_INTEREST_AREA_TALL,
236 cc::switches::kMaxTilesForInterestArea, "128"}, 288 cc::switches::kMaxTilesForInterestArea, "128",
289 UMA_HISTOGRAM_ID_kMaxTilesForInterestArea },
237 { IDS_FLAGS_MAX_TILES_FOR_INTEREST_AREA_GRANDE, 290 { IDS_FLAGS_MAX_TILES_FOR_INTEREST_AREA_GRANDE,
238 cc::switches::kMaxTilesForInterestArea, "256"}, 291 cc::switches::kMaxTilesForInterestArea, "256",
292 UMA_HISTOGRAM_ID_kMaxTilesForInterestArea },
239 { IDS_FLAGS_MAX_TILES_FOR_INTEREST_AREA_VENTI, 293 { IDS_FLAGS_MAX_TILES_FOR_INTEREST_AREA_VENTI,
240 cc::switches::kMaxTilesForInterestArea, "512"} 294 cc::switches::kMaxTilesForInterestArea, "512",
295 UMA_HISTOGRAM_ID_kMaxTilesForInterestArea }
241 }; 296 };
242 297
243 const Experiment::Choice kDefaultTileWidthChoices[] = { 298 const Experiment::Choice kDefaultTileWidthChoices[] = {
244 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, 299 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
300 "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
245 { IDS_FLAGS_DEFAULT_TILE_WIDTH_SHORT, 301 { IDS_FLAGS_DEFAULT_TILE_WIDTH_SHORT,
246 switches::kDefaultTileWidth, "128"}, 302 switches::kDefaultTileWidth, "128", UMA_HISTOGRAM_ID_kDefaultTileWidth },
247 { IDS_FLAGS_DEFAULT_TILE_WIDTH_TALL, 303 { IDS_FLAGS_DEFAULT_TILE_WIDTH_TALL,
248 switches::kDefaultTileWidth, "256"}, 304 switches::kDefaultTileWidth, "256", UMA_HISTOGRAM_ID_kDefaultTileWidth },
249 { IDS_FLAGS_DEFAULT_TILE_WIDTH_GRANDE, 305 { IDS_FLAGS_DEFAULT_TILE_WIDTH_GRANDE,
250 switches::kDefaultTileWidth, "512"}, 306 switches::kDefaultTileWidth, "512", UMA_HISTOGRAM_ID_kDefaultTileWidth },
251 { IDS_FLAGS_DEFAULT_TILE_WIDTH_VENTI, 307 { IDS_FLAGS_DEFAULT_TILE_WIDTH_VENTI,
252 switches::kDefaultTileWidth, "1024"} 308 switches::kDefaultTileWidth, "1024", UMA_HISTOGRAM_ID_kDefaultTileWidth }
253 }; 309 };
254 310
255 const Experiment::Choice kDefaultTileHeightChoices[] = { 311 const Experiment::Choice kDefaultTileHeightChoices[] = {
256 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, 312 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
313 "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
257 { IDS_FLAGS_DEFAULT_TILE_HEIGHT_SHORT, 314 { IDS_FLAGS_DEFAULT_TILE_HEIGHT_SHORT,
258 switches::kDefaultTileHeight, "128"}, 315 switches::kDefaultTileHeight, "128", UMA_HISTOGRAM_ID_kDefaultTileHeight },
259 { IDS_FLAGS_DEFAULT_TILE_HEIGHT_TALL, 316 { IDS_FLAGS_DEFAULT_TILE_HEIGHT_TALL,
260 switches::kDefaultTileHeight, "256"}, 317 switches::kDefaultTileHeight, "256", UMA_HISTOGRAM_ID_kDefaultTileHeight },
261 { IDS_FLAGS_DEFAULT_TILE_HEIGHT_GRANDE, 318 { IDS_FLAGS_DEFAULT_TILE_HEIGHT_GRANDE,
262 switches::kDefaultTileHeight, "512"}, 319 switches::kDefaultTileHeight, "512", UMA_HISTOGRAM_ID_kDefaultTileHeight },
263 { IDS_FLAGS_DEFAULT_TILE_HEIGHT_VENTI, 320 { IDS_FLAGS_DEFAULT_TILE_HEIGHT_VENTI,
264 switches::kDefaultTileHeight, "1024"} 321 switches::kDefaultTileHeight, "1024", UMA_HISTOGRAM_ID_kDefaultTileHeight }
265 }; 322 };
266 323
267 const Experiment::Choice kSimpleCacheBackendChoices[] = { 324 const Experiment::Choice kSimpleCacheBackendChoices[] = {
268 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, 325 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
269 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED, 326 "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
270 switches::kUseSimpleCacheBackend, "off" }, 327 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
271 { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED, 328 switches::kUseSimpleCacheBackend, "off",
272 switches::kUseSimpleCacheBackend, "on"} 329 UMA_HISTOGRAM_ID_kUseSimpleCacheBackend },
330 { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED,
331 switches::kUseSimpleCacheBackend, "on",
332 UMA_HISTOGRAM_ID_kUseSimpleCacheBackend }
273 }; 333 };
274 334
275 #if defined(USE_AURA) 335 #if defined(USE_AURA)
276 const Experiment::Choice kTabCaptureUpscaleQualityChoices[] = { 336 const Experiment::Choice kTabCaptureUpscaleQualityChoices[] = {
277 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, 337 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
338 "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
278 { IDS_FLAGS_TAB_CAPTURE_SCALE_QUALITY_FAST, 339 { IDS_FLAGS_TAB_CAPTURE_SCALE_QUALITY_FAST,
279 switches::kTabCaptureUpscaleQuality, "fast" }, 340 switches::kTabCaptureUpscaleQuality, "fast",
341 UMA_HISTOGRAM_ID_kTabCaptureUpscaleQuality },
280 { IDS_FLAGS_TAB_CAPTURE_SCALE_QUALITY_GOOD, 342 { IDS_FLAGS_TAB_CAPTURE_SCALE_QUALITY_GOOD,
281 switches::kTabCaptureUpscaleQuality, "good" }, 343 switches::kTabCaptureUpscaleQuality, "good",
344 UMA_HISTOGRAM_ID_kTabCaptureUpscaleQuality },
282 { IDS_FLAGS_TAB_CAPTURE_SCALE_QUALITY_BEST, 345 { IDS_FLAGS_TAB_CAPTURE_SCALE_QUALITY_BEST,
283 switches::kTabCaptureUpscaleQuality, "best" }, 346 switches::kTabCaptureUpscaleQuality, "best",
347 UMA_HISTOGRAM_ID_kTabCaptureUpscaleQuality },
284 }; 348 };
285 349
286 const Experiment::Choice kTabCaptureDownscaleQualityChoices[] = { 350 const Experiment::Choice kTabCaptureDownscaleQualityChoices[] = {
287 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, 351 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
352 "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
288 { IDS_FLAGS_TAB_CAPTURE_SCALE_QUALITY_FAST, 353 { IDS_FLAGS_TAB_CAPTURE_SCALE_QUALITY_FAST,
289 switches::kTabCaptureDownscaleQuality, "fast" }, 354 switches::kTabCaptureDownscaleQuality, "fast",
355 UMA_HISTOGRAM_ID_kTabCaptureDownscaleQuality },
290 { IDS_FLAGS_TAB_CAPTURE_SCALE_QUALITY_GOOD, 356 { IDS_FLAGS_TAB_CAPTURE_SCALE_QUALITY_GOOD,
291 switches::kTabCaptureDownscaleQuality, "good" }, 357 switches::kTabCaptureDownscaleQuality, "good",
358 UMA_HISTOGRAM_ID_kTabCaptureDownscaleQuality },
292 { IDS_FLAGS_TAB_CAPTURE_SCALE_QUALITY_BEST, 359 { IDS_FLAGS_TAB_CAPTURE_SCALE_QUALITY_BEST,
293 switches::kTabCaptureDownscaleQuality, "best" }, 360 switches::kTabCaptureDownscaleQuality, "best",
361 UMA_HISTOGRAM_ID_kTabCaptureDownscaleQuality },
294 }; 362 };
295 #endif 363 #endif
296 364
297 #if defined(USE_AURA) || defined(OS_LINUX) 365 #if defined(USE_AURA) || defined(OS_LINUX)
298 const Experiment::Choice kOverlayScrollbarChoices[] = { 366 const Experiment::Choice kOverlayScrollbarChoices[] = {
299 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, 367 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
300 { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED, 368 "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
301 switches::kEnableOverlayScrollbar, ""}, 369 { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED,
302 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED, 370 switches::kEnableOverlayScrollbar, "",
303 switches::kDisableOverlayScrollbar, ""} 371 UMA_HISTOGRAM_ID_kEnableOverlayScrollbar },
372 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
373 switches::kDisableOverlayScrollbar, "",
374 UMA_HISTOGRAM_ID_kDisableOverlayScrollbar }
304 }; 375 };
305 #endif 376 #endif
306 377
307 const Experiment::Choice kZeroCopyChoices[] = { 378 const Experiment::Choice kZeroCopyChoices[] = {
308 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, 379 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
309 { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED, 380 "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
310 switches::kEnableZeroCopy, ""}, 381 { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED,
311 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED, 382 switches::kEnableZeroCopy, "", UMA_HISTOGRAM_ID_kEnableZeroCopy },
312 switches::kDisableZeroCopy, ""} 383 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
384 switches::kDisableZeroCopy, "", UMA_HISTOGRAM_ID_kDisableZeroCopy }
313 }; 385 };
314 386
315 #if defined(OS_ANDROID) 387 #if defined(OS_ANDROID)
316 const Experiment::Choice kZeroSuggestExperimentsChoices[] = { 388 const Experiment::Choice kZeroSuggestExperimentsChoices[] = {
317 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, 389 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
390 "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
318 { IDS_FLAGS_ZERO_SUGGEST_MOST_VISITED, 391 { IDS_FLAGS_ZERO_SUGGEST_MOST_VISITED,
319 switches::kEnableZeroSuggestMostVisited, ""}, 392 switches::kEnableZeroSuggestMostVisited, "",
393 UMA_HISTOGRAM_ID_kEnableZeroSuggestMostVisited },
320 { IDS_FLAGS_ZERO_SUGGEST_ETHER_SERP, 394 { IDS_FLAGS_ZERO_SUGGEST_ETHER_SERP,
321 switches::kEnableZeroSuggestEtherSerp, ""}, 395 switches::kEnableZeroSuggestEtherSerp, "",
396 UMA_HISTOGRAM_ID_kEnableZeroSuggestEtherSerp },
322 { IDS_FLAGS_ZERO_SUGGEST_ETHER_NO_SERP, 397 { IDS_FLAGS_ZERO_SUGGEST_ETHER_NO_SERP,
323 switches::kEnableZeroSuggestEtherNoSerp, ""}, 398 switches::kEnableZeroSuggestEtherNoSerp, "",
399 UMA_HISTOGRAM_ID_kEnableZeroSuggestEtherNoSerp },
324 { IDS_FLAGS_ZERO_SUGGEST_PERSONALIZED, 400 { IDS_FLAGS_ZERO_SUGGEST_PERSONALIZED,
325 switches::kEnableZeroSuggestPersonalized, ""}, 401 switches::kEnableZeroSuggestPersonalized, "",
326 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED, 402 UMA_HISTOGRAM_ID_kEnableZeroSuggestPersonalized },
327 switches::kDisableZeroSuggest, ""} 403 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
404 switches::kDisableZeroSuggest, "", UMA_HISTOGRAM_ID_kDisableZeroSuggest }
328 }; 405 };
329 #endif 406 #endif
330 407
331 const Experiment::Choice kNumRasterThreadsChoices[] = { 408 const Experiment::Choice kNumRasterThreadsChoices[] = {
332 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, 409 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
333 { IDS_FLAGS_NUM_RASTER_THREADS_ONE, switches::kNumRasterThreads, "1" }, 410 "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
334 { IDS_FLAGS_NUM_RASTER_THREADS_TWO, switches::kNumRasterThreads, "2" }, 411 { IDS_FLAGS_NUM_RASTER_THREADS_ONE,
335 { IDS_FLAGS_NUM_RASTER_THREADS_THREE, switches::kNumRasterThreads, "3" }, 412 switches::kNumRasterThreads, "1", UMA_HISTOGRAM_ID_kNumRasterThreads },
336 { IDS_FLAGS_NUM_RASTER_THREADS_FOUR, switches::kNumRasterThreads, "4" } 413 { IDS_FLAGS_NUM_RASTER_THREADS_TWO,
414 switches::kNumRasterThreads, "2", UMA_HISTOGRAM_ID_kNumRasterThreads },
415 { IDS_FLAGS_NUM_RASTER_THREADS_THREE,
416 switches::kNumRasterThreads, "3", UMA_HISTOGRAM_ID_kNumRasterThreads },
417 { IDS_FLAGS_NUM_RASTER_THREADS_FOUR,
418 switches::kNumRasterThreads, "4", UMA_HISTOGRAM_ID_kNumRasterThreads }
337 }; 419 };
338 420
339 const Experiment::Choice kEnableGpuRasterizationChoices[] = { 421 const Experiment::Choice kEnableGpuRasterizationChoices[] = {
340 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, 422 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
341 { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED, 423 "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
342 switches::kEnableGpuRasterization, "" }, 424 { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED,
343 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED, 425 switches::kEnableGpuRasterization, "",
344 switches::kDisableGpuRasterization, "" }, 426 UMA_HISTOGRAM_ID_kEnableGpuRasterization },
427 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
428 switches::kDisableGpuRasterization, "",
429 UMA_HISTOGRAM_ID_kDisableGpuRasterization },
345 { IDS_FLAGS_FORCE_GPU_RASTERIZATION, 430 { IDS_FLAGS_FORCE_GPU_RASTERIZATION,
346 switches::kForceGpuRasterization, "" }, 431 switches::kForceGpuRasterization, "",
432 UMA_HISTOGRAM_ID_kForceGpuRasterization },
347 }; 433 };
348 434
349 // We're using independent flags here (as opposed to a common flag with 435 // We're using independent flags here (as opposed to a common flag with
350 // different values) to be able to enable/disable the entire experience 436 // different values) to be able to enable/disable the entire experience
351 // associated with this feature server-side from the FieldTrial (the complete 437 // associated with this feature server-side from the FieldTrial (the complete
352 // experience includes other flag changes as well). It is not currently possible 438 // experience includes other flag changes as well). It is not currently possible
353 // to do that with "flag=value" flags. 439 // to do that with "flag=value" flags.
354 const Experiment::Choice kSearchButtonInOmniboxChoices[] = { 440 const Experiment::Choice kSearchButtonInOmniboxChoices[] = {
355 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, 441 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
442 "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
356 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED, 443 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
357 switches::kDisableSearchButtonInOmnibox, ""}, 444 switches::kDisableSearchButtonInOmnibox, "",
445 UMA_HISTOGRAM_ID_kDisableSearchButtonInOmnibox },
358 { IDS_FLAGS_SEARCH_BUTTON_IN_OMNIBOX_ENABLE_FOR_STR, 446 { IDS_FLAGS_SEARCH_BUTTON_IN_OMNIBOX_ENABLE_FOR_STR,
359 switches::kEnableSearchButtonInOmniboxForStr, ""}, 447 switches::kEnableSearchButtonInOmniboxForStr, "",
448 UMA_HISTOGRAM_ID_kEnableSearchButtonInOmniboxForStr },
360 { IDS_FLAGS_SEARCH_BUTTON_IN_OMNIBOX_ENABLE_FOR_STR_OR_IIP, 449 { IDS_FLAGS_SEARCH_BUTTON_IN_OMNIBOX_ENABLE_FOR_STR_OR_IIP,
361 switches::kEnableSearchButtonInOmniboxForStrOrIip, ""}, 450 switches::kEnableSearchButtonInOmniboxForStrOrIip, "",
451 UMA_HISTOGRAM_ID_kEnableSearchButtonInOmniboxForStrOrIip },
362 { IDS_FLAGS_SEARCH_BUTTON_IN_OMNIBOX_ENABLED, 452 { IDS_FLAGS_SEARCH_BUTTON_IN_OMNIBOX_ENABLED,
363 switches::kEnableSearchButtonInOmniboxAlways, ""} 453 switches::kEnableSearchButtonInOmniboxAlways, "",
454 UMA_HISTOGRAM_ID_kEnableSearchButtonInOmniboxAlways }
364 }; 455 };
365 456
366 // See comment above for kSearchButtonInOmniboxChoices. The same reasoning 457 // See comment above for kSearchButtonInOmniboxChoices. The same reasoning
367 // applies here. 458 // applies here.
368 const Experiment::Choice kOriginChipChoices[] = { 459 const Experiment::Choice kOriginChipChoices[] = {
369 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, 460 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
370 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED, switches::kDisableOriginChip, ""}, 461 "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
371 { IDS_FLAGS_ORIGIN_CHIP_ALWAYS, switches::kEnableOriginChipAlways, ""}, 462 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
372 { IDS_FLAGS_ORIGIN_CHIP_ON_SRP, switches::kEnableOriginChipOnSrp, ""} 463 switches::kDisableOriginChip, "", UMA_HISTOGRAM_ID_kDisableOriginChip },
464 { IDS_FLAGS_ORIGIN_CHIP_ALWAYS,
465 switches::kEnableOriginChipAlways, "",
466 UMA_HISTOGRAM_ID_kEnableOriginChipAlways },
467 { IDS_FLAGS_ORIGIN_CHIP_ON_SRP,
468 switches::kEnableOriginChipOnSrp, "",
469 UMA_HISTOGRAM_ID_kEnableOriginChipOnSrp }
373 }; 470 };
374 471
375 const Experiment::Choice kTouchScrollingModeChoices[] = { 472 const Experiment::Choice kTouchScrollingModeChoices[] = {
376 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, 473 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
474 "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
377 { IDS_FLAGS_TOUCH_SCROLLING_MODE_TOUCHCANCEL, 475 { IDS_FLAGS_TOUCH_SCROLLING_MODE_TOUCHCANCEL,
378 switches::kTouchScrollingMode, 476 switches::kTouchScrollingMode,
379 switches::kTouchScrollingModeTouchcancel }, 477 switches::kTouchScrollingModeTouchcancel,
478 UMA_HISTOGRAM_ID_kTouchScrollingMode },
380 { IDS_FLAGS_TOUCH_SCROLLING_MODE_ASYNC_TOUCHMOVE, 479 { IDS_FLAGS_TOUCH_SCROLLING_MODE_ASYNC_TOUCHMOVE,
381 switches::kTouchScrollingMode, 480 switches::kTouchScrollingMode,
382 switches::kTouchScrollingModeAsyncTouchmove }, 481 switches::kTouchScrollingModeAsyncTouchmove,
482 UMA_HISTOGRAM_ID_kTouchScrollingMode },
383 { IDS_FLAGS_TOUCH_SCROLLING_MODE_SYNC_TOUCHMOVE, 483 { IDS_FLAGS_TOUCH_SCROLLING_MODE_SYNC_TOUCHMOVE,
384 switches::kTouchScrollingMode, 484 switches::kTouchScrollingMode,
385 switches::kTouchScrollingModeSyncTouchmove }, 485 switches::kTouchScrollingModeSyncTouchmove,
486 UMA_HISTOGRAM_ID_kTouchScrollingMode },
386 }; 487 };
387 488
388 #if defined(ENABLE_APP_LIST) 489 #if defined(ENABLE_APP_LIST)
389 const Experiment::Choice kEnableSyncAppListChoices[] = { 490 const Experiment::Choice kEnableSyncAppListChoices[] = {
390 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, 491 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
492 "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
391 { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED, 493 { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED,
392 app_list::switches::kEnableSyncAppList, "" }, 494 app_list::switches::kEnableSyncAppList, "",
495 UMA_HISTOGRAM_ID_kEnableSyncAppList },
393 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED, 496 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
394 app_list::switches::kDisableSyncAppList, "" }, 497 app_list::switches::kDisableSyncAppList, "",
498 UMA_HISTOGRAM_ID_kDisableSyncAppList },
395 }; 499 };
396 #endif 500 #endif
397 501
398 const Experiment::Choice kExtensionContentVerificationChoices[] = { 502 const Experiment::Choice kExtensionContentVerificationChoices[] = {
399 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, 503 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
504 "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
400 { IDS_FLAGS_EXTENSION_CONTENT_VERIFICATION_BOOTSTRAP, 505 { IDS_FLAGS_EXTENSION_CONTENT_VERIFICATION_BOOTSTRAP,
401 extensions::switches::kExtensionContentVerification, 506 extensions::switches::kExtensionContentVerification,
402 extensions::switches::kExtensionContentVerificationBootstrap }, 507 extensions::switches::kExtensionContentVerificationBootstrap,
508 UMA_HISTOGRAM_ID_kExtensionContentVerification },
403 { IDS_FLAGS_EXTENSION_CONTENT_VERIFICATION_ENFORCE, 509 { IDS_FLAGS_EXTENSION_CONTENT_VERIFICATION_ENFORCE,
404 extensions::switches::kExtensionContentVerification, 510 extensions::switches::kExtensionContentVerification,
405 extensions::switches::kExtensionContentVerificationEnforce }, 511 extensions::switches::kExtensionContentVerificationEnforce,
512 UMA_HISTOGRAM_ID_kExtensionContentVerification },
406 { IDS_FLAGS_EXTENSION_CONTENT_VERIFICATION_ENFORCE_STRICT, 513 { IDS_FLAGS_EXTENSION_CONTENT_VERIFICATION_ENFORCE_STRICT,
407 extensions::switches::kExtensionContentVerification, 514 extensions::switches::kExtensionContentVerification,
408 extensions::switches::kExtensionContentVerificationEnforceStrict }, 515 extensions::switches::kExtensionContentVerificationEnforceStrict,
516 UMA_HISTOGRAM_ID_kExtensionContentVerification },
409 }; 517 };
410 518
411 // Using independent flags (instead of flag=value flags) to be able to 519 // Using independent flags (instead of flag=value flags) to be able to
412 // associate the version with a FieldTrial. FieldTrials don't currently support 520 // associate the version with a FieldTrial. FieldTrials don't currently support
413 // flag=value flags. 521 // flag=value flags.
414 const Experiment::Choice kSSLInterstitialVersions[] = { 522 const Experiment::Choice kSSLInterstitialVersions[] = {
415 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, 523 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
524 "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
416 { IDS_FLAGS_SSL_INTERSTITIAL_VERSION_V1, 525 { IDS_FLAGS_SSL_INTERSTITIAL_VERSION_V1,
417 switches::kSSLInterstitialVersionV1, "" }, 526 switches::kSSLInterstitialVersionV1, "",
527 UMA_HISTOGRAM_ID_kSSLInterstitialVersionV1 },
418 { IDS_FLAGS_SSL_INTERSTITIAL_VERSION_V2_GRAY, 528 { IDS_FLAGS_SSL_INTERSTITIAL_VERSION_V2_GRAY,
419 switches::kSSLInterstitialVersionV2Gray, "" }, 529 switches::kSSLInterstitialVersionV2Gray, "",
530 UMA_HISTOGRAM_ID_kSSLInterstitialVersionV2Gray },
420 { IDS_FLAGS_SSL_INTERSTITIAL_VERSION_V2_COLORFUL, 531 { IDS_FLAGS_SSL_INTERSTITIAL_VERSION_V2_COLORFUL,
421 switches::kSSLInterstitialVersionV2Colorful, "" }, 532 switches::kSSLInterstitialVersionV2Colorful, "",
533 UMA_HISTOGRAM_ID_kSSLInterstitialVersionV2Colorful },
422 }; 534 };
423 535
424 // Using independent flags (instead of flag=value flags) to be able to 536 // Using independent flags (instead of flag=value flags) to be able to
425 // associate the version with a FieldTrial. FieldTrials don't currently support 537 // associate the version with a FieldTrial. FieldTrials don't currently support
426 // flag=value flags. 538 // flag=value flags.
427 const Experiment::Choice kMalwareInterstitialVersions[] = { 539 const Experiment::Choice kMalwareInterstitialVersions[] = {
428 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, 540 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
541 "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
429 { IDS_FLAGS_MALWARE_INTERSTITIAL_VERSION_V2, 542 { IDS_FLAGS_MALWARE_INTERSTITIAL_VERSION_V2,
430 switches::kMalwareInterstitialVersionV2, "" }, 543 switches::kMalwareInterstitialVersionV2, "",
544 UMA_HISTOGRAM_ID_kMalwareInterstitialVersionV2 },
431 { IDS_FLAGS_MALWARE_INTERSTITIAL_VERSION_V3, 545 { IDS_FLAGS_MALWARE_INTERSTITIAL_VERSION_V3,
432 switches::kMalwareInterstitialVersionV3, "" }, 546 switches::kMalwareInterstitialVersionV3, "",
547 UMA_HISTOGRAM_ID_kMalwareInterstitialVersionV3 },
433 }; 548 };
434 549
435 #if defined(OS_CHROMEOS) 550 #if defined(OS_CHROMEOS)
436 const Experiment::Choice kEnableFileManagerMTPChoices[] = { 551 const Experiment::Choice kEnableFileManagerMTPChoices[] = {
437 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, 552 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
553 "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
438 { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED, 554 { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED,
439 chromeos::switches::kEnableFileManagerMTP, "true" }, 555 chromeos::switches::kEnableFileManagerMTP, "true",
556 UMA_HISTOGRAM_ID_kEnableFileManagerMTP },
440 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED, 557 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
441 chromeos::switches::kEnableFileManagerMTP, "false" } 558 chromeos::switches::kEnableFileManagerMTP, "false",
559 UMA_HISTOGRAM_ID_kEnableFileManagerMTP }
442 }; 560 };
443 561
444 const Experiment::Choice kEnableFileManagerNewGalleryChoices[] = { 562 const Experiment::Choice kEnableFileManagerNewGalleryChoices[] = {
445 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", ""}, 563 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
564 "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
446 { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED, 565 { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED,
447 chromeos::switches::kFileManagerEnableNewGallery, "true"}, 566 chromeos::switches::kFileManagerEnableNewGallery, "true",
567 UMA_HISTOGRAM_ID_kFileManagerEnableNewGallery },
448 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED, 568 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
449 chromeos::switches::kFileManagerEnableNewGallery, "false"} 569 chromeos::switches::kFileManagerEnableNewGallery, "false",
570 UMA_HISTOGRAM_ID_kFileManagerEnableNewGallery }
450 }; 571 };
451 #endif 572 #endif
452 573
453 const Experiment::Choice kEnableSettingsWindowChoices[] = { 574 const Experiment::Choice kEnableSettingsWindowChoices[] = {
454 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, 575 { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
576 "", "", UMA_HISTOGRAM_ID_UNKNOWN_FLAG },
455 { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED, 577 { IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED,
456 ::switches::kEnableSettingsWindow, "" }, 578 ::switches::kEnableSettingsWindow, "",
579 UMA_HISTOGRAM_ID_kEnableSettingsWindow },
457 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED, 580 { IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
458 ::switches::kDisableSettingsWindow, "" }, 581 ::switches::kDisableSettingsWindow, "",
582 UMA_HISTOGRAM_ID_kDisableSettingsWindow },
459 }; 583 };
460 584
461 // RECORDING USER METRICS FOR FLAGS: 585 // RECORDING USER METRICS FOR FLAGS:
462 // ----------------------------------------------------------------------------- 586 // -----------------------------------------------------------------------------
463 // The first line of the experiment is the internal name. If you'd like to 587 // The first line of the experiment is the internal name. If you'd like to
464 // gather statistics about the usage of your flag, you should append a marker 588 // gather statistics about the usage of your flag, you should append a marker
465 // comment to the end of the feature name, like so: 589 // comment to the end of the feature name, like so:
466 // "my-special-feature", // FLAGS:RECORD_UMA 590 // "my-special-feature", // FLAGS:RECORD_UMA
467 // 591 //
468 // After doing that, run 592 // After doing that, run
(...skipping 24 matching lines...) Expand all
493 // array of choices. 617 // array of choices.
494 // See the documentation of Experiment for details on the fields. 618 // See the documentation of Experiment for details on the fields.
495 // 619 //
496 // When adding a new choice, add it to the end of the list. 620 // When adding a new choice, add it to the end of the list.
497 const Experiment kExperiments[] = { 621 const Experiment kExperiments[] = {
498 { 622 {
499 "ignore-gpu-blacklist", 623 "ignore-gpu-blacklist",
500 IDS_FLAGS_IGNORE_GPU_BLACKLIST_NAME, 624 IDS_FLAGS_IGNORE_GPU_BLACKLIST_NAME,
501 IDS_FLAGS_IGNORE_GPU_BLACKLIST_DESCRIPTION, 625 IDS_FLAGS_IGNORE_GPU_BLACKLIST_DESCRIPTION,
502 kOsAll, 626 kOsAll,
503 SINGLE_VALUE_TYPE(switches::kIgnoreGpuBlacklist) 627 SINGLE_VALUE_TYPE(switches::kIgnoreGpuBlacklist,
628 UMA_HISTOGRAM_ID_kIgnoreGpuBlacklist)
504 }, 629 },
505 { 630 {
506 "threaded-compositing-mode", 631 "threaded-compositing-mode",
507 IDS_FLAGS_THREADED_COMPOSITING_MODE_NAME, 632 IDS_FLAGS_THREADED_COMPOSITING_MODE_NAME,
508 IDS_FLAGS_THREADED_COMPOSITING_MODE_DESCRIPTION, 633 IDS_FLAGS_THREADED_COMPOSITING_MODE_DESCRIPTION,
509 #if !defined(USE_AURA) 634 #if !defined(USE_AURA)
510 kOsLinux, 635 kOsLinux,
511 #else 636 #else
512 0, 637 0,
513 #endif 638 #endif
514 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableThreadedCompositing, 639 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableThreadedCompositing,
515 switches::kDisableThreadedCompositing) 640 UMA_HISTOGRAM_ID_kEnableThreadedCompositing,
641 switches::kDisableThreadedCompositing,
642 UMA_HISTOGRAM_ID_kDisableThreadedCompositing)
516 }, 643 },
517 { 644 {
518 "force-accelerated-composited-scrolling", 645 "force-accelerated-composited-scrolling",
519 IDS_FLAGS_FORCE_ACCELERATED_OVERFLOW_SCROLL_MODE_NAME, 646 IDS_FLAGS_FORCE_ACCELERATED_OVERFLOW_SCROLL_MODE_NAME,
520 IDS_FLAGS_FORCE_ACCELERATED_OVERFLOW_SCROLL_MODE_DESCRIPTION, 647 IDS_FLAGS_FORCE_ACCELERATED_OVERFLOW_SCROLL_MODE_DESCRIPTION, kOsAll,
521 kOsAll, 648 ENABLE_DISABLE_VALUE_TYPE(
522 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableAcceleratedOverflowScroll, 649 switches::kEnableAcceleratedOverflowScroll,
523 switches::kDisableAcceleratedOverflowScroll) 650 UMA_HISTOGRAM_ID_kEnableAcceleratedOverflowScroll,
651 switches::kDisableAcceleratedOverflowScroll,
652 UMA_HISTOGRAM_ID_kDisableAcceleratedOverflowScroll)
524 }, 653 },
525 { 654 {
526 "disable_layer_squashing", 655 "disable_layer_squashing",
527 IDS_FLAGS_DISABLE_LAYER_SQUASHING_NAME, 656 IDS_FLAGS_DISABLE_LAYER_SQUASHING_NAME,
528 IDS_FLAGS_DISABLE_LAYER_SQUASHING_DESCRIPTION, 657 IDS_FLAGS_DISABLE_LAYER_SQUASHING_DESCRIPTION,
529 kOsAll, 658 kOsAll,
530 SINGLE_VALUE_TYPE(switches::kDisableLayerSquashing) 659 SINGLE_VALUE_TYPE(switches::kDisableLayerSquashing,
660 UMA_HISTOGRAM_ID_kDisableLayerSquashing)
531 }, 661 },
532 #if defined(OS_WIN) 662 #if defined(OS_WIN)
533 { 663 {
534 "disable-direct-write", 664 "disable-direct-write",
535 IDS_FLAGS_DISABLE_DIRECT_WRITE_NAME, 665 IDS_FLAGS_DISABLE_DIRECT_WRITE_NAME,
536 IDS_FLAGS_DISABLE_DIRECT_WRITE_DESCRIPTION, 666 IDS_FLAGS_DISABLE_DIRECT_WRITE_DESCRIPTION,
537 kOsWin, 667 kOsWin,
538 SINGLE_VALUE_TYPE(switches::kDisableDirectWrite) 668 SINGLE_VALUE_TYPE(switches::kDisableDirectWrite,
669 UMA_HISTOGRAM_ID_kDisableDirectWrite)
539 }, 670 },
540 #endif 671 #endif
541 { 672 {
542 "enable-experimental-canvas-features", 673 "enable-experimental-canvas-features",
543 IDS_FLAGS_ENABLE_EXPERIMENTAL_CANVAS_FEATURES_NAME, 674 IDS_FLAGS_ENABLE_EXPERIMENTAL_CANVAS_FEATURES_NAME,
544 IDS_FLAGS_ENABLE_EXPERIMENTAL_CANVAS_FEATURES_DESCRIPTION, 675 IDS_FLAGS_ENABLE_EXPERIMENTAL_CANVAS_FEATURES_DESCRIPTION,
545 kOsAll, 676 kOsAll,
546 SINGLE_VALUE_TYPE(switches::kEnableExperimentalCanvasFeatures) 677 SINGLE_VALUE_TYPE(switches::kEnableExperimentalCanvasFeatures,
678 UMA_HISTOGRAM_ID_kEnableExperimentalCanvasFeatures)
547 }, 679 },
548 { 680 {
549 "disable-accelerated-2d-canvas", 681 "disable-accelerated-2d-canvas",
550 IDS_FLAGS_DISABLE_ACCELERATED_2D_CANVAS_NAME, 682 IDS_FLAGS_DISABLE_ACCELERATED_2D_CANVAS_NAME,
551 IDS_FLAGS_DISABLE_ACCELERATED_2D_CANVAS_DESCRIPTION, 683 IDS_FLAGS_DISABLE_ACCELERATED_2D_CANVAS_DESCRIPTION,
552 kOsAll, 684 kOsAll,
553 SINGLE_VALUE_TYPE(switches::kDisableAccelerated2dCanvas) 685 SINGLE_VALUE_TYPE(switches::kDisableAccelerated2dCanvas,
686 UMA_HISTOGRAM_ID_kDisableAccelerated2dCanvas)
554 }, 687 },
555 { 688 {
556 "composited-layer-borders", 689 "composited-layer-borders",
557 IDS_FLAGS_COMPOSITED_LAYER_BORDERS, 690 IDS_FLAGS_COMPOSITED_LAYER_BORDERS,
558 IDS_FLAGS_COMPOSITED_LAYER_BORDERS_DESCRIPTION, 691 IDS_FLAGS_COMPOSITED_LAYER_BORDERS_DESCRIPTION,
559 kOsAll, 692 kOsAll,
560 SINGLE_VALUE_TYPE(cc::switches::kShowCompositedLayerBorders) 693 SINGLE_VALUE_TYPE(cc::switches::kShowCompositedLayerBorders,
694 UMA_HISTOGRAM_ID_kShowCompositedLayerBorders)
561 }, 695 },
562 { 696 {
563 "show-fps-counter", 697 "show-fps-counter",
564 IDS_FLAGS_SHOW_FPS_COUNTER, 698 IDS_FLAGS_SHOW_FPS_COUNTER,
565 IDS_FLAGS_SHOW_FPS_COUNTER_DESCRIPTION, 699 IDS_FLAGS_SHOW_FPS_COUNTER_DESCRIPTION,
566 kOsAll, 700 kOsAll,
567 SINGLE_VALUE_TYPE(cc::switches::kShowFPSCounter) 701 SINGLE_VALUE_TYPE(cc::switches::kShowFPSCounter,
702 UMA_HISTOGRAM_ID_kShowFPSCounter)
568 }, 703 },
569 { 704 {
570 "disable-webgl", 705 "disable-webgl",
571 IDS_FLAGS_DISABLE_WEBGL_NAME, 706 IDS_FLAGS_DISABLE_WEBGL_NAME,
572 IDS_FLAGS_DISABLE_WEBGL_DESCRIPTION, 707 IDS_FLAGS_DISABLE_WEBGL_DESCRIPTION,
573 kOsAll, 708 kOsAll,
574 SINGLE_VALUE_TYPE(switches::kDisableExperimentalWebGL) 709 SINGLE_VALUE_TYPE(switches::kDisableExperimentalWebGL,
710 UMA_HISTOGRAM_ID_kDisableExperimentalWebGL)
575 }, 711 },
576 { 712 {
577 "disable-webrtc", 713 "disable-webrtc",
578 IDS_FLAGS_DISABLE_WEBRTC_NAME, 714 IDS_FLAGS_DISABLE_WEBRTC_NAME,
579 IDS_FLAGS_DISABLE_WEBRTC_DESCRIPTION, 715 IDS_FLAGS_DISABLE_WEBRTC_DESCRIPTION,
580 kOsAndroid, 716 kOsAndroid,
581 #if defined(OS_ANDROID) 717 #if defined(OS_ANDROID)
582 SINGLE_VALUE_TYPE(switches::kDisableWebRTC) 718 SINGLE_VALUE_TYPE(switches::kDisableWebRTC,
719 UMA_HISTOGRAM_ID_kDisableWebRTC)
583 #else 720 #else
584 SINGLE_VALUE_TYPE("") 721 SINGLE_VALUE_TYPE("", 0)
585 #endif 722 #endif
586 }, 723 },
587 #if defined(ENABLE_WEBRTC) 724 #if defined(ENABLE_WEBRTC)
588 { 725 {
589 "disable-device-enumeration", 726 "disable-device-enumeration",
590 IDS_FLAGS_DISABLE_DEVICE_ENUMERATION_NAME, 727 IDS_FLAGS_DISABLE_DEVICE_ENUMERATION_NAME,
591 IDS_FLAGS_DISABLE_DEVICE_ENUMERATION_DESCRIPTION, 728 IDS_FLAGS_DISABLE_DEVICE_ENUMERATION_DESCRIPTION,
592 kOsAll, 729 kOsAll,
593 SINGLE_VALUE_TYPE(switches::kDisableDeviceEnumeration) 730 SINGLE_VALUE_TYPE(switches::kDisableDeviceEnumeration,
731 UMA_HISTOGRAM_ID_kDisableDeviceEnumeration)
594 }, 732 },
595 { 733 {
596 "disable-webrtc-hw-decoding", 734 "disable-webrtc-hw-decoding",
597 IDS_FLAGS_DISABLE_WEBRTC_HW_DECODING_NAME, 735 IDS_FLAGS_DISABLE_WEBRTC_HW_DECODING_NAME,
598 IDS_FLAGS_DISABLE_WEBRTC_HW_DECODING_DESCRIPTION, 736 IDS_FLAGS_DISABLE_WEBRTC_HW_DECODING_DESCRIPTION,
599 kOsAndroid | kOsCrOS, 737 kOsAndroid | kOsCrOS,
600 SINGLE_VALUE_TYPE(switches::kDisableWebRtcHWDecoding) 738 SINGLE_VALUE_TYPE(switches::kDisableWebRtcHWDecoding,
739 UMA_HISTOGRAM_ID_kDisableWebRtcHWDecoding)
601 }, 740 },
602 { 741 {
603 "disable-webrtc-hw-encoding", 742 "disable-webrtc-hw-encoding",
604 IDS_FLAGS_DISABLE_WEBRTC_HW_ENCODING_NAME, 743 IDS_FLAGS_DISABLE_WEBRTC_HW_ENCODING_NAME,
605 IDS_FLAGS_DISABLE_WEBRTC_HW_ENCODING_DESCRIPTION, 744 IDS_FLAGS_DISABLE_WEBRTC_HW_ENCODING_DESCRIPTION,
606 kOsAndroid | kOsCrOS, 745 kOsAndroid | kOsCrOS,
607 SINGLE_VALUE_TYPE(switches::kDisableWebRtcHWEncoding) 746 SINGLE_VALUE_TYPE(switches::kDisableWebRtcHWEncoding,
747 UMA_HISTOGRAM_ID_kDisableWebRtcHWEncoding)
608 }, 748 },
609 #endif 749 #endif
610 #if defined(OS_ANDROID) 750 #if defined(OS_ANDROID)
611 { 751 {
612 "disable-webaudio", 752 "disable-webaudio",
613 IDS_FLAGS_DISABLE_WEBAUDIO_NAME, 753 IDS_FLAGS_DISABLE_WEBAUDIO_NAME,
614 IDS_FLAGS_DISABLE_WEBAUDIO_DESCRIPTION, 754 IDS_FLAGS_DISABLE_WEBAUDIO_DESCRIPTION,
615 kOsAndroid, 755 kOsAndroid,
616 SINGLE_VALUE_TYPE(switches::kDisableWebAudio) 756 SINGLE_VALUE_TYPE(switches::kDisableWebAudio,
757 UMA_HISTOGRAM_ID_kDisableWebAudio)
617 }, 758 },
618 #endif 759 #endif
619 { 760 {
620 "enable-compositing-for-fixed-position", 761 "enable-compositing-for-fixed-position",
621 IDS_FLAGS_COMPOSITING_FOR_FIXED_POSITION_NAME, 762 IDS_FLAGS_COMPOSITING_FOR_FIXED_POSITION_NAME,
622 IDS_FLAGS_COMPOSITING_FOR_FIXED_POSITION_DESCRIPTION, 763 IDS_FLAGS_COMPOSITING_FOR_FIXED_POSITION_DESCRIPTION,
623 kOsAll, 764 kOsAll,
624 MULTI_VALUE_TYPE(kEnableCompositingForFixedPositionChoices) 765 MULTI_VALUE_TYPE(kEnableCompositingForFixedPositionChoices)
625 }, 766 },
626 { 767 {
(...skipping 10 matching lines...) Expand all
637 kOsAll, 778 kOsAll,
638 MULTI_VALUE_TYPE(kEnableAcceleratedFixedRootBackgroundChoices) 779 MULTI_VALUE_TYPE(kEnableAcceleratedFixedRootBackgroundChoices)
639 }, 780 },
640 // Native client is compiled out when DISABLE_NACL is defined. 781 // Native client is compiled out when DISABLE_NACL is defined.
641 #if !defined(DISABLE_NACL) 782 #if !defined(DISABLE_NACL)
642 { 783 {
643 "enable-nacl", // FLAGS:RECORD_UMA 784 "enable-nacl", // FLAGS:RECORD_UMA
644 IDS_FLAGS_ENABLE_NACL_NAME, 785 IDS_FLAGS_ENABLE_NACL_NAME,
645 IDS_FLAGS_ENABLE_NACL_DESCRIPTION, 786 IDS_FLAGS_ENABLE_NACL_DESCRIPTION,
646 kOsAll, 787 kOsAll,
647 SINGLE_VALUE_TYPE(switches::kEnableNaCl) 788 SINGLE_VALUE_TYPE(switches::kEnableNaCl, UMA_HISTOGRAM_ID_kEnableNaCl)
648 }, 789 },
649 { 790 {
650 "enable-nacl-debug", // FLAGS:RECORD_UMA 791 "enable-nacl-debug", // FLAGS:RECORD_UMA
651 IDS_FLAGS_ENABLE_NACL_DEBUG_NAME, 792 IDS_FLAGS_ENABLE_NACL_DEBUG_NAME,
652 IDS_FLAGS_ENABLE_NACL_DEBUG_DESCRIPTION, 793 IDS_FLAGS_ENABLE_NACL_DEBUG_DESCRIPTION,
653 kOsDesktop, 794 kOsDesktop,
654 SINGLE_VALUE_TYPE(switches::kEnableNaClDebug) 795 SINGLE_VALUE_TYPE(switches::kEnableNaClDebug,
796 UMA_HISTOGRAM_ID_kEnableNaClDebug)
655 }, 797 },
656 { 798 {
657 "disable-pnacl", // FLAGS:RECORD_UMA 799 "disable-pnacl", // FLAGS:RECORD_UMA
658 IDS_FLAGS_DISABLE_PNACL_NAME, 800 IDS_FLAGS_DISABLE_PNACL_NAME,
659 IDS_FLAGS_DISABLE_PNACL_DESCRIPTION, 801 IDS_FLAGS_DISABLE_PNACL_DESCRIPTION,
660 kOsDesktop, 802 kOsDesktop,
661 SINGLE_VALUE_TYPE(switches::kDisablePnacl) 803 SINGLE_VALUE_TYPE(switches::kDisablePnacl,
804 UMA_HISTOGRAM_ID_kDisablePnacl)
662 }, 805 },
663 { 806 {
664 "nacl-debug-mask", // FLAGS:RECORD_UMA 807 "nacl-debug-mask", // FLAGS:RECORD_UMA
665 IDS_FLAGS_NACL_DEBUG_MASK_NAME, 808 IDS_FLAGS_NACL_DEBUG_MASK_NAME,
666 IDS_FLAGS_NACL_DEBUG_MASK_DESCRIPTION, 809 IDS_FLAGS_NACL_DEBUG_MASK_DESCRIPTION,
667 kOsDesktop, 810 kOsDesktop,
668 MULTI_VALUE_TYPE(kNaClDebugMaskChoices) 811 MULTI_VALUE_TYPE(kNaClDebugMaskChoices)
669 }, 812 },
670 #endif 813 #endif
671 { 814 {
672 "extension-apis", // FLAGS:RECORD_UMA 815 "extension-apis", // FLAGS:RECORD_UMA
673 IDS_FLAGS_EXPERIMENTAL_EXTENSION_APIS_NAME, 816 IDS_FLAGS_EXPERIMENTAL_EXTENSION_APIS_NAME,
674 IDS_FLAGS_EXPERIMENTAL_EXTENSION_APIS_DESCRIPTION, 817 IDS_FLAGS_EXPERIMENTAL_EXTENSION_APIS_DESCRIPTION,
675 kOsDesktop, 818 kOsDesktop,
676 SINGLE_VALUE_TYPE(extensions::switches::kEnableExperimentalExtensionApis) 819 SINGLE_VALUE_TYPE(extensions::switches::kEnableExperimentalExtensionApis,
820 UMA_HISTOGRAM_ID_kEnableExperimentalExtensionApis)
677 }, 821 },
678 { 822 {
679 "extensions-on-chrome-urls", 823 "extensions-on-chrome-urls",
680 IDS_FLAGS_EXTENSIONS_ON_CHROME_URLS_NAME, 824 IDS_FLAGS_EXTENSIONS_ON_CHROME_URLS_NAME,
681 IDS_FLAGS_EXTENSIONS_ON_CHROME_URLS_DESCRIPTION, 825 IDS_FLAGS_EXTENSIONS_ON_CHROME_URLS_DESCRIPTION,
682 kOsAll, 826 kOsAll,
683 SINGLE_VALUE_TYPE(extensions::switches::kExtensionsOnChromeURLs) 827 SINGLE_VALUE_TYPE(extensions::switches::kExtensionsOnChromeURLs,
828 UMA_HISTOGRAM_ID_kExtensionsOnChromeURLs)
684 }, 829 },
685 { 830 {
686 "enable-fast-unload", 831 "enable-fast-unload",
687 IDS_FLAGS_ENABLE_FAST_UNLOAD_NAME, 832 IDS_FLAGS_ENABLE_FAST_UNLOAD_NAME,
688 IDS_FLAGS_ENABLE_FAST_UNLOAD_DESCRIPTION, 833 IDS_FLAGS_ENABLE_FAST_UNLOAD_DESCRIPTION,
689 kOsAll, 834 kOsAll,
690 SINGLE_VALUE_TYPE(switches::kEnableFastUnload) 835 SINGLE_VALUE_TYPE(switches::kEnableFastUnload,
836 UMA_HISTOGRAM_ID_kEnableFastUnload)
691 }, 837 },
692 { 838 {
693 "enable-app-window-controls", 839 "enable-app-window-controls",
694 IDS_FLAGS_ENABLE_APP_WINDOW_CONTROLS_NAME, 840 IDS_FLAGS_ENABLE_APP_WINDOW_CONTROLS_NAME,
695 IDS_FLAGS_ENABLE_APP_WINDOW_CONTROLS_DESCRIPTION, 841 IDS_FLAGS_ENABLE_APP_WINDOW_CONTROLS_DESCRIPTION,
696 kOsDesktop, 842 kOsDesktop,
697 SINGLE_VALUE_TYPE(switches::kEnableAppWindowControls) 843 SINGLE_VALUE_TYPE(switches::kEnableAppWindowControls,
844 UMA_HISTOGRAM_ID_kEnableAppWindowControls)
698 }, 845 },
699 { 846 {
700 "disable-hyperlink-auditing", 847 "disable-hyperlink-auditing",
701 IDS_FLAGS_DISABLE_HYPERLINK_AUDITING_NAME, 848 IDS_FLAGS_DISABLE_HYPERLINK_AUDITING_NAME,
702 IDS_FLAGS_DISABLE_HYPERLINK_AUDITING_DESCRIPTION, 849 IDS_FLAGS_DISABLE_HYPERLINK_AUDITING_DESCRIPTION,
703 kOsAll, 850 kOsAll,
704 SINGLE_VALUE_TYPE(switches::kNoPings) 851 SINGLE_VALUE_TYPE(switches::kNoPings, UMA_HISTOGRAM_ID_kNoPings)
705 }, 852 },
706 #if defined(OS_ANDROID) 853 #if defined(OS_ANDROID)
707 { 854 {
708 "enable-new-ntp", 855 "enable-new-ntp",
709 IDS_FLAGS_ENABLE_NEW_NTP, 856 IDS_FLAGS_ENABLE_NEW_NTP,
710 IDS_FLAGS_ENABLE_NEW_NTP_DESCRIPTION, 857 IDS_FLAGS_ENABLE_NEW_NTP_DESCRIPTION,
711 kOsAndroid, 858 kOsAndroid,
712 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableNewNTP, 859 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableNewNTP,
713 switches::kDisableNewNTP) 860 UMA_HISTOGRAM_ID_kEnableNewNTP,
861 switches::kDisableNewNTP,
862 UMA_HISTOGRAM_ID_kDisableNewNTP)
714 }, 863 },
715 { 864 {
716 "contextual-search", 865 "contextual-search",
717 IDS_FLAGS_ENABLE_CONTEXTUAL_SEARCH, 866 IDS_FLAGS_ENABLE_CONTEXTUAL_SEARCH,
718 IDS_FLAGS_ENABLE_CONTEXTUAL_SEARCH_DESCRIPTION, 867 IDS_FLAGS_ENABLE_CONTEXTUAL_SEARCH_DESCRIPTION,
719 kOsAndroid, 868 kOsAndroid,
720 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableContextualSearch, 869 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableContextualSearch,
721 switches::kDisableContextualSearch) 870 UMA_HISTOGRAM_ID_kEnableContextualSearch,
871 switches::kDisableContextualSearch,
872 UMA_HISTOGRAM_ID_kDisableContextualSearch)
722 }, 873 },
723 #endif 874 #endif
724 { 875 {
725 "show-autofill-type-predictions", 876 "show-autofill-type-predictions",
726 IDS_FLAGS_SHOW_AUTOFILL_TYPE_PREDICTIONS_NAME, 877 IDS_FLAGS_SHOW_AUTOFILL_TYPE_PREDICTIONS_NAME,
727 IDS_FLAGS_SHOW_AUTOFILL_TYPE_PREDICTIONS_DESCRIPTION, 878 IDS_FLAGS_SHOW_AUTOFILL_TYPE_PREDICTIONS_DESCRIPTION,
728 kOsAll, 879 kOsAll,
729 SINGLE_VALUE_TYPE(autofill::switches::kShowAutofillTypePredictions) 880 SINGLE_VALUE_TYPE(autofill::switches::kShowAutofillTypePredictions,
881 UMA_HISTOGRAM_ID_kShowAutofillTypePredictions)
730 }, 882 },
731 { 883 {
732 "enable-gesture-tap-highlight", 884 "enable-gesture-tap-highlight",
733 IDS_FLAGS_ENABLE_GESTURE_TAP_HIGHLIGHTING_NAME, 885 IDS_FLAGS_ENABLE_GESTURE_TAP_HIGHLIGHTING_NAME,
734 IDS_FLAGS_ENABLE_GESTURE_TAP_HIGHLIGHTING_DESCRIPTION, 886 IDS_FLAGS_ENABLE_GESTURE_TAP_HIGHLIGHTING_DESCRIPTION,
735 kOsLinux | kOsCrOS | kOsWin | kOsAndroid, 887 kOsLinux | kOsCrOS | kOsWin | kOsAndroid,
736 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableGestureTapHighlight, 888 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableGestureTapHighlight,
737 switches::kDisableGestureTapHighlight) 889 UMA_HISTOGRAM_ID_kEnableGestureTapHighlight,
890 switches::kDisableGestureTapHighlight,
891 UMA_HISTOGRAM_ID_kDisableGestureTapHighlight)
738 }, 892 },
739 { 893 {
740 "enable-smooth-scrolling", // FLAGS:RECORD_UMA 894 "enable-smooth-scrolling", // FLAGS:RECORD_UMA
741 IDS_FLAGS_ENABLE_SMOOTH_SCROLLING_NAME, 895 IDS_FLAGS_ENABLE_SMOOTH_SCROLLING_NAME,
742 IDS_FLAGS_ENABLE_SMOOTH_SCROLLING_DESCRIPTION, 896 IDS_FLAGS_ENABLE_SMOOTH_SCROLLING_DESCRIPTION,
743 // Can't expose the switch unless the code is compiled in. 897 // Can't expose the switch unless the code is compiled in.
744 // On by default for the Mac (different implementation in WebKit). 898 // On by default for the Mac (different implementation in WebKit).
745 kOsLinux, 899 kOsLinux,
746 SINGLE_VALUE_TYPE(switches::kEnableSmoothScrolling) 900 SINGLE_VALUE_TYPE(switches::kEnableSmoothScrolling,
901 UMA_HISTOGRAM_ID_kEnableSmoothScrolling)
747 }, 902 },
748 #if defined(USE_AURA) || defined(OS_LINUX) 903 #if defined(USE_AURA) || defined(OS_LINUX)
749 { 904 {
750 "overlay-scrollbars", 905 "overlay-scrollbars",
751 IDS_FLAGS_ENABLE_OVERLAY_SCROLLBARS_NAME, 906 IDS_FLAGS_ENABLE_OVERLAY_SCROLLBARS_NAME,
752 IDS_FLAGS_ENABLE_OVERLAY_SCROLLBARS_DESCRIPTION, 907 IDS_FLAGS_ENABLE_OVERLAY_SCROLLBARS_DESCRIPTION,
753 // Uses the system preference on Mac (a different implementation). 908 // Uses the system preference on Mac (a different implementation).
754 // On Android, this is always enabled. 909 // On Android, this is always enabled.
755 kOsLinux | kOsCrOS | kOsWin, 910 kOsLinux | kOsCrOS | kOsWin,
756 MULTI_VALUE_TYPE(kOverlayScrollbarChoices) 911 MULTI_VALUE_TYPE(kOverlayScrollbarChoices)
757 }, 912 },
758 #endif 913 #endif
759 { 914 {
760 "enable-panels", 915 "enable-panels",
761 IDS_FLAGS_ENABLE_PANELS_NAME, 916 IDS_FLAGS_ENABLE_PANELS_NAME,
762 IDS_FLAGS_ENABLE_PANELS_DESCRIPTION, 917 IDS_FLAGS_ENABLE_PANELS_DESCRIPTION,
763 kOsDesktop, 918 kOsDesktop,
764 SINGLE_VALUE_TYPE(switches::kEnablePanels) 919 SINGLE_VALUE_TYPE(switches::kEnablePanels,
920 UMA_HISTOGRAM_ID_kEnablePanels)
765 }, 921 },
766 { 922 {
767 // See http://crbug.com/120416 for how to remove this flag. 923 // See http://crbug.com/120416 for how to remove this flag.
768 "save-page-as-mhtml", // FLAGS:RECORD_UMA 924 "save-page-as-mhtml", // FLAGS:RECORD_UMA
769 IDS_FLAGS_SAVE_PAGE_AS_MHTML_NAME, 925 IDS_FLAGS_SAVE_PAGE_AS_MHTML_NAME,
770 IDS_FLAGS_SAVE_PAGE_AS_MHTML_DESCRIPTION, 926 IDS_FLAGS_SAVE_PAGE_AS_MHTML_DESCRIPTION,
771 kOsMac | kOsWin | kOsLinux, 927 kOsMac | kOsWin | kOsLinux,
772 SINGLE_VALUE_TYPE(switches::kSavePageAsMHTML) 928 SINGLE_VALUE_TYPE(switches::kSavePageAsMHTML,
929 UMA_HISTOGRAM_ID_kSavePageAsMHTML)
773 }, 930 },
774 { 931 {
775 "enable-quic", 932 "enable-quic",
776 IDS_FLAGS_ENABLE_QUIC_NAME, 933 IDS_FLAGS_ENABLE_QUIC_NAME,
777 IDS_FLAGS_ENABLE_QUIC_DESCRIPTION, 934 IDS_FLAGS_ENABLE_QUIC_DESCRIPTION,
778 kOsAll, 935 kOsAll,
779 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableQuic, 936 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableQuic,
780 switches::kDisableQuic) 937 UMA_HISTOGRAM_ID_kEnableQuic,
938 switches::kDisableQuic,
939 UMA_HISTOGRAM_ID_kDisableQuic)
781 }, 940 },
782 { 941 {
783 "enable-quic-https", 942 "enable-quic-https",
784 IDS_FLAGS_ENABLE_QUIC_HTTPS_NAME, 943 IDS_FLAGS_ENABLE_QUIC_HTTPS_NAME,
785 IDS_FLAGS_ENABLE_QUIC_HTTPS_DESCRIPTION, 944 IDS_FLAGS_ENABLE_QUIC_HTTPS_DESCRIPTION,
786 kOsAll, 945 kOsAll,
787 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableQuicHttps, 946 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableQuicHttps,
788 switches::kDisableQuicHttps) 947 UMA_HISTOGRAM_ID_kEnableQuicHttps,
948 switches::kDisableQuicHttps,
949 UMA_HISTOGRAM_ID_kDisableQuicHttps)
789 }, 950 },
790 { 951 {
791 "enable-spdy4", 952 "enable-spdy4",
792 IDS_FLAGS_ENABLE_SPDY4_NAME, 953 IDS_FLAGS_ENABLE_SPDY4_NAME,
793 IDS_FLAGS_ENABLE_SPDY4_DESCRIPTION, 954 IDS_FLAGS_ENABLE_SPDY4_DESCRIPTION,
794 kOsAll, 955 kOsAll,
795 SINGLE_VALUE_TYPE(switches::kEnableSpdy4) 956 SINGLE_VALUE_TYPE(switches::kEnableSpdy4, UMA_HISTOGRAM_ID_kEnableSpdy4)
796 }, 957 },
797 { 958 {
798 "enable-async-dns", 959 "enable-async-dns",
799 IDS_FLAGS_ENABLE_ASYNC_DNS_NAME, 960 IDS_FLAGS_ENABLE_ASYNC_DNS_NAME,
800 IDS_FLAGS_ENABLE_ASYNC_DNS_DESCRIPTION, 961 IDS_FLAGS_ENABLE_ASYNC_DNS_DESCRIPTION,
801 kOsWin | kOsMac | kOsLinux | kOsCrOS, 962 kOsWin | kOsMac | kOsLinux | kOsCrOS,
802 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableAsyncDns, 963 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableAsyncDns,
803 switches::kDisableAsyncDns) 964 UMA_HISTOGRAM_ID_kEnableAsyncDns,
965 switches::kDisableAsyncDns,
966 UMA_HISTOGRAM_ID_kDisableAsyncDns)
804 }, 967 },
805 { 968 {
806 "disable-media-source", 969 "disable-media-source",
807 IDS_FLAGS_DISABLE_MEDIA_SOURCE_NAME, 970 IDS_FLAGS_DISABLE_MEDIA_SOURCE_NAME,
808 IDS_FLAGS_DISABLE_MEDIA_SOURCE_DESCRIPTION, 971 IDS_FLAGS_DISABLE_MEDIA_SOURCE_DESCRIPTION,
809 kOsAll, 972 kOsAll,
810 SINGLE_VALUE_TYPE(switches::kDisableMediaSource) 973 SINGLE_VALUE_TYPE(switches::kDisableMediaSource,
974 UMA_HISTOGRAM_ID_kDisableMediaSource)
811 }, 975 },
812 { 976 {
813 "enable-encrypted-media", 977 "enable-encrypted-media",
814 IDS_FLAGS_ENABLE_ENCRYPTED_MEDIA_NAME, 978 IDS_FLAGS_ENABLE_ENCRYPTED_MEDIA_NAME,
815 IDS_FLAGS_ENABLE_ENCRYPTED_MEDIA_DESCRIPTION, 979 IDS_FLAGS_ENABLE_ENCRYPTED_MEDIA_DESCRIPTION,
816 kOsAll, 980 kOsAll,
817 SINGLE_VALUE_TYPE(switches::kEnableEncryptedMedia) 981 SINGLE_VALUE_TYPE(switches::kEnableEncryptedMedia,
982 UMA_HISTOGRAM_ID_kEnableEncryptedMedia)
818 }, 983 },
819 { 984 {
820 "disable-prefixed-encrypted-media", 985 "disable-prefixed-encrypted-media",
821 IDS_FLAGS_DISABLE_PREFIXED_ENCRYPTED_MEDIA_NAME, 986 IDS_FLAGS_DISABLE_PREFIXED_ENCRYPTED_MEDIA_NAME,
822 IDS_FLAGS_DISABLE_PREFIXED_ENCRYPTED_MEDIA_DESCRIPTION, 987 IDS_FLAGS_DISABLE_PREFIXED_ENCRYPTED_MEDIA_DESCRIPTION,
823 kOsAll, 988 kOsAll,
824 SINGLE_VALUE_TYPE(switches::kDisablePrefixedEncryptedMedia) 989 SINGLE_VALUE_TYPE(switches::kDisablePrefixedEncryptedMedia,
990 UMA_HISTOGRAM_ID_kDisablePrefixedEncryptedMedia)
825 }, 991 },
826 #if defined(OS_ANDROID) 992 #if defined(OS_ANDROID)
827 { 993 {
828 "disable-infobar-for-protected-media-identifier", 994 "disable-infobar-for-protected-media-identifier",
829 IDS_FLAGS_DISABLE_INFOBAR_FOR_PROTECTED_MEDIA_IDENTIFIER_NAME, 995 IDS_FLAGS_DISABLE_INFOBAR_FOR_PROTECTED_MEDIA_IDENTIFIER_NAME,
830 IDS_FLAGS_DISABLE_INFOBAR_FOR_PROTECTED_MEDIA_IDENTIFIER_DESCRIPTION, 996 IDS_FLAGS_DISABLE_INFOBAR_FOR_PROTECTED_MEDIA_IDENTIFIER_DESCRIPTION,
831 kOsAndroid, 997 kOsAndroid,
832 SINGLE_VALUE_TYPE(switches::kDisableInfobarForProtectedMediaIdentifier) 998 SINGLE_VALUE_TYPE(
999 switches::kDisableInfobarForProtectedMediaIdentifier,
1000 UMA_HISTOGRAM_ID_kDisableInfobarForProtectedMediaIdentifier)
833 }, 1001 },
834 { 1002 {
835 "mediadrm-enable-non-compositing", 1003 "mediadrm-enable-non-compositing",
836 IDS_FLAGS_MEDIADRM_ENABLE_NON_COMPOSITING_NAME, 1004 IDS_FLAGS_MEDIADRM_ENABLE_NON_COMPOSITING_NAME,
837 IDS_FLAGS_MEDIADRM_ENABLE_NON_COMPOSITING_DESCRIPTION, 1005 IDS_FLAGS_MEDIADRM_ENABLE_NON_COMPOSITING_DESCRIPTION,
838 kOsAndroid, 1006 kOsAndroid,
839 SINGLE_VALUE_TYPE(switches::kMediaDrmEnableNonCompositing) 1007 SINGLE_VALUE_TYPE(switches::kMediaDrmEnableNonCompositing,
1008 UMA_HISTOGRAM_ID_kMediaDrmEnableNonCompositing)
840 }, 1009 },
841 #endif // defined(OS_ANDROID) 1010 #endif // defined(OS_ANDROID)
842 { 1011 {
843 "enable-javascript-harmony", 1012 "enable-javascript-harmony",
844 IDS_FLAGS_ENABLE_JAVASCRIPT_HARMONY_NAME, 1013 IDS_FLAGS_ENABLE_JAVASCRIPT_HARMONY_NAME,
845 IDS_FLAGS_ENABLE_JAVASCRIPT_HARMONY_DESCRIPTION, 1014 IDS_FLAGS_ENABLE_JAVASCRIPT_HARMONY_DESCRIPTION,
846 kOsAll, 1015 kOsAll,
847 SINGLE_VALUE_TYPE_AND_VALUE(switches::kJavaScriptFlags, "--harmony") 1016 SINGLE_VALUE_TYPE_AND_VALUE(switches::kJavaScriptFlags,
1017 "--harmony",
1018 UMA_HISTOGRAM_ID_kJavaScriptFlags)
848 }, 1019 },
849 { 1020 {
850 "disable-software-rasterizer", 1021 "disable-software-rasterizer",
851 IDS_FLAGS_DISABLE_SOFTWARE_RASTERIZER_NAME, 1022 IDS_FLAGS_DISABLE_SOFTWARE_RASTERIZER_NAME,
852 IDS_FLAGS_DISABLE_SOFTWARE_RASTERIZER_DESCRIPTION, 1023 IDS_FLAGS_DISABLE_SOFTWARE_RASTERIZER_DESCRIPTION,
853 #if defined(ENABLE_SWIFTSHADER) 1024 #if defined(ENABLE_SWIFTSHADER)
854 kOsAll, 1025 kOsAll,
855 #else 1026 #else
856 0, 1027 0,
857 #endif 1028 #endif
858 SINGLE_VALUE_TYPE(switches::kDisableSoftwareRasterizer) 1029 SINGLE_VALUE_TYPE(switches::kDisableSoftwareRasterizer,
1030 UMA_HISTOGRAM_ID_kDisableSoftwareRasterizer)
859 }, 1031 },
860 { 1032 {
861 "enable-gpu-rasterization", 1033 "enable-gpu-rasterization",
862 IDS_FLAGS_ENABLE_GPU_RASTERIZATION_NAME, 1034 IDS_FLAGS_ENABLE_GPU_RASTERIZATION_NAME,
863 IDS_FLAGS_ENABLE_GPU_RASTERIZATION_DESCRIPTION, 1035 IDS_FLAGS_ENABLE_GPU_RASTERIZATION_DESCRIPTION,
864 kOsAndroid, 1036 kOsAndroid,
865 MULTI_VALUE_TYPE(kEnableGpuRasterizationChoices) 1037 MULTI_VALUE_TYPE(kEnableGpuRasterizationChoices)
866 }, 1038 },
867 { 1039 {
868 "enable-experimental-web-platform-features", 1040 "enable-experimental-web-platform-features",
869 IDS_FLAGS_EXPERIMENTAL_WEB_PLATFORM_FEATURES_NAME, 1041 IDS_FLAGS_EXPERIMENTAL_WEB_PLATFORM_FEATURES_NAME,
870 IDS_FLAGS_EXPERIMENTAL_WEB_PLATFORM_FEATURES_DESCRIPTION, 1042 IDS_FLAGS_EXPERIMENTAL_WEB_PLATFORM_FEATURES_DESCRIPTION,
871 kOsAll, 1043 kOsAll,
872 SINGLE_VALUE_TYPE(switches::kEnableExperimentalWebPlatformFeatures) 1044 SINGLE_VALUE_TYPE(
1045 switches::kEnableExperimentalWebPlatformFeatures,
1046 UMA_HISTOGRAM_ID_kEnableExperimentalWebPlatformFeatures)
873 }, 1047 },
874 { 1048 {
875 "disable-ntp-other-sessions-menu", 1049 "disable-ntp-other-sessions-menu",
876 IDS_FLAGS_NTP_OTHER_SESSIONS_MENU_NAME, 1050 IDS_FLAGS_NTP_OTHER_SESSIONS_MENU_NAME,
877 IDS_FLAGS_NTP_OTHER_SESSIONS_MENU_DESCRIPTION, 1051 IDS_FLAGS_NTP_OTHER_SESSIONS_MENU_DESCRIPTION,
878 kOsDesktop, 1052 kOsDesktop,
879 SINGLE_VALUE_TYPE(switches::kDisableNTPOtherSessionsMenu) 1053 SINGLE_VALUE_TYPE(switches::kDisableNTPOtherSessionsMenu,
1054 UMA_HISTOGRAM_ID_kDisableNTPOtherSessionsMenu)
880 }, 1055 },
881 { 1056 {
882 "enable-devtools-experiments", 1057 "enable-devtools-experiments",
883 IDS_FLAGS_ENABLE_DEVTOOLS_EXPERIMENTS_NAME, 1058 IDS_FLAGS_ENABLE_DEVTOOLS_EXPERIMENTS_NAME,
884 IDS_FLAGS_ENABLE_DEVTOOLS_EXPERIMENTS_DESCRIPTION, 1059 IDS_FLAGS_ENABLE_DEVTOOLS_EXPERIMENTS_DESCRIPTION,
885 kOsDesktop, 1060 kOsDesktop,
886 SINGLE_VALUE_TYPE(switches::kEnableDevToolsExperiments) 1061 SINGLE_VALUE_TYPE(switches::kEnableDevToolsExperiments,
1062 UMA_HISTOGRAM_ID_kEnableDevToolsExperiments)
887 }, 1063 },
888 { 1064 {
889 "silent-debugger-extension-api", 1065 "silent-debugger-extension-api",
890 IDS_FLAGS_SILENT_DEBUGGER_EXTENSION_API_NAME, 1066 IDS_FLAGS_SILENT_DEBUGGER_EXTENSION_API_NAME,
891 IDS_FLAGS_SILENT_DEBUGGER_EXTENSION_API_DESCRIPTION, 1067 IDS_FLAGS_SILENT_DEBUGGER_EXTENSION_API_DESCRIPTION,
892 kOsDesktop, 1068 kOsDesktop,
893 SINGLE_VALUE_TYPE(switches::kSilentDebuggerExtensionAPI) 1069 SINGLE_VALUE_TYPE(switches::kSilentDebuggerExtensionAPI,
1070 UMA_HISTOGRAM_ID_kSilentDebuggerExtensionAPI)
894 }, 1071 },
895 { 1072 {
896 "spellcheck-autocorrect", 1073 "spellcheck-autocorrect",
897 IDS_FLAGS_SPELLCHECK_AUTOCORRECT, 1074 IDS_FLAGS_SPELLCHECK_AUTOCORRECT,
898 IDS_FLAGS_SPELLCHECK_AUTOCORRECT_DESCRIPTION, 1075 IDS_FLAGS_SPELLCHECK_AUTOCORRECT_DESCRIPTION,
899 kOsWin | kOsLinux | kOsCrOS, 1076 kOsWin | kOsLinux | kOsCrOS,
900 SINGLE_VALUE_TYPE(switches::kEnableSpellingAutoCorrect) 1077 SINGLE_VALUE_TYPE(switches::kEnableSpellingAutoCorrect,
1078 UMA_HISTOGRAM_ID_kEnableSpellingAutoCorrect)
901 }, 1079 },
902 { 1080 {
903 "enable-scroll-prediction", 1081 "enable-scroll-prediction",
904 IDS_FLAGS_ENABLE_SCROLL_PREDICTION_NAME, 1082 IDS_FLAGS_ENABLE_SCROLL_PREDICTION_NAME,
905 IDS_FLAGS_ENABLE_SCROLL_PREDICTION_DESCRIPTION, 1083 IDS_FLAGS_ENABLE_SCROLL_PREDICTION_DESCRIPTION,
906 kOsDesktop, 1084 kOsDesktop,
907 SINGLE_VALUE_TYPE(switches::kEnableScrollPrediction) 1085 SINGLE_VALUE_TYPE(switches::kEnableScrollPrediction,
1086 UMA_HISTOGRAM_ID_kEnableScrollPrediction)
908 }, 1087 },
909 { 1088 {
910 "touch-events", 1089 "touch-events",
911 IDS_TOUCH_EVENTS_NAME, 1090 IDS_TOUCH_EVENTS_NAME,
912 IDS_TOUCH_EVENTS_DESCRIPTION, 1091 IDS_TOUCH_EVENTS_DESCRIPTION,
913 kOsDesktop, 1092 kOsDesktop, MULTI_VALUE_TYPE(kTouchEventsChoices)
914 MULTI_VALUE_TYPE(kTouchEventsChoices)
915 }, 1093 },
916 { 1094 {
917 "disable-touch-adjustment", 1095 "disable-touch-adjustment",
918 IDS_DISABLE_TOUCH_ADJUSTMENT_NAME, 1096 IDS_DISABLE_TOUCH_ADJUSTMENT_NAME,
919 IDS_DISABLE_TOUCH_ADJUSTMENT_DESCRIPTION, 1097 IDS_DISABLE_TOUCH_ADJUSTMENT_DESCRIPTION,
920 kOsWin | kOsLinux | kOsCrOS, 1098 kOsWin | kOsLinux | kOsCrOS,
921 SINGLE_VALUE_TYPE(switches::kDisableTouchAdjustment) 1099 SINGLE_VALUE_TYPE(switches::kDisableTouchAdjustment,
1100 UMA_HISTOGRAM_ID_kDisableTouchAdjustment)
922 }, 1101 },
923 #if defined(OS_CHROMEOS) 1102 #if defined(OS_CHROMEOS)
924 { 1103 {
925 "network-portal-notification", 1104 "network-portal-notification",
926 IDS_FLAGS_NETWORK_PORTAL_NOTIFICATION_NAME, 1105 IDS_FLAGS_NETWORK_PORTAL_NOTIFICATION_NAME,
927 IDS_FLAGS_NETWORK_PORTAL_NOTIFICATION_DESCRIPTION, 1106 IDS_FLAGS_NETWORK_PORTAL_NOTIFICATION_DESCRIPTION,
928 kOsCrOS, 1107 kOsCrOS,
929 ENABLE_DISABLE_VALUE_TYPE( 1108 ENABLE_DISABLE_VALUE_TYPE(
930 chromeos::switches::kEnableNetworkPortalNotification, 1109 chromeos::switches::kEnableNetworkPortalNotification,
931 chromeos::switches::kDisableNetworkPortalNotification) 1110 UMA_HISTOGRAM_ID_kEnableNetworkPortalNotification,
1111 chromeos::switches::kDisableNetworkPortalNotification,
1112 UMA_HISTOGRAM_ID_kDisableNetworkPortalNotification)
932 }, 1113 },
933 #endif 1114 #endif
934 { 1115 {
935 "enable-download-resumption", 1116 "enable-download-resumption",
936 IDS_FLAGS_ENABLE_DOWNLOAD_RESUMPTION_NAME, 1117 IDS_FLAGS_ENABLE_DOWNLOAD_RESUMPTION_NAME,
937 IDS_FLAGS_ENABLE_DOWNLOAD_RESUMPTION_DESCRIPTION, 1118 IDS_FLAGS_ENABLE_DOWNLOAD_RESUMPTION_DESCRIPTION,
938 kOsDesktop, 1119 kOsDesktop,
939 SINGLE_VALUE_TYPE(switches::kEnableDownloadResumption) 1120 SINGLE_VALUE_TYPE(switches::kEnableDownloadResumption,
1121 UMA_HISTOGRAM_ID_kEnableDownloadResumption)
940 }, 1122 },
941 // Native client is compiled out when DISABLE_NACL is defined. 1123 // Native client is compiled out when DISABLE_NACL is defined.
942 #if !defined(DISABLE_NACL) 1124 #if !defined(DISABLE_NACL)
943 { 1125 {
944 "allow-nacl-socket-api", 1126 "allow-nacl-socket-api",
945 IDS_FLAGS_ALLOW_NACL_SOCKET_API_NAME, 1127 IDS_FLAGS_ALLOW_NACL_SOCKET_API_NAME,
946 IDS_FLAGS_ALLOW_NACL_SOCKET_API_DESCRIPTION, 1128 IDS_FLAGS_ALLOW_NACL_SOCKET_API_DESCRIPTION,
947 kOsDesktop, 1129 kOsDesktop,
948 SINGLE_VALUE_TYPE_AND_VALUE(switches::kAllowNaClSocketAPI, "*") 1130 SINGLE_VALUE_TYPE_AND_VALUE(switches::kAllowNaClSocketAPI,
1131 "*",
1132 UMA_HISTOGRAM_ID_kAllowNaClSocketAPI)
949 }, 1133 },
950 #endif 1134 #endif
951 { 1135 {
952 "force-device-scale-factor", 1136 "force-device-scale-factor",
953 IDS_FLAGS_FORCE_HIGH_DPI_NAME, 1137 IDS_FLAGS_FORCE_HIGH_DPI_NAME,
954 IDS_FLAGS_FORCE_HIGH_DPI_DESCRIPTION, 1138 IDS_FLAGS_FORCE_HIGH_DPI_DESCRIPTION,
955 kOsCrOS, 1139 kOsCrOS,
956 SINGLE_VALUE_TYPE_AND_VALUE(switches::kForceDeviceScaleFactor, "2") 1140 SINGLE_VALUE_TYPE_AND_VALUE(switches::kForceDeviceScaleFactor,
1141 "2",
1142 UMA_HISTOGRAM_ID_kForceDeviceScaleFactor)
957 }, 1143 },
958 #if defined(OS_CHROMEOS) 1144 #if defined(OS_CHROMEOS)
959 { 1145 {
960 "allow-touchpad-three-finger-click", 1146 "allow-touchpad-three-finger-click",
961 IDS_FLAGS_ALLOW_TOUCHPAD_THREE_FINGER_CLICK_NAME, 1147 IDS_FLAGS_ALLOW_TOUCHPAD_THREE_FINGER_CLICK_NAME,
962 IDS_FLAGS_ALLOW_TOUCHPAD_THREE_FINGER_CLICK_DESCRIPTION, 1148 IDS_FLAGS_ALLOW_TOUCHPAD_THREE_FINGER_CLICK_DESCRIPTION,
963 kOsCrOS, 1149 kOsCrOS,
964 SINGLE_VALUE_TYPE(chromeos::switches::kEnableTouchpadThreeFingerClick) 1150 SINGLE_VALUE_TYPE(chromeos::switches::kEnableTouchpadThreeFingerClick,
1151 UMA_HISTOGRAM_ID_kEnableTouchpadThreeFingerClick)
965 }, 1152 },
966 #endif 1153 #endif
967 #if defined(USE_ASH) 1154 #if defined(USE_ASH)
968 { 1155 {
969 "disable-minimize-on-second-launcher-item-click", 1156 "disable-minimize-on-second-launcher-item-click",
970 IDS_FLAGS_DISABLE_MINIMIZE_ON_SECOND_LAUNCHER_ITEM_CLICK_NAME, 1157 IDS_FLAGS_DISABLE_MINIMIZE_ON_SECOND_LAUNCHER_ITEM_CLICK_NAME,
971 IDS_FLAGS_DISABLE_MINIMIZE_ON_SECOND_LAUNCHER_ITEM_CLICK_DESCRIPTION, 1158 IDS_FLAGS_DISABLE_MINIMIZE_ON_SECOND_LAUNCHER_ITEM_CLICK_DESCRIPTION,
972 kOsAll, 1159 kOsAll,
973 SINGLE_VALUE_TYPE(switches::kDisableMinimizeOnSecondLauncherItemClick) 1160 SINGLE_VALUE_TYPE(switches::kDisableMinimizeOnSecondLauncherItemClick,
1161 UMA_HISTOGRAM_ID_kDisableMinimizeOnSecondLauncherItemClick)
974 }, 1162 },
975 { 1163 {
976 "show-touch-hud", 1164 "show-touch-hud",
977 IDS_FLAGS_SHOW_TOUCH_HUD_NAME, 1165 IDS_FLAGS_SHOW_TOUCH_HUD_NAME,
978 IDS_FLAGS_SHOW_TOUCH_HUD_DESCRIPTION, 1166 IDS_FLAGS_SHOW_TOUCH_HUD_DESCRIPTION,
979 kOsAll, 1167 kOsAll,
980 SINGLE_VALUE_TYPE(ash::switches::kAshTouchHud) 1168 SINGLE_VALUE_TYPE(ash::switches::kAshTouchHud,
1169 UMA_HISTOGRAM_ID_kAshTouchHud)
981 }, 1170 },
982 { 1171 {
983 "enable-pinch", 1172 "enable-pinch",
984 IDS_FLAGS_ENABLE_PINCH_SCALE_NAME, 1173 IDS_FLAGS_ENABLE_PINCH_SCALE_NAME,
985 IDS_FLAGS_ENABLE_PINCH_SCALE_DESCRIPTION, 1174 IDS_FLAGS_ENABLE_PINCH_SCALE_DESCRIPTION,
986 kOsLinux | kOsWin | kOsCrOS, 1175 kOsLinux | kOsWin | kOsCrOS,
987 ENABLE_DISABLE_VALUE_TYPE(switches::kEnablePinch, switches::kDisablePinch), 1176 ENABLE_DISABLE_VALUE_TYPE(switches::kEnablePinch,
1177 UMA_HISTOGRAM_ID_kEnablePinch,
1178 switches::kDisablePinch,
1179 UMA_HISTOGRAM_ID_kDisablePinch)
988 }, 1180 },
989 #endif // defined(USE_ASH) 1181 #endif // defined(USE_ASH)
990 { 1182 {
991 "enable-pinch-virtual-viewport", 1183 "enable-pinch-virtual-viewport",
992 IDS_FLAGS_ENABLE_PINCH_VIRTUAL_VIEWPORT_NAME, 1184 IDS_FLAGS_ENABLE_PINCH_VIRTUAL_VIEWPORT_NAME,
993 IDS_FLAGS_ENABLE_PINCH_VIRTUAL_VIEWPORT_DESCRIPTION, 1185 IDS_FLAGS_ENABLE_PINCH_VIRTUAL_VIEWPORT_DESCRIPTION,
994 kOsLinux | kOsWin | kOsCrOS | kOsAndroid, 1186 kOsLinux | kOsWin | kOsCrOS | kOsAndroid,
995 ENABLE_DISABLE_VALUE_TYPE( 1187 ENABLE_DISABLE_VALUE_TYPE(cc::switches::kEnablePinchVirtualViewport,
996 cc::switches::kEnablePinchVirtualViewport, 1188 UMA_HISTOGRAM_ID_kEnablePinchVirtualViewport,
997 cc::switches::kDisablePinchVirtualViewport), 1189 cc::switches::kDisablePinchVirtualViewport,
1190 UMA_HISTOGRAM_ID_kDisablePinchVirtualViewport)
998 }, 1191 },
999 { 1192 {
1000 "enable-viewport-meta", 1193 "enable-viewport-meta",
1001 IDS_FLAGS_ENABLE_VIEWPORT_META_NAME, 1194 IDS_FLAGS_ENABLE_VIEWPORT_META_NAME,
1002 IDS_FLAGS_ENABLE_VIEWPORT_META_DESCRIPTION, 1195 IDS_FLAGS_ENABLE_VIEWPORT_META_DESCRIPTION,
1003 kOsLinux | kOsWin | kOsCrOS | kOsMac, 1196 kOsLinux | kOsWin | kOsCrOS | kOsMac,
1004 SINGLE_VALUE_TYPE(switches::kEnableViewportMeta), 1197 SINGLE_VALUE_TYPE(switches::kEnableViewportMeta,
1198 UMA_HISTOGRAM_ID_kEnableViewportMeta)
1005 }, 1199 },
1006 #if defined(OS_CHROMEOS) 1200 #if defined(OS_CHROMEOS)
1007 { 1201 {
1008 "disable-boot-animation", 1202 "disable-boot-animation",
1009 IDS_FLAGS_DISABLE_BOOT_ANIMATION, 1203 IDS_FLAGS_DISABLE_BOOT_ANIMATION,
1010 IDS_FLAGS_DISABLE_BOOT_ANIMATION_DESCRIPTION, 1204 IDS_FLAGS_DISABLE_BOOT_ANIMATION_DESCRIPTION,
1011 kOsCrOSOwnerOnly, 1205 kOsCrOSOwnerOnly,
1012 SINGLE_VALUE_TYPE(chromeos::switches::kDisableBootAnimation), 1206 SINGLE_VALUE_TYPE(chromeos::switches::kDisableBootAnimation,
1207 UMA_HISTOGRAM_ID_kDisableBootAnimation)
1013 }, 1208 },
1014 { 1209 {
1015 "enable-new-audio-player", 1210 "enable-new-audio-player",
1016 IDS_FLAGS_FILE_MANAGER_ENABLE_NEW_AUDIO_PLAYER_NAME, 1211 IDS_FLAGS_FILE_MANAGER_ENABLE_NEW_AUDIO_PLAYER_NAME,
1017 IDS_FLAGS_FILE_MANAGER_ENABLE_NEW_AUDIO_PLAYER_DESCRIPTION, 1212 IDS_FLAGS_FILE_MANAGER_ENABLE_NEW_AUDIO_PLAYER_DESCRIPTION,
1018 kOsCrOS, 1213 kOsCrOS,
1019 SINGLE_VALUE_TYPE(chromeos::switches::kFileManagerEnableNewAudioPlayer) 1214 SINGLE_VALUE_TYPE(chromeos::switches::kFileManagerEnableNewAudioPlayer,
1215 UMA_HISTOGRAM_ID_kFileManagerEnableNewAudioPlayer)
1020 }, 1216 },
1021 { 1217 {
1022 "enable-new-gallery", 1218 "enable-new-gallery",
1023 IDS_FLAGS_FILE_MANAGER_ENABLE_NEW_GALLERY_NAME, 1219 IDS_FLAGS_FILE_MANAGER_ENABLE_NEW_GALLERY_NAME,
1024 IDS_FLAGS_FILE_MANAGER_ENABLE_NEW_GALLERY_DESCRIPTION, 1220 IDS_FLAGS_FILE_MANAGER_ENABLE_NEW_GALLERY_DESCRIPTION,
1025 kOsCrOS, 1221 kOsCrOS,
1026 MULTI_VALUE_TYPE(kEnableFileManagerNewGalleryChoices) 1222 MULTI_VALUE_TYPE(kEnableFileManagerNewGalleryChoices)
1027 }, 1223 },
1028 { 1224 {
1029 "disable-quickoffice-component-app", 1225 "disable-quickoffice-component-app",
1030 IDS_FLAGS_DISABLE_QUICKOFFICE_COMPONENT_APP_NAME, 1226 IDS_FLAGS_DISABLE_QUICKOFFICE_COMPONENT_APP_NAME,
1031 IDS_FLAGS_DISABLE_QUICKOFFICE_COMPONENT_APP_DESCRIPTION, 1227 IDS_FLAGS_DISABLE_QUICKOFFICE_COMPONENT_APP_DESCRIPTION,
1032 kOsCrOS, 1228 kOsCrOS,
1033 SINGLE_VALUE_TYPE(chromeos::switches::kDisableQuickofficeComponentApp), 1229 SINGLE_VALUE_TYPE(chromeos::switches::kDisableQuickofficeComponentApp,
1230 UMA_HISTOGRAM_ID_kDisableQuickofficeComponentApp)
1034 }, 1231 },
1035 { 1232 {
1036 "disable-saml-signin", 1233 "disable-saml-signin",
1037 IDS_FLAGS_DISABLE_SAML_SIGNIN_NAME, 1234 IDS_FLAGS_DISABLE_SAML_SIGNIN_NAME,
1038 IDS_FLAGS_DISABLE_SAML_SIGNIN_DESCRIPTION, 1235 IDS_FLAGS_DISABLE_SAML_SIGNIN_DESCRIPTION,
1039 kOsCrOS, 1236 kOsCrOS,
1040 SINGLE_VALUE_TYPE(chromeos::switches::kDisableSamlSignin), 1237 SINGLE_VALUE_TYPE(chromeos::switches::kDisableSamlSignin,
1238 UMA_HISTOGRAM_ID_kDisableSamlSignin)
1041 }, 1239 },
1042 { 1240 {
1043 "disable-display-color-calibration", 1241 "disable-display-color-calibration",
1044 IDS_FLAGS_DISABLE_DISPLAY_COLOR_CALIBRATION_NAME, 1242 IDS_FLAGS_DISABLE_DISPLAY_COLOR_CALIBRATION_NAME,
1045 IDS_FLAGS_DISABLE_DISPLAY_COLOR_CALIBRATION_DESCRIPTION, 1243 IDS_FLAGS_DISABLE_DISPLAY_COLOR_CALIBRATION_DESCRIPTION,
1046 kOsCrOS, 1244 kOsCrOS,
1047 SINGLE_VALUE_TYPE(ui::switches::kDisableDisplayColorCalibration), 1245 SINGLE_VALUE_TYPE(ui::switches::kDisableDisplayColorCalibration,
1246 UMA_HISTOGRAM_ID_kDisableDisplayColorCalibration)
1048 }, 1247 },
1049 #endif // defined(OS_CHROMEOS) 1248 #endif // defined(OS_CHROMEOS)
1050 { "disable-accelerated-video-decode", 1249 {
1250 "disable-accelerated-video-decode",
1051 IDS_FLAGS_DISABLE_ACCELERATED_VIDEO_DECODE_NAME, 1251 IDS_FLAGS_DISABLE_ACCELERATED_VIDEO_DECODE_NAME,
1052 IDS_FLAGS_DISABLE_ACCELERATED_VIDEO_DECODE_DESCRIPTION, 1252 IDS_FLAGS_DISABLE_ACCELERATED_VIDEO_DECODE_DESCRIPTION,
1053 kOsWin | kOsCrOS, 1253 kOsWin | kOsCrOS,
1054 SINGLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode), 1254 SINGLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode,
1255 UMA_HISTOGRAM_ID_kDisableAcceleratedVideoDecode)
1055 }, 1256 },
1056 #if defined(USE_ASH) 1257 #if defined(USE_ASH)
1057 { 1258 {
1058 "ash-debug-shortcuts", 1259 "ash-debug-shortcuts",
1059 IDS_FLAGS_DEBUG_SHORTCUTS_NAME, 1260 IDS_FLAGS_DEBUG_SHORTCUTS_NAME,
1060 IDS_FLAGS_DEBUG_SHORTCUTS_DESCRIPTION, 1261 IDS_FLAGS_DEBUG_SHORTCUTS_DESCRIPTION,
1061 kOsAll, 1262 kOsAll,
1062 SINGLE_VALUE_TYPE(ash::switches::kAshDebugShortcuts), 1263 SINGLE_VALUE_TYPE(ash::switches::kAshDebugShortcuts,
1264 UMA_HISTOGRAM_ID_kAshDebugShortcuts)
1063 }, 1265 },
1064 { "ash-enable-touch-view-testing", 1266 {
1267 "ash-enable-touch-view-testing",
1065 IDS_FLAGS_ASH_ENABLE_TOUCH_VIEW_TESTING_NAME, 1268 IDS_FLAGS_ASH_ENABLE_TOUCH_VIEW_TESTING_NAME,
1066 IDS_FLAGS_ASH_ENABLE_TOUCH_VIEW_TESTING_DESCRIPTION, 1269 IDS_FLAGS_ASH_ENABLE_TOUCH_VIEW_TESTING_DESCRIPTION,
1067 kOsCrOS, 1270 kOsCrOS,
1068 SINGLE_VALUE_TYPE(ash::switches::kAshEnableTouchViewTesting), 1271 SINGLE_VALUE_TYPE(ash::switches::kAshEnableTouchViewTesting,
1272 UMA_HISTOGRAM_ID_kAshEnableTouchViewTesting)
1069 }, 1273 },
1070 #endif 1274 #endif
1071 #if defined(OS_CHROMEOS) 1275 #if defined(OS_CHROMEOS)
1072 { 1276 {
1073 "enable-carrier-switching", 1277 "enable-carrier-switching",
1074 IDS_FLAGS_ENABLE_CARRIER_SWITCHING, 1278 IDS_FLAGS_ENABLE_CARRIER_SWITCHING,
1075 IDS_FLAGS_ENABLE_CARRIER_SWITCHING_DESCRIPTION, 1279 IDS_FLAGS_ENABLE_CARRIER_SWITCHING_DESCRIPTION,
1076 kOsCrOS, 1280 kOsCrOS,
1077 SINGLE_VALUE_TYPE(chromeos::switches::kEnableCarrierSwitching) 1281 SINGLE_VALUE_TYPE(chromeos::switches::kEnableCarrierSwitching,
1282 UMA_HISTOGRAM_ID_kEnableCarrierSwitching)
1078 }, 1283 },
1079 { 1284 {
1080 "enable-request-tablet-site", 1285 "enable-request-tablet-site",
1081 IDS_FLAGS_ENABLE_REQUEST_TABLET_SITE_NAME, 1286 IDS_FLAGS_ENABLE_REQUEST_TABLET_SITE_NAME,
1082 IDS_FLAGS_ENABLE_REQUEST_TABLET_SITE_DESCRIPTION, 1287 IDS_FLAGS_ENABLE_REQUEST_TABLET_SITE_DESCRIPTION,
1083 kOsCrOS, 1288 kOsCrOS,
1084 SINGLE_VALUE_TYPE(chromeos::switches::kEnableRequestTabletSite) 1289 SINGLE_VALUE_TYPE(chromeos::switches::kEnableRequestTabletSite,
1290 UMA_HISTOGRAM_ID_kEnableRequestTabletSite)
1085 }, 1291 },
1086 #endif 1292 #endif
1087 { 1293 {
1088 "debug-packed-apps", 1294 "debug-packed-apps",
1089 IDS_FLAGS_DEBUG_PACKED_APP_NAME, 1295 IDS_FLAGS_DEBUG_PACKED_APP_NAME,
1090 IDS_FLAGS_DEBUG_PACKED_APP_DESCRIPTION, 1296 IDS_FLAGS_DEBUG_PACKED_APP_DESCRIPTION,
1091 kOsDesktop, 1297 kOsDesktop,
1092 SINGLE_VALUE_TYPE(switches::kDebugPackedApps) 1298 SINGLE_VALUE_TYPE(switches::kDebugPackedApps,
1299 UMA_HISTOGRAM_ID_kDebugPackedApps)
1093 }, 1300 },
1094 { 1301 {
1095 "enable-password-generation", 1302 "enable-password-generation",
1096 IDS_FLAGS_ENABLE_PASSWORD_GENERATION_NAME, 1303 IDS_FLAGS_ENABLE_PASSWORD_GENERATION_NAME,
1097 IDS_FLAGS_ENABLE_PASSWORD_GENERATION_DESCRIPTION, 1304 IDS_FLAGS_ENABLE_PASSWORD_GENERATION_DESCRIPTION,
1098 kOsDesktop, 1305 kOsDesktop,
1099 ENABLE_DISABLE_VALUE_TYPE(autofill::switches::kEnablePasswordGeneration, 1306 ENABLE_DISABLE_VALUE_TYPE(autofill::switches::kEnablePasswordGeneration,
1100 autofill::switches::kDisablePasswordGeneration) 1307 UMA_HISTOGRAM_ID_kEnablePasswordGeneration,
1308 autofill::switches::kDisablePasswordGeneration,
1309 UMA_HISTOGRAM_ID_kDisablePasswordGeneration)
1101 }, 1310 },
1102 { 1311 {
1103 "enable-automatic-password-saving", 1312 "enable-automatic-password-saving",
1104 IDS_FLAGS_ENABLE_AUTOMATIC_PASSWORD_SAVING_NAME, 1313 IDS_FLAGS_ENABLE_AUTOMATIC_PASSWORD_SAVING_NAME,
1105 IDS_FLAGS_ENABLE_AUTOMATIC_PASSWORD_SAVING_DESCRIPTION, 1314 IDS_FLAGS_ENABLE_AUTOMATIC_PASSWORD_SAVING_DESCRIPTION,
1106 kOsDesktop, 1315 kOsDesktop,
1107 SINGLE_VALUE_TYPE( 1316 SINGLE_VALUE_TYPE(
1108 password_manager::switches::kEnableAutomaticPasswordSaving) 1317 password_manager::switches::kEnableAutomaticPasswordSaving,
1318 UMA_HISTOGRAM_ID_kEnableAutomaticPasswordSaving)
1109 }, 1319 },
1110 { 1320 {
1111 "password-manager-reauthentication", 1321 "password-manager-reauthentication",
1112 IDS_FLAGS_PASSWORD_MANAGER_REAUTHENTICATION_NAME, 1322 IDS_FLAGS_PASSWORD_MANAGER_REAUTHENTICATION_NAME,
1113 IDS_FLAGS_PASSWORD_MANAGER_REAUTHENTICATION_DESCRIPTION, 1323 IDS_FLAGS_PASSWORD_MANAGER_REAUTHENTICATION_DESCRIPTION,
1114 kOsMac | kOsWin, 1324 kOsMac | kOsWin,
1115 SINGLE_VALUE_TYPE(switches::kDisablePasswordManagerReauthentication) 1325 SINGLE_VALUE_TYPE(
1326 switches::kDisablePasswordManagerReauthentication,
1327 UMA_HISTOGRAM_ID_kDisablePasswordManagerReauthentication)
1116 }, 1328 },
1117 { 1329 {
1118 "enable-deferred-image-decoding", 1330 "enable-deferred-image-decoding",
1119 IDS_FLAGS_ENABLE_DEFERRED_IMAGE_DECODING_NAME, 1331 IDS_FLAGS_ENABLE_DEFERRED_IMAGE_DECODING_NAME,
1120 IDS_FLAGS_ENABLE_DEFERRED_IMAGE_DECODING_DESCRIPTION, 1332 IDS_FLAGS_ENABLE_DEFERRED_IMAGE_DECODING_DESCRIPTION,
1121 kOsMac | kOsLinux | kOsCrOS, 1333 kOsMac | kOsLinux | kOsCrOS,
1122 SINGLE_VALUE_TYPE(switches::kEnableDeferredImageDecoding) 1334 SINGLE_VALUE_TYPE(switches::kEnableDeferredImageDecoding,
1335 UMA_HISTOGRAM_ID_kEnableDeferredImageDecoding)
1123 }, 1336 },
1124 { 1337 {
1125 "performance-monitor-gathering", 1338 "performance-monitor-gathering",
1126 IDS_FLAGS_PERFORMANCE_MONITOR_GATHERING_NAME, 1339 IDS_FLAGS_PERFORMANCE_MONITOR_GATHERING_NAME,
1127 IDS_FLAGS_PERFORMANCE_MONITOR_GATHERING_DESCRIPTION, 1340 IDS_FLAGS_PERFORMANCE_MONITOR_GATHERING_DESCRIPTION,
1128 kOsAll, 1341 kOsAll,
1129 SINGLE_VALUE_TYPE(switches::kPerformanceMonitorGathering) 1342 SINGLE_VALUE_TYPE(switches::kPerformanceMonitorGathering,
1343 UMA_HISTOGRAM_ID_kPerformanceMonitorGathering)
1130 }, 1344 },
1131 { 1345 {
1132 "wallet-service-use-sandbox", 1346 "wallet-service-use-sandbox",
1133 IDS_FLAGS_WALLET_SERVICE_USE_SANDBOX_NAME, 1347 IDS_FLAGS_WALLET_SERVICE_USE_SANDBOX_NAME,
1134 IDS_FLAGS_WALLET_SERVICE_USE_SANDBOX_DESCRIPTION, 1348 IDS_FLAGS_WALLET_SERVICE_USE_SANDBOX_DESCRIPTION,
1135 kOsAndroid | kOsDesktop, 1349 kOsAndroid | kOsDesktop,
1136 ENABLE_DISABLE_VALUE_TYPE_AND_VALUE( 1350 ENABLE_DISABLE_VALUE_TYPE_AND_VALUE(
1137 autofill::switches::kWalletServiceUseSandbox, "1", 1351 autofill::switches::kWalletServiceUseSandbox, "1",
1138 autofill::switches::kWalletServiceUseSandbox, "0") 1352 UMA_HISTOGRAM_ID_kWalletServiceUseSandbox,
1353 autofill::switches::kWalletServiceUseSandbox, "0",
1354 UMA_HISTOGRAM_ID_kWalletServiceUseSandbox)
1139 }, 1355 },
1140 #if defined(USE_AURA) 1356 #if defined(USE_AURA)
1141 { 1357 {
1142 "overscroll-history-navigation", 1358 "overscroll-history-navigation",
1143 IDS_FLAGS_OVERSCROLL_HISTORY_NAVIGATION_NAME, 1359 IDS_FLAGS_OVERSCROLL_HISTORY_NAVIGATION_NAME,
1144 IDS_FLAGS_OVERSCROLL_HISTORY_NAVIGATION_DESCRIPTION, 1360 IDS_FLAGS_OVERSCROLL_HISTORY_NAVIGATION_DESCRIPTION,
1145 kOsAll, 1361 kOsAll,
1146 MULTI_VALUE_TYPE(kOverscrollHistoryNavigationChoices) 1362 MULTI_VALUE_TYPE(kOverscrollHistoryNavigationChoices)
1147 }, 1363 },
1148 #endif 1364 #endif
1149 { 1365 {
1150 "scroll-end-effect", 1366 "scroll-end-effect",
1151 IDS_FLAGS_SCROLL_END_EFFECT_NAME, 1367 IDS_FLAGS_SCROLL_END_EFFECT_NAME,
1152 IDS_FLAGS_SCROLL_END_EFFECT_DESCRIPTION, 1368 IDS_FLAGS_SCROLL_END_EFFECT_DESCRIPTION,
1153 kOsCrOS, 1369 kOsCrOS,
1154 ENABLE_DISABLE_VALUE_TYPE_AND_VALUE( 1370 ENABLE_DISABLE_VALUE_TYPE_AND_VALUE(
1155 switches::kScrollEndEffect, "1", 1371 switches::kScrollEndEffect, "1",
1156 switches::kScrollEndEffect, "0") 1372 UMA_HISTOGRAM_ID_kScrollEndEffect,
1373 switches::kScrollEndEffect, "0",
1374 UMA_HISTOGRAM_ID_kScrollEndEffect)
1157 }, 1375 },
1158 { 1376 {
1159 "enable-touch-drag-drop", 1377 "enable-touch-drag-drop",
1160 IDS_FLAGS_ENABLE_TOUCH_DRAG_DROP_NAME, 1378 IDS_FLAGS_ENABLE_TOUCH_DRAG_DROP_NAME,
1161 IDS_FLAGS_ENABLE_TOUCH_DRAG_DROP_DESCRIPTION, 1379 IDS_FLAGS_ENABLE_TOUCH_DRAG_DROP_DESCRIPTION,
1162 kOsWin | kOsCrOS, 1380 kOsWin | kOsCrOS,
1163 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableTouchDragDrop, 1381 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableTouchDragDrop,
1164 switches::kDisableTouchDragDrop) 1382 UMA_HISTOGRAM_ID_kEnableTouchDragDrop,
1383 switches::kDisableTouchDragDrop,
1384 UMA_HISTOGRAM_ID_kDisableTouchDragDrop)
1165 }, 1385 },
1166 { 1386 {
1167 "enable-touch-editing", 1387 "enable-touch-editing",
1168 IDS_FLAGS_ENABLE_TOUCH_EDITING_NAME, 1388 IDS_FLAGS_ENABLE_TOUCH_EDITING_NAME,
1169 IDS_FLAGS_ENABLE_TOUCH_EDITING_DESCRIPTION, 1389 IDS_FLAGS_ENABLE_TOUCH_EDITING_DESCRIPTION,
1170 kOsCrOS | kOsWin | kOsLinux, 1390 kOsCrOS | kOsWin | kOsLinux,
1171 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableTouchEditing, 1391 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableTouchEditing,
1172 switches::kDisableTouchEditing) 1392 UMA_HISTOGRAM_ID_kEnableTouchEditing,
1393 switches::kDisableTouchEditing,
1394 UMA_HISTOGRAM_ID_kDisableTouchEditing)
1173 }, 1395 },
1174 { 1396 {
1175 "enable-suggestions-service", 1397 "enable-suggestions-service",
1176 IDS_FLAGS_ENABLE_SUGGESTIONS_SERVICE_NAME, 1398 IDS_FLAGS_ENABLE_SUGGESTIONS_SERVICE_NAME,
1177 IDS_FLAGS_ENABLE_SUGGESTIONS_SERVICE_DESCRIPTION, 1399 IDS_FLAGS_ENABLE_SUGGESTIONS_SERVICE_DESCRIPTION,
1178 kOsAndroid | kOsCrOS, 1400 kOsAndroid | kOsCrOS,
1179 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableSuggestionsService, 1401 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableSuggestionsService,
1180 switches::kDisableSuggestionsService) 1402 UMA_HISTOGRAM_ID_kEnableSuggestionsService,
1403 switches::kDisableSuggestionsService,
1404 UMA_HISTOGRAM_ID_kDisableSuggestionsService)
1181 }, 1405 },
1182 { 1406 {
1183 "enable-sync-synced-notifications", 1407 "enable-sync-synced-notifications",
1184 IDS_FLAGS_ENABLE_SYNCED_NOTIFICATIONS_NAME, 1408 IDS_FLAGS_ENABLE_SYNCED_NOTIFICATIONS_NAME,
1185 IDS_FLAGS_ENABLE_SYNCED_NOTIFICATIONS_DESCRIPTION, 1409 IDS_FLAGS_ENABLE_SYNCED_NOTIFICATIONS_DESCRIPTION,
1186 kOsDesktop, 1410 kOsDesktop,
1187 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableSyncSyncedNotifications, 1411 ENABLE_DISABLE_VALUE_TYPE(
1188 switches::kDisableSyncSyncedNotifications) 1412 switches::kEnableSyncSyncedNotifications,
1413 UMA_HISTOGRAM_ID_kEnableSyncSyncedNotifications,
1414 switches::kDisableSyncSyncedNotifications,
1415 UMA_HISTOGRAM_ID_kDisableSyncSyncedNotifications)
1189 }, 1416 },
1190 #if defined(ENABLE_APP_LIST) 1417 #if defined(ENABLE_APP_LIST)
1191 { 1418 {
1192 "enable-sync-app-list", 1419 "enable-sync-app-list",
1193 IDS_FLAGS_ENABLE_SYNC_APP_LIST_NAME, 1420 IDS_FLAGS_ENABLE_SYNC_APP_LIST_NAME,
1194 IDS_FLAGS_ENABLE_SYNC_APP_LIST_DESCRIPTION, 1421 IDS_FLAGS_ENABLE_SYNC_APP_LIST_DESCRIPTION,
1195 kOsDesktop, 1422 kOsDesktop,
1196 MULTI_VALUE_TYPE(kEnableSyncAppListChoices) 1423 MULTI_VALUE_TYPE(kEnableSyncAppListChoices)
1197 }, 1424 },
1198 #endif 1425 #endif
1199 #if defined(OS_MACOSX) 1426 #if defined(OS_MACOSX)
1200 { 1427 {
1201 "enable-avfoundation", 1428 "enable-avfoundation",
1202 IDS_FLAGS_ENABLE_AVFOUNDATION_NAME, 1429 IDS_FLAGS_ENABLE_AVFOUNDATION_NAME,
1203 IDS_FLAGS_ENABLE_AVFOUNDATION_DESCRIPTION, 1430 IDS_FLAGS_ENABLE_AVFOUNDATION_DESCRIPTION,
1204 kOsMac, 1431 kOsMac,
1205 SINGLE_VALUE_TYPE(switches::kEnableAVFoundation) 1432 SINGLE_VALUE_TYPE(switches::kEnableAVFoundation,
1433 UMA_HISTOGRAM_ID_kEnableAVFoundation)
1206 }, 1434 },
1207 #endif 1435 #endif
1208 { 1436 {
1209 "impl-side-painting", 1437 "impl-side-painting",
1210 IDS_FLAGS_IMPL_SIDE_PAINTING_NAME, 1438 IDS_FLAGS_IMPL_SIDE_PAINTING_NAME,
1211 IDS_FLAGS_IMPL_SIDE_PAINTING_DESCRIPTION, 1439 IDS_FLAGS_IMPL_SIDE_PAINTING_DESCRIPTION,
1212 kOsAll, 1440 kOsAll,
1213 MULTI_VALUE_TYPE(kImplSidePaintingChoices) 1441 MULTI_VALUE_TYPE(kImplSidePaintingChoices)
1214 }, 1442 },
1215 { 1443 {
(...skipping 18 matching lines...) Expand all
1234 IDS_FLAGS_MAX_TILES_FOR_INTEREST_AREA_DESCRIPTION, 1462 IDS_FLAGS_MAX_TILES_FOR_INTEREST_AREA_DESCRIPTION,
1235 kOsAll, 1463 kOsAll,
1236 MULTI_VALUE_TYPE(kMaxTilesForInterestAreaChoices) 1464 MULTI_VALUE_TYPE(kMaxTilesForInterestAreaChoices)
1237 }, 1465 },
1238 { 1466 {
1239 "enable-offline-auto-reload", 1467 "enable-offline-auto-reload",
1240 IDS_FLAGS_ENABLE_OFFLINE_AUTO_RELOAD_NAME, 1468 IDS_FLAGS_ENABLE_OFFLINE_AUTO_RELOAD_NAME,
1241 IDS_FLAGS_ENABLE_OFFLINE_AUTO_RELOAD_DESCRIPTION, 1469 IDS_FLAGS_ENABLE_OFFLINE_AUTO_RELOAD_DESCRIPTION,
1242 kOsAll, 1470 kOsAll,
1243 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableOfflineAutoReload, 1471 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableOfflineAutoReload,
1244 switches::kDisableOfflineAutoReload) 1472 UMA_HISTOGRAM_ID_kEnableOfflineAutoReload,
1473 switches::kDisableOfflineAutoReload,
1474 UMA_HISTOGRAM_ID_kDisableOfflineAutoReload)
1245 }, 1475 },
1246 { 1476 {
1247 "enable-offline-auto-reload-visible-only", 1477 "enable-offline-auto-reload-visible-only",
1248 IDS_FLAGS_ENABLE_OFFLINE_AUTO_RELOAD_VISIBLE_ONLY_NAME, 1478 IDS_FLAGS_ENABLE_OFFLINE_AUTO_RELOAD_VISIBLE_ONLY_NAME,
1249 IDS_FLAGS_ENABLE_OFFLINE_AUTO_RELOAD_VISIBLE_ONLY_DESCRIPTION, 1479 IDS_FLAGS_ENABLE_OFFLINE_AUTO_RELOAD_VISIBLE_ONLY_DESCRIPTION,
1250 kOsAll, 1480 kOsAll,
1251 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableOfflineAutoReloadVisibleOnly, 1481 ENABLE_DISABLE_VALUE_TYPE(
1252 switches::kDisableOfflineAutoReloadVisibleOnly) 1482 switches::kEnableOfflineAutoReloadVisibleOnly,
1483 UMA_HISTOGRAM_ID_kEnableOfflineAutoReloadVisibleOnly,
1484 switches::kDisableOfflineAutoReloadVisibleOnly,
1485 UMA_HISTOGRAM_ID_kDisableOfflineAutoReloadVisibleOnly)
1253 }, 1486 },
1254 { 1487 {
1255 "enable-offline-load-stale-cache", 1488 "enable-offline-load-stale-cache",
1256 IDS_FLAGS_ENABLE_OFFLINE_LOAD_STALE_NAME, 1489 IDS_FLAGS_ENABLE_OFFLINE_LOAD_STALE_NAME,
1257 IDS_FLAGS_ENABLE_OFFLINE_LOAD_STALE_DESCRIPTION, 1490 IDS_FLAGS_ENABLE_OFFLINE_LOAD_STALE_DESCRIPTION,
1258 kOsLinux | kOsMac | kOsWin | kOsAndroid, 1491 kOsLinux | kOsMac | kOsWin | kOsAndroid,
1259 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableOfflineLoadStaleCache, 1492 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableOfflineLoadStaleCache,
1260 switches::kDisableOfflineLoadStaleCache) 1493 UMA_HISTOGRAM_ID_kEnableOfflineLoadStaleCache,
1494 switches::kDisableOfflineLoadStaleCache,
1495 UMA_HISTOGRAM_ID_kDisableOfflineLoadStaleCache)
1261 }, 1496 },
1262 { 1497 {
1263 "default-tile-width", 1498 "default-tile-width",
1264 IDS_FLAGS_DEFAULT_TILE_WIDTH_NAME, 1499 IDS_FLAGS_DEFAULT_TILE_WIDTH_NAME,
1265 IDS_FLAGS_DEFAULT_TILE_WIDTH_DESCRIPTION, 1500 IDS_FLAGS_DEFAULT_TILE_WIDTH_DESCRIPTION,
1266 kOsAll, 1501 kOsAll,
1267 MULTI_VALUE_TYPE(kDefaultTileWidthChoices) 1502 MULTI_VALUE_TYPE(kDefaultTileWidthChoices)
1268 }, 1503 },
1269 { 1504 {
1270 "default-tile-height", 1505 "default-tile-height",
1271 IDS_FLAGS_DEFAULT_TILE_HEIGHT_NAME, 1506 IDS_FLAGS_DEFAULT_TILE_HEIGHT_NAME,
1272 IDS_FLAGS_DEFAULT_TILE_HEIGHT_DESCRIPTION, 1507 IDS_FLAGS_DEFAULT_TILE_HEIGHT_DESCRIPTION,
1273 kOsAll, 1508 kOsAll,
1274 MULTI_VALUE_TYPE(kDefaultTileHeightChoices) 1509 MULTI_VALUE_TYPE(kDefaultTileHeightChoices)
1275 }, 1510 },
1276 #if defined(OS_ANDROID) 1511 #if defined(OS_ANDROID)
1277 { 1512 {
1278 "disable-gesture-requirement-for-media-playback", 1513 "disable-gesture-requirement-for-media-playback",
1279 IDS_FLAGS_DISABLE_GESTURE_REQUIREMENT_FOR_MEDIA_PLAYBACK_NAME, 1514 IDS_FLAGS_DISABLE_GESTURE_REQUIREMENT_FOR_MEDIA_PLAYBACK_NAME,
1280 IDS_FLAGS_DISABLE_GESTURE_REQUIREMENT_FOR_MEDIA_PLAYBACK_DESCRIPTION, 1515 IDS_FLAGS_DISABLE_GESTURE_REQUIREMENT_FOR_MEDIA_PLAYBACK_DESCRIPTION,
1281 kOsAndroid, 1516 kOsAndroid,
1282 SINGLE_VALUE_TYPE(switches::kDisableGestureRequirementForMediaPlayback) 1517 SINGLE_VALUE_TYPE(
1518 switches::kDisableGestureRequirementForMediaPlayback,
1519 UMA_HISTOGRAM_ID_kDisableGestureRequirementForMediaPlayback)
1283 }, 1520 },
1284 #endif 1521 #endif
1285 #if defined(OS_CHROMEOS) 1522 #if defined(OS_CHROMEOS)
1286 { 1523 {
1287 "enable-virtual-keyboard", 1524 "enable-virtual-keyboard",
1288 IDS_FLAGS_ENABLE_VIRTUAL_KEYBOARD_NAME, 1525 IDS_FLAGS_ENABLE_VIRTUAL_KEYBOARD_NAME,
1289 IDS_FLAGS_ENABLE_VIRTUAL_KEYBOARD_DESCRIPTION, 1526 IDS_FLAGS_ENABLE_VIRTUAL_KEYBOARD_DESCRIPTION,
1290 kOsCrOS, 1527 kOsCrOS,
1291 SINGLE_VALUE_TYPE(keyboard::switches::kEnableVirtualKeyboard) 1528 SINGLE_VALUE_TYPE(keyboard::switches::kEnableVirtualKeyboard,
1529 UMA_HISTOGRAM_ID_kEnableVirtualKeyboard)
1292 }, 1530 },
1293 { 1531 {
1294 "enable-virtual-keyboard-overscroll", 1532 "enable-virtual-keyboard-overscroll",
1295 IDS_FLAGS_ENABLE_VIRTUAL_KEYBOARD_OVERSCROLL_NAME, 1533 IDS_FLAGS_ENABLE_VIRTUAL_KEYBOARD_OVERSCROLL_NAME,
1296 IDS_FLAGS_ENABLE_VIRTUAL_KEYBOARD_OVERSCROLL_DESCRIPTION, 1534 IDS_FLAGS_ENABLE_VIRTUAL_KEYBOARD_OVERSCROLL_DESCRIPTION,
1297 kOsCrOS, 1535 kOsCrOS,
1298 ENABLE_DISABLE_VALUE_TYPE( 1536 ENABLE_DISABLE_VALUE_TYPE(
1299 keyboard::switches::kEnableVirtualKeyboardOverscroll, 1537 keyboard::switches::kEnableVirtualKeyboardOverscroll,
1300 keyboard::switches::kDisableVirtualKeyboardOverscroll) 1538 UMA_HISTOGRAM_ID_kEnableVirtualKeyboardOverscroll,
1539 keyboard::switches::kDisableVirtualKeyboardOverscroll,
1540 UMA_HISTOGRAM_ID_kDisableVirtualKeyboardOverscroll)
1301 }, 1541 },
1302 { 1542 {
1303 "enable-swipe-selection", 1543 "enable-swipe-selection",
1304 IDS_FLAGS_ENABLE_SWIPE_SELECTION_NAME, 1544 IDS_FLAGS_ENABLE_SWIPE_SELECTION_NAME,
1305 IDS_FLAGS_ENABLE_SWIPE_SELECTION_DESCRIPTION, 1545 IDS_FLAGS_ENABLE_SWIPE_SELECTION_DESCRIPTION,
1306 kOsCrOS, 1546 kOsCrOS,
1307 SINGLE_VALUE_TYPE(keyboard::switches::kEnableSwipeSelection) 1547 SINGLE_VALUE_TYPE(keyboard::switches::kEnableSwipeSelection,
1548 UMA_HISTOGRAM_ID_kEnableSwipeSelection)
1308 }, 1549 },
1309 { 1550 {
1310 "enable-input-view", 1551 "enable-input-view",
1311 IDS_FLAGS_ENABLE_INPUT_VIEW_NAME, 1552 IDS_FLAGS_ENABLE_INPUT_VIEW_NAME,
1312 IDS_FLAGS_ENABLE_INPUT_VIEW_DESCRIPTION, 1553 IDS_FLAGS_ENABLE_INPUT_VIEW_DESCRIPTION,
1313 kOsCrOS, 1554 kOsCrOS,
1314 ENABLE_DISABLE_VALUE_TYPE(keyboard::switches::kEnableInputView, 1555 ENABLE_DISABLE_VALUE_TYPE(keyboard::switches::kEnableInputView,
1315 keyboard::switches::kDisableInputView) 1556 UMA_HISTOGRAM_ID_kEnableInputView,
1557 keyboard::switches::kDisableInputView,
1558 UMA_HISTOGRAM_ID_kDisableInputView)
1316 }, 1559 },
1317 { 1560 {
1318 "enable-experimental-input-view-features", 1561 "enable-experimental-input-view-features",
1319 IDS_FLAGS_ENABLE_EXPERIMENTAL_INPUT_VIEW_FEATURES_NAME, 1562 IDS_FLAGS_ENABLE_EXPERIMENTAL_INPUT_VIEW_FEATURES_NAME,
1320 IDS_FLAGS_ENABLE_EXPERIMENTAL_INPUT_VIEW_FEATURES_DESCRIPTION, 1563 IDS_FLAGS_ENABLE_EXPERIMENTAL_INPUT_VIEW_FEATURES_DESCRIPTION,
1321 kOsCrOS, 1564 kOsCrOS,
1322 SINGLE_VALUE_TYPE(keyboard::switches::kEnableExperimentalInputViewFeatures) 1565 SINGLE_VALUE_TYPE(keyboard::switches::kEnableExperimentalInputViewFeatures,
1566 UMA_HISTOGRAM_ID_kEnableExperimentalInputViewFeatures)
1323 }, 1567 },
1324 #endif 1568 #endif
1325 { 1569 {
1326 "enable-simple-cache-backend", 1570 "enable-simple-cache-backend",
1327 IDS_FLAGS_ENABLE_SIMPLE_CACHE_BACKEND_NAME, 1571 IDS_FLAGS_ENABLE_SIMPLE_CACHE_BACKEND_NAME,
1328 IDS_FLAGS_ENABLE_SIMPLE_CACHE_BACKEND_DESCRIPTION, 1572 IDS_FLAGS_ENABLE_SIMPLE_CACHE_BACKEND_DESCRIPTION,
1329 kOsWin | kOsMac | kOsLinux | kOsCrOS, 1573 kOsWin | kOsMac | kOsLinux | kOsCrOS,
1330 MULTI_VALUE_TYPE(kSimpleCacheBackendChoices) 1574 MULTI_VALUE_TYPE(kSimpleCacheBackendChoices)
1331 }, 1575 },
1332 { 1576 {
1333 "enable-tcp-fast-open", 1577 "enable-tcp-fast-open",
1334 IDS_FLAGS_ENABLE_TCP_FAST_OPEN_NAME, 1578 IDS_FLAGS_ENABLE_TCP_FAST_OPEN_NAME,
1335 IDS_FLAGS_ENABLE_TCP_FAST_OPEN_DESCRIPTION, 1579 IDS_FLAGS_ENABLE_TCP_FAST_OPEN_DESCRIPTION,
1336 kOsLinux | kOsCrOS | kOsAndroid, 1580 kOsLinux | kOsCrOS | kOsAndroid,
1337 SINGLE_VALUE_TYPE(switches::kEnableTcpFastOpen) 1581 SINGLE_VALUE_TYPE(switches::kEnableTcpFastOpen,
1582 UMA_HISTOGRAM_ID_kEnableTcpFastOpen)
1338 }, 1583 },
1339 { 1584 {
1340 "enable-syncfs-directory-operation", 1585 "enable-syncfs-directory-operation",
1341 IDS_FLAGS_ENABLE_SYNC_DIRECTORY_OPERATION_NAME, 1586 IDS_FLAGS_ENABLE_SYNC_DIRECTORY_OPERATION_NAME,
1342 IDS_FLAGS_ENABLE_SYNC_DIRECTORY_OPERATION_DESCRIPTION, 1587 IDS_FLAGS_ENABLE_SYNC_DIRECTORY_OPERATION_DESCRIPTION,
1343 kOsAll, 1588 kOsAll,
1344 SINGLE_VALUE_TYPE(switches::kSyncfsEnableDirectoryOperation), 1589 SINGLE_VALUE_TYPE(switches::kSyncfsEnableDirectoryOperation,
1590 UMA_HISTOGRAM_ID_kSyncfsEnableDirectoryOperation)
1345 }, 1591 },
1346 #if defined(ENABLE_SERVICE_DISCOVERY) 1592 #if defined(ENABLE_SERVICE_DISCOVERY)
1347 { 1593 {
1348 "disable-device-discovery", 1594 "disable-device-discovery",
1349 IDS_FLAGS_DISABLE_DEVICE_DISCOVERY_NAME, 1595 IDS_FLAGS_DISABLE_DEVICE_DISCOVERY_NAME,
1350 IDS_FLAGS_DISABLE_DEVICE_DISCOVERY_DESCRIPTION, 1596 IDS_FLAGS_DISABLE_DEVICE_DISCOVERY_DESCRIPTION,
1351 kOsDesktop, 1597 kOsDesktop,
1352 SINGLE_VALUE_TYPE(switches::kDisableDeviceDiscovery) 1598 SINGLE_VALUE_TYPE(switches::kDisableDeviceDiscovery,
1599 UMA_HISTOGRAM_ID_kDisableDeviceDiscovery)
1353 }, 1600 },
1354 { 1601 {
1355 "device-discovery-notifications", 1602 "device-discovery-notifications",
1356 IDS_FLAGS_DEVICE_DISCOVERY_NOTIFICATIONS_NAME, 1603 IDS_FLAGS_DEVICE_DISCOVERY_NOTIFICATIONS_NAME,
1357 IDS_FLAGS_DEVICE_DISCOVERY_NOTIFICATIONS_DESCRIPTION, 1604 IDS_FLAGS_DEVICE_DISCOVERY_NOTIFICATIONS_DESCRIPTION,
1358 kOsDesktop, 1605 kOsDesktop,
1359 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableDeviceDiscoveryNotifications, 1606 ENABLE_DISABLE_VALUE_TYPE(
1360 switches::kDisableDeviceDiscoveryNotifications) 1607 switches::kEnableDeviceDiscoveryNotifications,
1608 UMA_HISTOGRAM_ID_kEnableDeviceDiscoveryNotifications,
1609 switches::kDisableDeviceDiscoveryNotifications,
1610 UMA_HISTOGRAM_ID_kDisableDeviceDiscoveryNotifications)
1361 }, 1611 },
1362 { 1612 {
1363 "enable-cloud-devices", 1613 "enable-cloud-devices",
1364 IDS_FLAGS_ENABLE_CLOUD_DEVICES_NAME, 1614 IDS_FLAGS_ENABLE_CLOUD_DEVICES_NAME,
1365 IDS_FLAGS_ENABLE_CLOUD_DEVICES_DESCRIPTION, 1615 IDS_FLAGS_ENABLE_CLOUD_DEVICES_DESCRIPTION,
1366 kOsDesktop, 1616 kOsDesktop,
1367 SINGLE_VALUE_TYPE(switches::kEnableCloudDevices) 1617 SINGLE_VALUE_TYPE(switches::kEnableCloudDevices,
1618 UMA_HISTOGRAM_ID_kEnableCloudDevices)
1368 }, 1619 },
1369 { 1620 {
1370 "enable-print-preview-register-promos", 1621 "enable-print-preview-register-promos",
1371 IDS_FLAGS_ENABLE_PRINT_PREVIEW_REGISTER_PROMOS_NAME, 1622 IDS_FLAGS_ENABLE_PRINT_PREVIEW_REGISTER_PROMOS_NAME,
1372 IDS_FLAGS_ENABLE_PRINT_PREVIEW_REGISTER_PROMOS_DESCRIPTION, 1623 IDS_FLAGS_ENABLE_PRINT_PREVIEW_REGISTER_PROMOS_DESCRIPTION,
1373 kOsDesktop, 1624 kOsDesktop,
1374 SINGLE_VALUE_TYPE(switches::kEnablePrintPreviewRegisterPromos) 1625 SINGLE_VALUE_TYPE(switches::kEnablePrintPreviewRegisterPromos,
1626 UMA_HISTOGRAM_ID_kEnablePrintPreviewRegisterPromos)
1375 }, 1627 },
1376 #endif // ENABLE_SERVICE_DISCOVERY 1628 #endif // ENABLE_SERVICE_DISCOVERY
1377 #if defined(OS_WIN) 1629 #if defined(OS_WIN)
1378 { 1630 {
1379 "enable-cloud-print-xps", 1631 "enable-cloud-print-xps",
1380 IDS_FLAGS_ENABLE_CLOUD_PRINT_XPS_NAME, 1632 IDS_FLAGS_ENABLE_CLOUD_PRINT_XPS_NAME,
1381 IDS_FLAGS_ENABLE_CLOUD_PRINT_XPS_DESCRIPTION, 1633 IDS_FLAGS_ENABLE_CLOUD_PRINT_XPS_DESCRIPTION,
1382 kOsWin, 1634 kOsWin,
1383 SINGLE_VALUE_TYPE(switches::kEnableCloudPrintXps) 1635 SINGLE_VALUE_TYPE(switches::kEnableCloudPrintXps,
1636 UMA_HISTOGRAM_ID_kEnableCloudPrintXps)
1384 }, 1637 },
1385 #endif 1638 #endif
1386 #if defined(OS_MACOSX) 1639 #if defined(OS_MACOSX)
1387 { 1640 {
1388 "enable-simplified-fullscreen", 1641 "enable-simplified-fullscreen",
1389 IDS_FLAGS_ENABLE_SIMPLIFIED_FULLSCREEN_NAME, 1642 IDS_FLAGS_ENABLE_SIMPLIFIED_FULLSCREEN_NAME,
1390 IDS_FLAGS_ENABLE_SIMPLIFIED_FULLSCREEN_DESCRIPTION, 1643 IDS_FLAGS_ENABLE_SIMPLIFIED_FULLSCREEN_DESCRIPTION,
1391 kOsMac, 1644 kOsMac,
1392 SINGLE_VALUE_TYPE(switches::kEnableSimplifiedFullscreen) 1645 SINGLE_VALUE_TYPE(switches::kEnableSimplifiedFullscreen,
1646 UMA_HISTOGRAM_ID_kEnableSimplifiedFullscreen)
1393 }, 1647 },
1394 #endif 1648 #endif
1395 #if defined(USE_AURA) 1649 #if defined(USE_AURA)
1396 { 1650 {
1397 "tab-capture-upscale-quality", 1651 "tab-capture-upscale-quality",
1398 IDS_FLAGS_TAB_CAPTURE_UPSCALE_QUALITY_NAME, 1652 IDS_FLAGS_TAB_CAPTURE_UPSCALE_QUALITY_NAME,
1399 IDS_FLAGS_TAB_CAPTURE_UPSCALE_QUALITY_DESCRIPTION, 1653 IDS_FLAGS_TAB_CAPTURE_UPSCALE_QUALITY_DESCRIPTION,
1400 kOsAll, 1654 kOsAll,
1401 MULTI_VALUE_TYPE(kTabCaptureUpscaleQualityChoices) 1655 MULTI_VALUE_TYPE(kTabCaptureUpscaleQualityChoices)
1402 }, 1656 },
1403 { 1657 {
1404 "tab-capture-downscale-quality", 1658 "tab-capture-downscale-quality",
1405 IDS_FLAGS_TAB_CAPTURE_DOWNSCALE_QUALITY_NAME, 1659 IDS_FLAGS_TAB_CAPTURE_DOWNSCALE_QUALITY_NAME,
1406 IDS_FLAGS_TAB_CAPTURE_DOWNSCALE_QUALITY_DESCRIPTION, 1660 IDS_FLAGS_TAB_CAPTURE_DOWNSCALE_QUALITY_DESCRIPTION,
1407 kOsAll, 1661 kOsAll,
1408 MULTI_VALUE_TYPE(kTabCaptureDownscaleQualityChoices) 1662 MULTI_VALUE_TYPE(kTabCaptureDownscaleQualityChoices)
1409 }, 1663 },
1410 #endif 1664 #endif
1411 { 1665 {
1412 "enable-spelling-feedback-field-trial", 1666 "enable-spelling-feedback-field-trial",
1413 IDS_FLAGS_ENABLE_SPELLING_FEEDBACK_FIELD_TRIAL_NAME, 1667 IDS_FLAGS_ENABLE_SPELLING_FEEDBACK_FIELD_TRIAL_NAME,
1414 IDS_FLAGS_ENABLE_SPELLING_FEEDBACK_FIELD_TRIAL_DESCRIPTION, 1668 IDS_FLAGS_ENABLE_SPELLING_FEEDBACK_FIELD_TRIAL_DESCRIPTION,
1415 kOsAll, 1669 kOsAll,
1416 SINGLE_VALUE_TYPE(switches::kEnableSpellingFeedbackFieldTrial) 1670 SINGLE_VALUE_TYPE(switches::kEnableSpellingFeedbackFieldTrial,
1671 UMA_HISTOGRAM_ID_kEnableSpellingFeedbackFieldTrial)
1417 }, 1672 },
1418 { 1673 {
1419 "enable-webgl-draft-extensions", 1674 "enable-webgl-draft-extensions",
1420 IDS_FLAGS_ENABLE_WEBGL_DRAFT_EXTENSIONS_NAME, 1675 IDS_FLAGS_ENABLE_WEBGL_DRAFT_EXTENSIONS_NAME,
1421 IDS_FLAGS_ENABLE_WEBGL_DRAFT_EXTENSIONS_DESCRIPTION, 1676 IDS_FLAGS_ENABLE_WEBGL_DRAFT_EXTENSIONS_DESCRIPTION,
1422 kOsAll, 1677 kOsAll,
1423 SINGLE_VALUE_TYPE(switches::kEnableWebGLDraftExtensions) 1678 SINGLE_VALUE_TYPE(switches::kEnableWebGLDraftExtensions,
1679 UMA_HISTOGRAM_ID_kEnableWebGLDraftExtensions)
1424 }, 1680 },
1425 { 1681 {
1426 "enable-web-midi", 1682 "enable-web-midi",
1427 IDS_FLAGS_ENABLE_WEB_MIDI_NAME, 1683 IDS_FLAGS_ENABLE_WEB_MIDI_NAME,
1428 IDS_FLAGS_ENABLE_WEB_MIDI_DESCRIPTION, 1684 IDS_FLAGS_ENABLE_WEB_MIDI_DESCRIPTION,
1429 kOsMac | kOsWin | kOsLinux | kOsCrOS | kOsAndroid, 1685 kOsMac | kOsWin | kOsLinux | kOsCrOS | kOsAndroid,
1430 SINGLE_VALUE_TYPE(switches::kEnableWebMIDI) 1686 SINGLE_VALUE_TYPE(switches::kEnableWebMIDI,
1687 UMA_HISTOGRAM_ID_kEnableWebMIDI)
1431 }, 1688 },
1432 { 1689 {
1433 "enable-new-profile-management", 1690 "enable-new-profile-management",
1434 IDS_FLAGS_ENABLE_NEW_PROFILE_MANAGEMENT_NAME, 1691 IDS_FLAGS_ENABLE_NEW_PROFILE_MANAGEMENT_NAME,
1435 IDS_FLAGS_ENABLE_NEW_PROFILE_MANAGEMENT_DESCRIPTION, 1692 IDS_FLAGS_ENABLE_NEW_PROFILE_MANAGEMENT_DESCRIPTION,
1436 kOsAndroid | kOsMac | kOsWin | kOsLinux | kOsCrOS, 1693 kOsAndroid | kOsMac | kOsWin | kOsLinux | kOsCrOS,
1437 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableNewProfileManagement, 1694 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableNewProfileManagement,
1438 switches::kDisableNewProfileManagement) 1695 UMA_HISTOGRAM_ID_kEnableNewProfileManagement,
1696 switches::kDisableNewProfileManagement,
1697 UMA_HISTOGRAM_ID_kDisableNewProfileManagement)
1439 }, 1698 },
1440 { 1699 {
1441 "enable-account-consistency", 1700 "enable-account-consistency",
1442 IDS_FLAGS_ENABLE_ACCOUNT_CONSISTENCY_NAME, 1701 IDS_FLAGS_ENABLE_ACCOUNT_CONSISTENCY_NAME,
1443 IDS_FLAGS_ENABLE_ACCOUNT_CONSISTENCY_DESCRIPTION, 1702 IDS_FLAGS_ENABLE_ACCOUNT_CONSISTENCY_DESCRIPTION,
1444 kOsAndroid | kOsMac | kOsWin | kOsLinux | kOsCrOS, 1703 kOsAndroid | kOsMac | kOsWin | kOsLinux | kOsCrOS,
1445 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableAccountConsistency, 1704 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableAccountConsistency,
1446 switches::kDisableAccountConsistency) 1705 UMA_HISTOGRAM_ID_kEnableAccountConsistency,
1706 switches::kDisableAccountConsistency,
1707 UMA_HISTOGRAM_ID_kDisableAccountConsistency)
1447 }, 1708 },
1448 { 1709 {
1449 "enable-fast-user-switching", 1710 "enable-fast-user-switching",
1450 IDS_FLAGS_ENABLE_FAST_USER_SWITCHING_NAME, 1711 IDS_FLAGS_ENABLE_FAST_USER_SWITCHING_NAME,
1451 IDS_FLAGS_ENABLE_FAST_USER_SWITCHING_DESCRIPTION, 1712 IDS_FLAGS_ENABLE_FAST_USER_SWITCHING_DESCRIPTION,
1452 kOsMac | kOsWin | kOsLinux, 1713 kOsMac | kOsWin | kOsLinux,
1453 SINGLE_VALUE_TYPE(switches::kFastUserSwitching) 1714 SINGLE_VALUE_TYPE(switches::kFastUserSwitching,
1715 UMA_HISTOGRAM_ID_kFastUserSwitching)
1454 }, 1716 },
1455 { 1717 {
1456 "enable-new-avatar-menu", 1718 "enable-new-avatar-menu",
1457 IDS_FLAGS_ENABLE_NEW_AVATAR_MENU_NAME, 1719 IDS_FLAGS_ENABLE_NEW_AVATAR_MENU_NAME,
1458 IDS_FLAGS_ENABLE_NEW_AVATAR_MENU_DESCRIPTION, 1720 IDS_FLAGS_ENABLE_NEW_AVATAR_MENU_DESCRIPTION,
1459 kOsMac | kOsWin | kOsLinux, 1721 kOsMac | kOsWin | kOsLinux,
1460 SINGLE_VALUE_TYPE(switches::kNewAvatarMenu) 1722 SINGLE_VALUE_TYPE(switches::kNewAvatarMenu,
1723 UMA_HISTOGRAM_ID_kNewAvatarMenu)
1461 }, 1724 },
1462 { 1725 {
1463 "enable-web-based-signin", 1726 "enable-web-based-signin",
1464 IDS_FLAGS_ENABLE_WEB_BASED_SIGNIN_NAME, 1727 IDS_FLAGS_ENABLE_WEB_BASED_SIGNIN_NAME,
1465 IDS_FLAGS_ENABLE_WEB_BASED_SIGNIN_DESCRIPTION, 1728 IDS_FLAGS_ENABLE_WEB_BASED_SIGNIN_DESCRIPTION,
1466 kOsMac | kOsWin | kOsLinux, 1729 kOsMac | kOsWin | kOsLinux,
1467 SINGLE_VALUE_TYPE(switches::kEnableWebBasedSignin) 1730 SINGLE_VALUE_TYPE(switches::kEnableWebBasedSignin,
1731 UMA_HISTOGRAM_ID_kEnableWebBasedSignin)
1468 }, 1732 },
1469 { 1733 {
1470 "enable-google-profile-info", 1734 "enable-google-profile-info",
1471 IDS_FLAGS_ENABLE_GOOGLE_PROFILE_INFO_NAME, 1735 IDS_FLAGS_ENABLE_GOOGLE_PROFILE_INFO_NAME,
1472 IDS_FLAGS_ENABLE_GOOGLE_PROFILE_INFO_DESCRIPTION, 1736 IDS_FLAGS_ENABLE_GOOGLE_PROFILE_INFO_DESCRIPTION,
1473 kOsMac | kOsWin | kOsLinux, 1737 kOsMac | kOsWin | kOsLinux,
1474 SINGLE_VALUE_TYPE(switches::kGoogleProfileInfo) 1738 SINGLE_VALUE_TYPE(switches::kGoogleProfileInfo,
1739 UMA_HISTOGRAM_ID_kGoogleProfileInfo)
1475 }, 1740 },
1476 { 1741 {
1477 "reset-app-list-install-state", 1742 "reset-app-list-install-state",
1478 IDS_FLAGS_RESET_APP_LIST_INSTALL_STATE_NAME, 1743 IDS_FLAGS_RESET_APP_LIST_INSTALL_STATE_NAME,
1479 IDS_FLAGS_RESET_APP_LIST_INSTALL_STATE_DESCRIPTION, 1744 IDS_FLAGS_RESET_APP_LIST_INSTALL_STATE_DESCRIPTION,
1480 kOsMac | kOsWin | kOsLinux, 1745 kOsMac | kOsWin | kOsLinux,
1481 SINGLE_VALUE_TYPE(switches::kResetAppListInstallState) 1746 SINGLE_VALUE_TYPE(switches::kResetAppListInstallState,
1747 UMA_HISTOGRAM_ID_kResetAppListInstallState)
1482 }, 1748 },
1483 #if defined(ENABLE_APP_LIST) 1749 #if defined(ENABLE_APP_LIST)
1484 #if defined(OS_LINUX) 1750 #if defined(OS_LINUX)
1485 { 1751 { // This is compiled out on non-Linux platforms because otherwise it would
1486 // This is compiled out on non-Linux platforms because otherwise it would be 1752 // be
1487 // visible on Win/Mac/CrOS but not on Linux GTK, which would be confusing. 1753 // visible on Win/Mac/CrOS but not on Linux GTK, which would be confusing.
1488 // TODO(mgiuca): Remove the #if when Aura is the default on Linux. 1754 // TODO(mgiuca): Remove the #if when Aura is the default on Linux.
1489 "enable-app-list", 1755 "enable-app-list",
1490 IDS_FLAGS_ENABLE_APP_LIST_NAME, 1756 IDS_FLAGS_ENABLE_APP_LIST_NAME,
1491 IDS_FLAGS_ENABLE_APP_LIST_DESCRIPTION, 1757 IDS_FLAGS_ENABLE_APP_LIST_DESCRIPTION,
1492 kOsLinux, 1758 kOsLinux,
1493 SINGLE_VALUE_TYPE(switches::kEnableAppList) 1759 SINGLE_VALUE_TYPE(switches::kEnableAppList,
1760 UMA_HISTOGRAM_ID_kEnableAppList)
1494 }, 1761 },
1495 #endif 1762 #endif
1496 { 1763 {
1497 "disable-app-list-app-info", 1764 "disable-app-list-app-info",
1498 IDS_FLAGS_DISABLE_APP_INFO_IN_APP_LIST, 1765 IDS_FLAGS_DISABLE_APP_INFO_IN_APP_LIST,
1499 IDS_FLAGS_DISABLE_APP_INFO_IN_APP_LIST_DESCRIPTION, 1766 IDS_FLAGS_DISABLE_APP_INFO_IN_APP_LIST_DESCRIPTION,
1500 kOsLinux | kOsWin | kOsCrOS, 1767 kOsLinux | kOsWin | kOsCrOS,
1501 SINGLE_VALUE_TYPE(app_list::switches::kDisableAppInfo) 1768 SINGLE_VALUE_TYPE(app_list::switches::kDisableAppInfo,
1769 UMA_HISTOGRAM_ID_kDisableAppInfo)
1502 }, 1770 },
1503 { 1771 {
1504 "disable-app-list-voice-search", 1772 "disable-app-list-voice-search",
1505 IDS_FLAGS_DISABLE_APP_LIST_VOICE_SEARCH, 1773 IDS_FLAGS_DISABLE_APP_LIST_VOICE_SEARCH,
1506 IDS_FLAGS_DISABLE_APP_LIST_VOICE_SEARCH_DESCRIPTION, 1774 IDS_FLAGS_DISABLE_APP_LIST_VOICE_SEARCH_DESCRIPTION,
1507 kOsCrOS, 1775 kOsCrOS,
1508 SINGLE_VALUE_TYPE(app_list::switches::kDisableVoiceSearch) 1776 SINGLE_VALUE_TYPE(app_list::switches::kDisableVoiceSearch,
1777 UMA_HISTOGRAM_ID_kDisableVoiceSearch)
1509 }, 1778 },
1510 #endif 1779 #endif
1511 #if defined(OS_ANDROID) 1780 #if defined(OS_ANDROID)
1512 { 1781 {
1513 "enable-accessibility-tab-switcher", 1782 "enable-accessibility-tab-switcher",
1514 IDS_FLAGS_ENABLE_ACCESSIBILITY_TAB_SWITCHER_NAME, 1783 IDS_FLAGS_ENABLE_ACCESSIBILITY_TAB_SWITCHER_NAME,
1515 IDS_FLAGS_ENABLE_ACCESSIBILITY_TAB_SWITCHER_DESCRIPTION, 1784 IDS_FLAGS_ENABLE_ACCESSIBILITY_TAB_SWITCHER_DESCRIPTION,
1516 kOsAndroid, 1785 kOsAndroid,
1517 SINGLE_VALUE_TYPE(switches::kEnableAccessibilityTabSwitcher) 1786 SINGLE_VALUE_TYPE(switches::kEnableAccessibilityTabSwitcher,
1518 }, 1787 UMA_HISTOGRAM_ID_kEnableAccessibilityTabSwitcher)
1519 {
1520 // TODO(dmazzoni): remove this flag when native android accessibility
1521 // ships in the stable channel. http://crbug.com/356775
1522 "enable-accessibility-script-injection",
1523 IDS_FLAGS_ENABLE_ACCESSIBILITY_SCRIPT_INJECTION_NAME,
1524 IDS_FLAGS_ENABLE_ACCESSIBILITY_SCRIPT_INJECTION_DESCRIPTION,
1525 kOsAndroid,
1526 // Java-only switch: ContentSwitches.ENABLE_ACCESSIBILITY_SCRIPT_INJECTION.
1527 SINGLE_VALUE_TYPE("enable-accessibility-script-injection")
1528 }, 1788 },
1529 #endif 1789 #endif
1530 { 1790 {
1531 "enable-one-copy", 1791 "enable-one-copy",
1532 IDS_FLAGS_ONE_COPY_NAME, 1792 IDS_FLAGS_ONE_COPY_NAME,
1533 IDS_FLAGS_ONE_COPY_DESCRIPTION, 1793 IDS_FLAGS_ONE_COPY_DESCRIPTION,
1534 kOsAll, 1794 kOsAll,
1535 SINGLE_VALUE_TYPE(switches::kEnableOneCopy) 1795 SINGLE_VALUE_TYPE(switches::kEnableOneCopy,
1796 UMA_HISTOGRAM_ID_kEnableOneCopy)
1536 }, 1797 },
1537 { 1798 {
1538 "enable-zero-copy", 1799 "enable-zero-copy",
1539 IDS_FLAGS_ZERO_COPY_NAME, 1800 IDS_FLAGS_ZERO_COPY_NAME,
1540 IDS_FLAGS_ZERO_COPY_DESCRIPTION, 1801 IDS_FLAGS_ZERO_COPY_DESCRIPTION,
1541 kOsAll, 1802 kOsAll,
1542 MULTI_VALUE_TYPE(kZeroCopyChoices) 1803 MULTI_VALUE_TYPE(kZeroCopyChoices)
1543 }, 1804 },
1544 #if defined(OS_CHROMEOS) 1805 #if defined(OS_CHROMEOS)
1545 { 1806 {
1546 "enable-first-run-ui-transitions", 1807 "enable-first-run-ui-transitions",
1547 IDS_FLAGS_ENABLE_FIRST_RUN_UI_TRANSITIONS_NAME, 1808 IDS_FLAGS_ENABLE_FIRST_RUN_UI_TRANSITIONS_NAME,
1548 IDS_FLAGS_ENABLE_FIRST_RUN_UI_TRANSITIONS_DESCRIPTION, 1809 IDS_FLAGS_ENABLE_FIRST_RUN_UI_TRANSITIONS_DESCRIPTION,
1549 kOsCrOS, 1810 kOsCrOS,
1550 SINGLE_VALUE_TYPE(chromeos::switches::kEnableFirstRunUITransitions) 1811 SINGLE_VALUE_TYPE(chromeos::switches::kEnableFirstRunUITransitions,
1812 UMA_HISTOGRAM_ID_kEnableFirstRunUITransitions)
1551 }, 1813 },
1552 #endif 1814 #endif
1553 { 1815 {
1554 "disable-compositor-touch-hit-testing", 1816 "disable-compositor-touch-hit-testing",
1555 IDS_FLAGS_DISABLE_COMPOSITOR_TOUCH_HIT_TESTING_NAME, 1817 IDS_FLAGS_DISABLE_COMPOSITOR_TOUCH_HIT_TESTING_NAME,
1556 IDS_FLAGS_DISABLE_COMPOSITOR_TOUCH_HIT_TESTING_DESCRIPTION, 1818 IDS_FLAGS_DISABLE_COMPOSITOR_TOUCH_HIT_TESTING_DESCRIPTION,
1557 kOsAll, 1819 kOsAll,
1558 SINGLE_VALUE_TYPE(cc::switches::kDisableCompositorTouchHitTesting), 1820 SINGLE_VALUE_TYPE(cc::switches::kDisableCompositorTouchHitTesting,
1821 UMA_HISTOGRAM_ID_kDisableCompositorTouchHitTesting)
1559 }, 1822 },
1560 { 1823 {
1561 "enable-streamlined-hosted-apps", 1824 "enable-streamlined-hosted-apps",
1562 IDS_FLAGS_ENABLE_STREAMLINED_HOSTED_APPS_NAME, 1825 IDS_FLAGS_ENABLE_STREAMLINED_HOSTED_APPS_NAME,
1563 IDS_FLAGS_ENABLE_STREAMLINED_HOSTED_APPS_DESCRIPTION, 1826 IDS_FLAGS_ENABLE_STREAMLINED_HOSTED_APPS_DESCRIPTION,
1564 kOsWin | kOsCrOS | kOsLinux, 1827 kOsWin | kOsCrOS | kOsLinux,
1565 SINGLE_VALUE_TYPE(switches::kEnableStreamlinedHostedApps) 1828 SINGLE_VALUE_TYPE(switches::kEnableStreamlinedHostedApps,
1829 UMA_HISTOGRAM_ID_kEnableStreamlinedHostedApps)
1566 }, 1830 },
1567 { 1831 {
1568 "enable-prominent-url-app-flow", 1832 "enable-prominent-url-app-flow",
1569 IDS_FLAGS_ENABLE_PROMINENT_URL_APP_FLOW_NAME, 1833 IDS_FLAGS_ENABLE_PROMINENT_URL_APP_FLOW_NAME,
1570 IDS_FLAGS_ENABLE_PROMINENT_URL_APP_FLOW_DESCRIPTION, 1834 IDS_FLAGS_ENABLE_PROMINENT_URL_APP_FLOW_DESCRIPTION,
1571 kOsWin | kOsCrOS | kOsLinux, 1835 kOsWin | kOsCrOS | kOsLinux,
1572 SINGLE_VALUE_TYPE(switches::kEnableProminentURLAppFlow) 1836 SINGLE_VALUE_TYPE(switches::kEnableProminentURLAppFlow,
1837 UMA_HISTOGRAM_ID_kEnableProminentURLAppFlow)
1573 }, 1838 },
1574 { 1839 {
1575 "enable-ephemeral-apps", 1840 "enable-ephemeral-apps",
1576 IDS_FLAGS_ENABLE_EPHEMERAL_APPS_NAME, 1841 IDS_FLAGS_ENABLE_EPHEMERAL_APPS_NAME,
1577 IDS_FLAGS_ENABLE_EPHEMERAL_APPS_DESCRIPTION, 1842 IDS_FLAGS_ENABLE_EPHEMERAL_APPS_DESCRIPTION,
1578 kOsAll, 1843 kOsAll,
1579 SINGLE_VALUE_TYPE(switches::kEnableEphemeralApps) 1844 SINGLE_VALUE_TYPE(switches::kEnableEphemeralApps,
1845 UMA_HISTOGRAM_ID_kEnableEphemeralApps)
1580 }, 1846 },
1581 { 1847 {
1582 "enable-linkable-ephemeral-apps", 1848 "enable-linkable-ephemeral-apps",
1583 IDS_FLAGS_ENABLE_LINKABLE_EPHEMERAL_APPS_NAME, 1849 IDS_FLAGS_ENABLE_LINKABLE_EPHEMERAL_APPS_NAME,
1584 IDS_FLAGS_ENABLE_LINKABLE_EPHEMERAL_APPS_DESCRIPTION, 1850 IDS_FLAGS_ENABLE_LINKABLE_EPHEMERAL_APPS_DESCRIPTION,
1585 kOsAll, 1851 kOsAll,
1586 SINGLE_VALUE_TYPE(switches::kEnableLinkableEphemeralApps) 1852 SINGLE_VALUE_TYPE(switches::kEnableLinkableEphemeralApps,
1853 UMA_HISTOGRAM_ID_kEnableLinkableEphemeralApps)
1587 }, 1854 },
1588 { 1855 {
1589 "enable-service-worker", 1856 "enable-service-worker",
1590 IDS_FLAGS_ENABLE_SERVICE_WORKER_NAME, 1857 IDS_FLAGS_ENABLE_SERVICE_WORKER_NAME,
1591 IDS_FLAGS_ENABLE_SERVICE_WORKER_DESCRIPTION, 1858 IDS_FLAGS_ENABLE_SERVICE_WORKER_DESCRIPTION,
1592 kOsAll, 1859 kOsAll,
1593 SINGLE_VALUE_TYPE(switches::kEnableServiceWorker) 1860 SINGLE_VALUE_TYPE(switches::kEnableServiceWorker,
1861 UMA_HISTOGRAM_ID_kEnableServiceWorker)
1594 }, 1862 },
1595 { 1863 {
1596 "enable-service-worker-sync", 1864 "enable-service-worker-sync",
1597 IDS_FLAGS_ENABLE_SERVICE_WORKER_SYNC_NAME, 1865 IDS_FLAGS_ENABLE_SERVICE_WORKER_SYNC_NAME,
1598 IDS_FLAGS_ENABLE_SERVICE_WORKER_SYNC_DESCRIPTION, 1866 IDS_FLAGS_ENABLE_SERVICE_WORKER_SYNC_DESCRIPTION,
1599 kOsAll, 1867 kOsAll,
1600 SINGLE_VALUE_TYPE(switches::kEnableServiceWorkerSync) 1868 SINGLE_VALUE_TYPE(switches::kEnableServiceWorkerSync,
1869 UMA_HISTOGRAM_ID_kEnableServiceWorkerSync)
1601 }, 1870 },
1602 #if defined(OS_ANDROID) 1871 #if defined(OS_ANDROID)
1603 { 1872 {
1604 "disable-click-delay", 1873 "disable-click-delay",
1605 IDS_FLAGS_DISABLE_CLICK_DELAY_NAME, 1874 IDS_FLAGS_DISABLE_CLICK_DELAY_NAME,
1606 IDS_FLAGS_DISABLE_CLICK_DELAY_DESCRIPTION, 1875 IDS_FLAGS_DISABLE_CLICK_DELAY_DESCRIPTION,
1607 kOsAndroid, 1876 kOsAndroid,
1608 // Java-only switch: CommandLine.DISABLE_CLICK_DELAY 1877 // Java-only switch: CommandLine.DISABLE_CLICK_DELAY
1609 SINGLE_VALUE_TYPE("disable-click-delay") 1878 SINGLE_VALUE_TYPE(switches::kDisableClickDelay,
1879 UMA_HISTOGRAM_ID_kDisableClickDelay)
1610 }, 1880 },
1611 #endif 1881 #endif
1612 #if defined(OS_MACOSX) 1882 #if defined(OS_MACOSX)
1613 { 1883 {
1614 "enable-translate-new-ux", 1884 "enable-translate-new-ux",
1615 IDS_FLAGS_ENABLE_TRANSLATE_NEW_UX_NAME, 1885 IDS_FLAGS_ENABLE_TRANSLATE_NEW_UX_NAME,
1616 IDS_FLAGS_ENABLE_TRANSLATE_NEW_UX_DESCRIPTION, 1886 IDS_FLAGS_ENABLE_TRANSLATE_NEW_UX_DESCRIPTION,
1617 kOsMac, 1887 kOsMac,
1618 SINGLE_VALUE_TYPE(switches::kEnableTranslateNewUX) 1888 SINGLE_VALUE_TYPE(switches::kEnableTranslateNewUX,
1889 UMA_HISTOGRAM_ID_kEnableTranslateNewUX)
1619 }, 1890 },
1620 #endif 1891 #endif
1621 #if defined(TOOLKIT_VIEWS) 1892 #if defined(TOOLKIT_VIEWS)
1622 { 1893 {
1623 "disable-views-rect-based-targeting", // FLAGS:RECORD_UMA 1894 "disable-views-rect-based-targeting", // FLAGS:RECORD_UMA
1624 IDS_FLAGS_DISABLE_VIEWS_RECT_BASED_TARGETING_NAME, 1895 IDS_FLAGS_DISABLE_VIEWS_RECT_BASED_TARGETING_NAME,
1625 IDS_FLAGS_DISABLE_VIEWS_RECT_BASED_TARGETING_DESCRIPTION, 1896 IDS_FLAGS_DISABLE_VIEWS_RECT_BASED_TARGETING_DESCRIPTION,
1626 kOsCrOS | kOsWin, 1897 kOsCrOS | kOsWin,
1627 SINGLE_VALUE_TYPE(views::switches::kDisableViewsRectBasedTargeting) 1898 SINGLE_VALUE_TYPE(views::switches::kDisableViewsRectBasedTargeting,
1899 UMA_HISTOGRAM_ID_kDisableViewsRectBasedTargeting)
1628 }, 1900 },
1629 #endif 1901 #endif
1630 { 1902 {
1631 "enable-apps-show-on-first-paint", 1903 "enable-apps-show-on-first-paint",
1632 IDS_FLAGS_ENABLE_APPS_SHOW_ON_FIRST_PAINT_NAME, 1904 IDS_FLAGS_ENABLE_APPS_SHOW_ON_FIRST_PAINT_NAME,
1633 IDS_FLAGS_ENABLE_APPS_SHOW_ON_FIRST_PAINT_DESCRIPTION, 1905 IDS_FLAGS_ENABLE_APPS_SHOW_ON_FIRST_PAINT_DESCRIPTION,
1634 kOsDesktop, 1906 kOsDesktop,
1635 SINGLE_VALUE_TYPE(switches::kEnableAppsShowOnFirstPaint) 1907 SINGLE_VALUE_TYPE(switches::kEnableAppsShowOnFirstPaint,
1908 UMA_HISTOGRAM_ID_kEnableAppsShowOnFirstPaint)
1636 }, 1909 },
1637 { 1910 {
1638 "enhanced-bookmarks-experiment", 1911 "enhanced-bookmarks-experiment",
1639 IDS_FLAGS_ENABLE_ENHANCED_BOOKMARKS_NAME, 1912 IDS_FLAGS_ENABLE_ENHANCED_BOOKMARKS_NAME,
1640 IDS_FLAGS_ENABLE_ENHANCED_BOOKMARKS_DESCRIPTION, 1913 IDS_FLAGS_ENABLE_ENHANCED_BOOKMARKS_DESCRIPTION,
1641 kOsDesktop, 1914 kOsDesktop,
1642 ENABLE_DISABLE_VALUE_TYPE_AND_VALUE( 1915 ENABLE_DISABLE_VALUE_TYPE_AND_VALUE(
1643 switches::kEnhancedBookmarksExperiment, "1", 1916 switches::kEnhancedBookmarksExperiment, "1",
1644 switches::kEnhancedBookmarksExperiment, "0") 1917 UMA_HISTOGRAM_ID_kEnhancedBookmarksExperiment,
1918 switches::kEnhancedBookmarksExperiment, "0",
1919 UMA_HISTOGRAM_ID_kEnhancedBookmarksExperiment)
1645 }, 1920 },
1646 { 1921 {
1647 "manual-enhanced-bookmarks", 1922 "manual-enhanced-bookmarks",
1648 IDS_FLAGS_ENABLE_ENHANCED_BOOKMARKS_NAME, 1923 IDS_FLAGS_ENABLE_ENHANCED_BOOKMARKS_NAME,
1649 IDS_FLAGS_ENABLE_ENHANCED_BOOKMARKS_DESCRIPTION, 1924 IDS_FLAGS_ENABLE_ENHANCED_BOOKMARKS_DESCRIPTION,
1650 kOsDesktop, 1925 kOsDesktop,
1651 SINGLE_VALUE_TYPE(switches::kManualEnhancedBookmarks) 1926 SINGLE_VALUE_TYPE(switches::kManualEnhancedBookmarks,
1927 UMA_HISTOGRAM_ID_kManualEnhancedBookmarks)
1652 }, 1928 },
1653 { 1929 {
1654 "manual-enhanced-bookmarks-optout", 1930 "manual-enhanced-bookmarks-optout",
1655 IDS_FLAGS_ENABLE_ENHANCED_BOOKMARKS_NAME, 1931 IDS_FLAGS_ENABLE_ENHANCED_BOOKMARKS_NAME,
1656 IDS_FLAGS_ENABLE_ENHANCED_BOOKMARKS_DESCRIPTION, 1932 IDS_FLAGS_ENABLE_ENHANCED_BOOKMARKS_DESCRIPTION,
1657 kOsDesktop, 1933 kOsDesktop,
1658 SINGLE_VALUE_TYPE(switches::kManualEnhancedBookmarksOptout) 1934 SINGLE_VALUE_TYPE(switches::kManualEnhancedBookmarksOptout,
1935 UMA_HISTOGRAM_ID_kManualEnhancedBookmarksOptout)
1659 }, 1936 },
1660 #if defined(OS_ANDROID) 1937 #if defined(OS_ANDROID)
1661 { 1938 {
1662 "enable-zero-suggest-experiment", 1939 "enable-zero-suggest-experiment",
1663 IDS_FLAGS_ZERO_SUGGEST_EXPERIMENT_NAME, 1940 IDS_FLAGS_ZERO_SUGGEST_EXPERIMENT_NAME,
1664 IDS_FLAGS_ZERO_SUGGEST_EXPERIMENT_DESCRIPTION, 1941 IDS_FLAGS_ZERO_SUGGEST_EXPERIMENT_DESCRIPTION,
1665 kOsAndroid, 1942 kOsAndroid,
1666 MULTI_VALUE_TYPE(kZeroSuggestExperimentsChoices) 1943 MULTI_VALUE_TYPE(kZeroSuggestExperimentsChoices)
1667 }, 1944 },
1668 #endif 1945 #endif
(...skipping 16 matching lines...) Expand all
1685 IDS_FLAGS_SEARCH_BUTTON_IN_OMNIBOX_NAME, 1962 IDS_FLAGS_SEARCH_BUTTON_IN_OMNIBOX_NAME,
1686 IDS_FLAGS_SEARCH_BUTTON_IN_OMNIBOX_DESCRIPTION, 1963 IDS_FLAGS_SEARCH_BUTTON_IN_OMNIBOX_DESCRIPTION,
1687 kOsCrOS | kOsMac | kOsWin | kOsLinux, 1964 kOsCrOS | kOsMac | kOsWin | kOsLinux,
1688 MULTI_VALUE_TYPE(kSearchButtonInOmniboxChoices) 1965 MULTI_VALUE_TYPE(kSearchButtonInOmniboxChoices)
1689 }, 1966 },
1690 { 1967 {
1691 "disable-ignore-autocomplete-off", 1968 "disable-ignore-autocomplete-off",
1692 IDS_FLAGS_DISABLE_IGNORE_AUTOCOMPLETE_OFF_NAME, 1969 IDS_FLAGS_DISABLE_IGNORE_AUTOCOMPLETE_OFF_NAME,
1693 IDS_FLAGS_DISABLE_IGNORE_AUTOCOMPLETE_OFF_DESCRIPTION, 1970 IDS_FLAGS_DISABLE_IGNORE_AUTOCOMPLETE_OFF_DESCRIPTION,
1694 kOsAll, 1971 kOsAll,
1695 SINGLE_VALUE_TYPE(autofill::switches::kDisableIgnoreAutocompleteOff) 1972 SINGLE_VALUE_TYPE(autofill::switches::kDisableIgnoreAutocompleteOff,
1973 UMA_HISTOGRAM_ID_kDisableIgnoreAutocompleteOff)
1696 }, 1974 },
1697 { 1975 {
1698 "enable-permissions-bubbles", 1976 "enable-permissions-bubbles",
1699 IDS_FLAGS_ENABLE_PERMISSIONS_BUBBLES_NAME, 1977 IDS_FLAGS_ENABLE_PERMISSIONS_BUBBLES_NAME,
1700 IDS_FLAGS_ENABLE_PERMISSIONS_BUBBLES_DESCRIPTION, 1978 IDS_FLAGS_ENABLE_PERMISSIONS_BUBBLES_DESCRIPTION,
1701 kOsAll, 1979 kOsAll,
1702 ENABLE_DISABLE_VALUE_TYPE(switches::kEnablePermissionsBubbles, 1980 ENABLE_DISABLE_VALUE_TYPE(switches::kEnablePermissionsBubbles,
1703 switches::kDisablePermissionsBubbles) 1981 UMA_HISTOGRAM_ID_kEnablePermissionsBubbles,
1982 switches::kDisablePermissionsBubbles,
1983 UMA_HISTOGRAM_ID_kDisablePermissionsBubbles)
1704 }, 1984 },
1705 { 1985 {
1706 "enable-session-crashed-bubble", 1986 "enable-session-crashed-bubble",
1707 IDS_FLAGS_ENABLE_SESSION_CRASHED_BUBBLE_NAME, 1987 IDS_FLAGS_ENABLE_SESSION_CRASHED_BUBBLE_NAME,
1708 IDS_FLAGS_ENABLE_SESSION_CRASHED_BUBBLE_DESCRIPTION, 1988 IDS_FLAGS_ENABLE_SESSION_CRASHED_BUBBLE_DESCRIPTION,
1709 kOsWin | kOsLinux, 1989 kOsWin | kOsLinux,
1710 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableSessionCrashedBubble, 1990 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableSessionCrashedBubble,
1711 switches::kDisableSessionCrashedBubble) 1991 UMA_HISTOGRAM_ID_kEnableSessionCrashedBubble,
1992 switches::kDisableSessionCrashedBubble,
1993 UMA_HISTOGRAM_ID_kDisableSessionCrashedBubble)
1712 }, 1994 },
1713 { 1995 {
1714 "out-of-process-pdf", 1996 "out-of-process-pdf",
1715 IDS_FLAGS_OUT_OF_PROCESS_PDF_NAME, 1997 IDS_FLAGS_OUT_OF_PROCESS_PDF_NAME,
1716 IDS_FLAGS_OUT_OF_PROCESS_PDF_DESCRIPTION, 1998 IDS_FLAGS_OUT_OF_PROCESS_PDF_DESCRIPTION,
1717 kOsDesktop, 1999 kOsDesktop,
1718 SINGLE_VALUE_TYPE(switches::kOutOfProcessPdf) 2000 SINGLE_VALUE_TYPE(switches::kOutOfProcessPdf,
2001 UMA_HISTOGRAM_ID_kOutOfProcessPdf)
1719 }, 2002 },
1720 #if defined(OS_ANDROID) 2003 #if defined(OS_ANDROID)
1721 { 2004 {
1722 "enable-fast-text-autosizing", 2005 "enable-fast-text-autosizing",
1723 IDS_FLAGS_ENABLE_FAST_TEXT_AUTOSIZING_NAME, 2006 IDS_FLAGS_ENABLE_FAST_TEXT_AUTOSIZING_NAME,
1724 IDS_FLAGS_ENABLE_FAST_TEXT_AUTOSIZING_DESCRIPTION, 2007 IDS_FLAGS_ENABLE_FAST_TEXT_AUTOSIZING_DESCRIPTION,
1725 kOsAndroid, 2008 kOsAndroid,
1726 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableFastTextAutosizing, 2009 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableFastTextAutosizing,
1727 switches::kDisableFastTextAutosizing) 2010 UMA_HISTOGRAM_ID_kEnableFastTextAutosizing,
2011 switches::kDisableFastTextAutosizing,
2012 UMA_HISTOGRAM_ID_kDisableFastTextAutosizing)
1728 }, 2013 },
1729 { 2014 {
1730 "disable-cast", 2015 "disable-cast",
1731 IDS_FLAGS_DISABLE_CAST_NAME, 2016 IDS_FLAGS_DISABLE_CAST_NAME,
1732 IDS_FLAGS_DISABLE_CAST_DESCRIPTION, 2017 IDS_FLAGS_DISABLE_CAST_DESCRIPTION,
1733 kOsAndroid, 2018 kOsAndroid,
1734 SINGLE_VALUE_TYPE(switches::kDisableCast) 2019 SINGLE_VALUE_TYPE(switches::kDisableCast, UMA_HISTOGRAM_ID_kDisableCast)
1735 }, 2020 },
1736 { 2021 {
1737 "prefetch-search-results", 2022 "prefetch-search-results",
1738 IDS_FLAGS_PREFETCH_SEARCH_RESULTS_NAME, 2023 IDS_FLAGS_PREFETCH_SEARCH_RESULTS_NAME,
1739 IDS_FLAGS_PREFETCH_SEARCH_RESULTS_DESCRIPTION, 2024 IDS_FLAGS_PREFETCH_SEARCH_RESULTS_DESCRIPTION,
1740 kOsAndroid, 2025 kOsAndroid,
1741 SINGLE_VALUE_TYPE(switches::kPrefetchSearchResults) 2026 SINGLE_VALUE_TYPE(switches::kPrefetchSearchResults,
2027 UMA_HISTOGRAM_ID_kPrefetchSearchResults)
1742 }, 2028 },
1743 #endif 2029 #endif
1744 #if defined(ENABLE_APP_LIST) 2030 #if defined(ENABLE_APP_LIST)
1745 { 2031 {
1746 "enable-experimental-app-list", 2032 "enable-experimental-app-list",
1747 IDS_FLAGS_ENABLE_EXPERIMENTAL_APP_LIST_NAME, 2033 IDS_FLAGS_ENABLE_EXPERIMENTAL_APP_LIST_NAME,
1748 IDS_FLAGS_ENABLE_EXPERIMENTAL_APP_LIST_DESCRIPTION, 2034 IDS_FLAGS_ENABLE_EXPERIMENTAL_APP_LIST_DESCRIPTION,
1749 kOsWin | kOsLinux | kOsCrOS, 2035 kOsWin | kOsLinux | kOsCrOS,
1750 SINGLE_VALUE_TYPE(app_list::switches::kEnableExperimentalAppList) 2036 SINGLE_VALUE_TYPE(app_list::switches::kEnableExperimentalAppList,
2037 UMA_HISTOGRAM_ID_kEnableExperimentalAppList)
1751 }, 2038 },
1752 { 2039 {
1753 "enable-centered-app-list", 2040 "enable-centered-app-list",
1754 IDS_FLAGS_ENABLE_CENTERED_APP_LIST_NAME, 2041 IDS_FLAGS_ENABLE_CENTERED_APP_LIST_NAME,
1755 IDS_FLAGS_ENABLE_CENTERED_APP_LIST_DESCRIPTION, 2042 IDS_FLAGS_ENABLE_CENTERED_APP_LIST_DESCRIPTION,
1756 kOsWin | kOsLinux | kOsCrOS, 2043 kOsWin | kOsLinux | kOsCrOS,
1757 SINGLE_VALUE_TYPE(app_list::switches::kEnableCenteredAppList) 2044 SINGLE_VALUE_TYPE(app_list::switches::kEnableCenteredAppList,
2045 UMA_HISTOGRAM_ID_kEnableCenteredAppList)
1758 }, 2046 },
1759 #endif 2047 #endif
1760 { 2048 {
1761 "touch-scrolling-mode", 2049 "touch-scrolling-mode",
1762 IDS_FLAGS_TOUCH_SCROLLING_MODE_NAME, 2050 IDS_FLAGS_TOUCH_SCROLLING_MODE_NAME,
1763 IDS_FLAGS_TOUCH_SCROLLING_MODE_DESCRIPTION, 2051 IDS_FLAGS_TOUCH_SCROLLING_MODE_DESCRIPTION,
1764 kOsWin | kOsLinux | kOsCrOS | kOsAndroid, 2052 kOsWin | kOsLinux | kOsCrOS | kOsAndroid,
1765 MULTI_VALUE_TYPE(kTouchScrollingModeChoices) 2053 MULTI_VALUE_TYPE(kTouchScrollingModeChoices)
1766 }, 2054 },
1767 { 2055 {
1768 "bleeding-edge-renderer-mode", 2056 "bleeding-edge-renderer-mode",
1769 IDS_FLAGS_BLEEDING_RENDERER_NAME, 2057 IDS_FLAGS_BLEEDING_RENDERER_NAME,
1770 IDS_FLAGS_BLEEDING_RENDERER_DESCRIPTION, 2058 IDS_FLAGS_BLEEDING_RENDERER_DESCRIPTION,
1771 kOsAndroid, 2059 kOsAndroid,
1772 SINGLE_VALUE_TYPE(switches::kEnableBleedingEdgeRenderingFastPaths) 2060 SINGLE_VALUE_TYPE(switches::kEnableBleedingEdgeRenderingFastPaths,
2061 UMA_HISTOGRAM_ID_kEnableBleedingEdgeRenderingFastPaths)
1773 }, 2062 },
1774 { 2063 {
1775 "enable-settings-window", 2064 "enable-settings-window",
1776 IDS_FLAGS_ENABLE_SETTINGS_WINDOW_NAME, 2065 IDS_FLAGS_ENABLE_SETTINGS_WINDOW_NAME,
1777 IDS_FLAGS_ENABLE_SETTINGS_WINDOW_DESCRIPTION, 2066 IDS_FLAGS_ENABLE_SETTINGS_WINDOW_DESCRIPTION,
1778 kOsDesktop, 2067 kOsDesktop,
1779 MULTI_VALUE_TYPE(kEnableSettingsWindowChoices) 2068 MULTI_VALUE_TYPE(kEnableSettingsWindowChoices)
1780 }, 2069 },
1781 #if defined(OS_ANDROID) 2070 #if defined(OS_ANDROID)
1782 { 2071 {
1783 "enable-instant-search-clicks", 2072 "enable-instant-search-clicks",
1784 IDS_FLAGS_ENABLE_INSTANT_SEARCH_CLICKS_NAME, 2073 IDS_FLAGS_ENABLE_INSTANT_SEARCH_CLICKS_NAME,
1785 IDS_FLAGS_ENABLE_INSTANT_SEARCH_CLICKS_DESCRIPTION, 2074 IDS_FLAGS_ENABLE_INSTANT_SEARCH_CLICKS_DESCRIPTION,
1786 kOsAndroid, 2075 kOsAndroid,
1787 SINGLE_VALUE_TYPE(switches::kEnableInstantSearchClicks) 2076 SINGLE_VALUE_TYPE(switches::kEnableInstantSearchClicks,
2077 UMA_HISTOGRAM_ID_kEnableInstantSearchClicks)
1788 }, 2078 },
1789 #endif 2079 #endif
1790 { 2080 {
1791 "enable-save-password-bubble", 2081 "enable-save-password-bubble",
1792 IDS_FLAGS_ENABLE_SAVE_PASSWORD_BUBBLE_NAME, 2082 IDS_FLAGS_ENABLE_SAVE_PASSWORD_BUBBLE_NAME,
1793 IDS_FLAGS_ENABLE_SAVE_PASSWORD_BUBBLE_DESCRIPTION, 2083 IDS_FLAGS_ENABLE_SAVE_PASSWORD_BUBBLE_DESCRIPTION,
1794 kOsWin | kOsLinux | kOsCrOS, 2084 kOsWin | kOsLinux | kOsCrOS,
1795 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableSavePasswordBubble, 2085 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableSavePasswordBubble,
1796 switches::kDisableSavePasswordBubble) 2086 UMA_HISTOGRAM_ID_kEnableSavePasswordBubble,
2087 switches::kDisableSavePasswordBubble,
2088 UMA_HISTOGRAM_ID_kDisableSavePasswordBubble)
1797 }, 2089 },
1798 #if defined(GOOGLE_CHROME_BUILD) 2090 #if defined(GOOGLE_CHROME_BUILD)
1799 { 2091 {
1800 "enable-easy-unlock", 2092 "enable-easy-unlock",
1801 IDS_FLAGS_ENABLE_EASY_UNLOCK_NAME, 2093 IDS_FLAGS_ENABLE_EASY_UNLOCK_NAME,
1802 IDS_FLAGS_ENABLE_EASY_UNLOCK_DESCRIPTION, 2094 IDS_FLAGS_ENABLE_EASY_UNLOCK_DESCRIPTION,
1803 kOsCrOS, 2095 kOsCrOS,
1804 SINGLE_VALUE_TYPE(switches::kEnableEasyUnlock) 2096 SINGLE_VALUE_TYPE(switches::kEnableEasyUnlock,
2097 UMA_HISTOGRAM_ID_kEnableEasyUnlock)
1805 }, 2098 },
1806 #endif 2099 #endif
1807 { 2100 {
1808 "disable-embedded-shared-worker", 2101 "disable-embedded-shared-worker",
1809 IDS_FLAGS_DISABLE_EMBEDDED_SHARED_WORKER_NAME, 2102 IDS_FLAGS_DISABLE_EMBEDDED_SHARED_WORKER_NAME,
1810 IDS_FLAGS_DISABLE_EMBEDDED_SHARED_WORKER_DESCRIPTION, 2103 IDS_FLAGS_DISABLE_EMBEDDED_SHARED_WORKER_DESCRIPTION,
1811 kOsDesktop, 2104 kOsDesktop,
1812 SINGLE_VALUE_TYPE(switches::kDisableEmbeddedSharedWorker) 2105 SINGLE_VALUE_TYPE(switches::kDisableEmbeddedSharedWorker,
2106 UMA_HISTOGRAM_ID_kDisableEmbeddedSharedWorker)
1813 }, 2107 },
1814 #if defined(OS_CHROMEOS) 2108 #if defined(OS_CHROMEOS)
1815 { 2109 {
1816 "enable-filemanager-mtp", 2110 "enable-filemanager-mtp",
1817 IDS_FLAGS_ENABLE_FILE_MANAGER_MTP_NAME, 2111 IDS_FLAGS_ENABLE_FILE_MANAGER_MTP_NAME,
1818 IDS_FLAGS_ENABLE_FILE_MANAGER_MTP_DESCRIPTION, 2112 IDS_FLAGS_ENABLE_FILE_MANAGER_MTP_DESCRIPTION,
1819 kOsCrOS, 2113 kOsCrOS,
1820 MULTI_VALUE_TYPE(kEnableFileManagerMTPChoices) 2114 MULTI_VALUE_TYPE(kEnableFileManagerMTPChoices)
1821 }, 2115 },
1822 #endif 2116 #endif
1823 // TODO(tyoshino): Remove this temporary flag and command line switch. See 2117 // TODO(tyoshino): Remove this temporary flag and command line switch. See
1824 // crbug.com/366483 for the target milestone. 2118 // crbug.com/366483 for the target milestone.
1825 { 2119 {
1826 "allow-insecure-websocket-from-https-origin", 2120 "allow-insecure-websocket-from-https-origin",
1827 IDS_FLAGS_ALLOW_INSECURE_WEBSOCKET_FROM_HTTPS_ORIGIN_NAME, 2121 IDS_FLAGS_ALLOW_INSECURE_WEBSOCKET_FROM_HTTPS_ORIGIN_NAME,
1828 IDS_FLAGS_ALLOW_INSECURE_WEBSOCKET_FROM_HTTPS_ORIGIN_DESCRIPTION, 2122 IDS_FLAGS_ALLOW_INSECURE_WEBSOCKET_FROM_HTTPS_ORIGIN_DESCRIPTION,
1829 kOsAll, 2123 kOsAll,
1830 SINGLE_VALUE_TYPE(switches::kAllowInsecureWebSocketFromHttpsOrigin) 2124 SINGLE_VALUE_TYPE(
2125 switches::kAllowInsecureWebSocketFromHttpsOrigin,
2126 UMA_HISTOGRAM_ID_kAllowInsecureWebSocketFromHttpsOrigin)
1831 }, 2127 },
1832 #if defined(OS_MACOSX) 2128 #if defined(OS_MACOSX)
1833 { 2129 {
1834 "apps-keep-chrome-alive", 2130 "apps-keep-chrome-alive",
1835 IDS_FLAGS_APPS_KEEP_CHROME_ALIVE_NAME, 2131 IDS_FLAGS_APPS_KEEP_CHROME_ALIVE_NAME,
1836 IDS_FLAGS_APPS_KEEP_CHROME_ALIVE_DESCRIPTION, 2132 IDS_FLAGS_APPS_KEEP_CHROME_ALIVE_DESCRIPTION,
1837 kOsMac, 2133 kOsMac,
1838 SINGLE_VALUE_TYPE(switches::kAppsKeepChromeAlive) 2134 SINGLE_VALUE_TYPE(switches::kAppsKeepChromeAlive,
2135 UMA_HISTOGRAM_ID_kAppsKeepChromeAlive)
1839 }, 2136 },
1840 #endif 2137 #endif
1841 { 2138 {
1842 "enable-apps-file-associations", 2139 "enable-apps-file-associations",
1843 IDS_FLAGS_ENABLE_APPS_FILE_ASSOCIATIONS_NAME, 2140 IDS_FLAGS_ENABLE_APPS_FILE_ASSOCIATIONS_NAME,
1844 IDS_FLAGS_ENABLE_APPS_FILE_ASSOCIATIONS_DESCRIPTION, 2141 IDS_FLAGS_ENABLE_APPS_FILE_ASSOCIATIONS_DESCRIPTION,
1845 kOsMac, 2142 kOsMac,
1846 SINGLE_VALUE_TYPE(switches::kEnableAppsFileAssociations) 2143 SINGLE_VALUE_TYPE(switches::kEnableAppsFileAssociations,
2144 UMA_HISTOGRAM_ID_kEnableAppsFileAssociations)
1847 }, 2145 },
1848 #if defined(OS_ANDROID) 2146 #if defined(OS_ANDROID)
1849 { 2147 {
1850 "enable-embeddedsearch-api", 2148 "enable-embeddedsearch-api",
1851 IDS_FLAGS_ENABLE_EMBEDDEDSEARCH_API_NAME, 2149 IDS_FLAGS_ENABLE_EMBEDDEDSEARCH_API_NAME,
1852 IDS_FLAGS_ENABLE_EMBEDDEDSEARCH_API_DESCRIPTION, 2150 IDS_FLAGS_ENABLE_EMBEDDEDSEARCH_API_DESCRIPTION,
1853 kOsAndroid, 2151 kOsAndroid,
1854 SINGLE_VALUE_TYPE(switches::kEnableEmbeddedSearchAPI) 2152 SINGLE_VALUE_TYPE(switches::kEnableEmbeddedSearchAPI,
2153 UMA_HISTOGRAM_ID_kEnableEmbeddedSearchAPI)
1855 }, 2154 },
1856 { 2155 {
1857 "enable-app-install-alerts", 2156 "enable-app-install-alerts",
1858 IDS_FLAGS_ENABLE_APP_INSTALL_ALERTS_NAME, 2157 IDS_FLAGS_ENABLE_APP_INSTALL_ALERTS_NAME,
1859 IDS_FLAGS_ENABLE_APP_INSTALL_ALERTS_DESCRIPTION, 2158 IDS_FLAGS_ENABLE_APP_INSTALL_ALERTS_DESCRIPTION,
1860 kOsAndroid, 2159 kOsAndroid,
1861 SINGLE_VALUE_TYPE(switches::kEnableAppInstallAlerts) 2160 SINGLE_VALUE_TYPE(switches::kEnableAppInstallAlerts,
2161 UMA_HISTOGRAM_ID_kEnableAppInstallAlerts)
1862 }, 2162 },
1863 #endif 2163 #endif
1864 { 2164 {
1865 "distance-field-text", 2165 "distance-field-text",
1866 IDS_FLAGS_DISTANCE_FIELD_TEXT_NAME, 2166 IDS_FLAGS_DISTANCE_FIELD_TEXT_NAME,
1867 IDS_FLAGS_DISTANCE_FIELD_TEXT_DESCRIPTION, 2167 IDS_FLAGS_DISTANCE_FIELD_TEXT_DESCRIPTION,
1868 kOsAll, 2168 kOsAll,
1869 MULTI_VALUE_TYPE(kDistanceFieldTextChoices) 2169 MULTI_VALUE_TYPE(kDistanceFieldTextChoices)
1870 }, 2170 },
1871 { 2171 {
1872 "extension-content-verification", 2172 "extension-content-verification",
1873 IDS_FLAGS_EXTENSION_CONTENT_VERIFICATION_NAME, 2173 IDS_FLAGS_EXTENSION_CONTENT_VERIFICATION_NAME,
1874 IDS_FLAGS_EXTENSION_CONTENT_VERIFICATION_DESCRIPTION, 2174 IDS_FLAGS_EXTENSION_CONTENT_VERIFICATION_DESCRIPTION,
1875 kOsDesktop, 2175 kOsDesktop,
1876 MULTI_VALUE_TYPE(kExtensionContentVerificationChoices) 2176 MULTI_VALUE_TYPE(kExtensionContentVerificationChoices)
1877 }, 2177 },
1878 #if defined(USE_AURA) 2178 #if defined(USE_AURA)
1879 { 2179 {
1880 "text-input-focus-manager", 2180 "text-input-focus-manager",
1881 IDS_FLAGS_TEXT_INPUT_FOCUS_MANAGER_NAME, 2181 IDS_FLAGS_TEXT_INPUT_FOCUS_MANAGER_NAME,
1882 IDS_FLAGS_TEXT_INPUT_FOCUS_MANAGER_DESCRIPTION, 2182 IDS_FLAGS_TEXT_INPUT_FOCUS_MANAGER_DESCRIPTION,
1883 kOsCrOS | kOsLinux | kOsWin, 2183 kOsCrOS | kOsLinux | kOsWin,
1884 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableTextInputFocusManager, 2184 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableTextInputFocusManager,
1885 switches::kDisableTextInputFocusManager) 2185 UMA_HISTOGRAM_ID_kEnableTextInputFocusManager,
2186 switches::kDisableTextInputFocusManager,
2187 UMA_HISTOGRAM_ID_kDisableTextInputFocusManager)
1886 }, 2188 },
1887 #endif 2189 #endif
1888 { 2190 {
1889 "extension-active-script-permission", 2191 "extension-active-script-permission",
1890 IDS_FLAGS_USER_CONSENT_FOR_EXTENSION_SCRIPTS_NAME, 2192 IDS_FLAGS_USER_CONSENT_FOR_EXTENSION_SCRIPTS_NAME,
1891 IDS_FLAGS_USER_CONSENT_FOR_EXTENSION_SCRIPTS_DESCRIPTION, 2193 IDS_FLAGS_USER_CONSENT_FOR_EXTENSION_SCRIPTS_DESCRIPTION,
1892 kOsAll, 2194 kOsAll,
1893 SINGLE_VALUE_TYPE(extensions::switches::kEnableScriptsRequireAction) 2195 SINGLE_VALUE_TYPE(extensions::switches::kEnableScriptsRequireAction,
2196 UMA_HISTOGRAM_ID_kEnableScriptsRequireAction)
1894 }, 2197 },
1895 { 2198 {
1896 "enable-harfbuzz-rendertext", 2199 "enable-harfbuzz-rendertext",
1897 IDS_FLAGS_ENABLE_HARFBUZZ_RENDERTEXT_NAME, 2200 IDS_FLAGS_ENABLE_HARFBUZZ_RENDERTEXT_NAME,
1898 IDS_FLAGS_ENABLE_HARFBUZZ_RENDERTEXT_DESCRIPTION, 2201 IDS_FLAGS_ENABLE_HARFBUZZ_RENDERTEXT_DESCRIPTION,
1899 kOsDesktop, 2202 kOsDesktop,
1900 SINGLE_VALUE_TYPE(switches::kEnableHarfBuzzRenderText) 2203 SINGLE_VALUE_TYPE(switches::kEnableHarfBuzzRenderText,
2204 UMA_HISTOGRAM_ID_kEnableHarfBuzzRenderText)
1901 }, 2205 },
1902 #if defined(OS_ANDROID) 2206 #if defined(OS_ANDROID)
1903 { 2207 {
1904 "enable-answers-in-suggest", 2208 "enable-answers-in-suggest",
1905 IDS_FLAGS_ENABLE_ANSWERS_IN_SUGGEST_NAME, 2209 IDS_FLAGS_ENABLE_ANSWERS_IN_SUGGEST_NAME,
1906 IDS_FLAGS_ENABLE_ANSWERS_IN_SUGGEST_DESCRIPTION, 2210 IDS_FLAGS_ENABLE_ANSWERS_IN_SUGGEST_DESCRIPTION,
1907 kOsAndroid, 2211 kOsAndroid,
1908 SINGLE_VALUE_TYPE(switches::kEnableAnswersInSuggest) 2212 SINGLE_VALUE_TYPE(switches::kEnableAnswersInSuggest,
2213 UMA_HISTOGRAM_ID_kEnableAnswersInSuggest)
1909 }, 2214 },
1910 #endif 2215 #endif
1911 { 2216 {
1912 "ssl-interstitial-version", 2217 "ssl-interstitial-version",
1913 IDS_FLAGS_SSL_INTERSTITIAL_TRIAL_NAME, 2218 IDS_FLAGS_SSL_INTERSTITIAL_TRIAL_NAME,
1914 IDS_FLAGS_SSL_INTERSTITIAL_TRIAL_DESCRIPTION, 2219 IDS_FLAGS_SSL_INTERSTITIAL_TRIAL_DESCRIPTION,
1915 kOsAll, 2220 kOsAll,
1916 MULTI_VALUE_TYPE(kSSLInterstitialVersions) 2221 MULTI_VALUE_TYPE(kSSLInterstitialVersions)
1917 }, 2222 },
1918 { 2223 {
1919 "malware-interstitial-version", 2224 "malware-interstitial-version",
1920 IDS_FLAGS_MALWARE_INTERSTITIAL_TRIAL_NAME, 2225 IDS_FLAGS_MALWARE_INTERSTITIAL_TRIAL_NAME,
1921 IDS_FLAGS_MALWARE_INTERSTITIAL_TRIAL_DESCRIPTION, 2226 IDS_FLAGS_MALWARE_INTERSTITIAL_TRIAL_DESCRIPTION,
1922 kOsAll, 2227 kOsAll,
1923 MULTI_VALUE_TYPE(kMalwareInterstitialVersions) 2228 MULTI_VALUE_TYPE(kMalwareInterstitialVersions)
1924 }, 2229 },
1925 #if defined(OS_ANDROID) 2230 #if defined(OS_ANDROID)
1926 { 2231 {
1927 "enable-data-reduction-proxy-dev", 2232 "enable-data-reduction-proxy-dev",
1928 IDS_FLAGS_ENABLE_DATA_REDUCTION_PROXY_DEV_NAME, 2233 IDS_FLAGS_ENABLE_DATA_REDUCTION_PROXY_DEV_NAME,
1929 IDS_FLAGS_ENABLE_DATA_REDUCTION_PROXY_DEV_DESCRIPTION, 2234 IDS_FLAGS_ENABLE_DATA_REDUCTION_PROXY_DEV_DESCRIPTION,
1930 kOsAndroid, 2235 kOsAndroid,
1931 ENABLE_DISABLE_VALUE_TYPE( 2236 ENABLE_DISABLE_VALUE_TYPE(
1932 data_reduction_proxy::switches::kEnableDataReductionProxyDev, 2237 data_reduction_proxy::switches::kEnableDataReductionProxyDev,
1933 data_reduction_proxy::switches::kDisableDataReductionProxyDev) 2238 UMA_HISTOGRAM_ID_kEnableDataReductionProxyDev,
2239 data_reduction_proxy::switches::kDisableDataReductionProxyDev,
2240 UMA_HISTOGRAM_ID_kDisableDataReductionProxyDev)
1934 }, 2241 },
1935 #endif 2242 #endif
1936 }; 2243 };
1937 2244
1938 const Experiment* experiments = kExperiments; 2245 const Experiment* experiments = kExperiments;
1939 size_t num_experiments = arraysize(kExperiments); 2246 size_t num_experiments = arraysize(kExperiments);
1940 2247
1941 // Stores and encapsulates the little state that about:flags has. 2248 // Stores and encapsulates the little state that about:flags has.
1942 class FlagsState { 2249 class FlagsState {
1943 public: 2250 public:
1944 FlagsState() : needs_restart_(false) {} 2251 FlagsState() : needs_restart_(false) {}
1945 void ConvertFlagsToSwitches(FlagsStorage* flags_storage, 2252 void ConvertFlagsToSwitches(FlagsStorage* flags_storage,
1946 CommandLine* command_line, 2253 CommandLine* command_line,
1947 SentinelsMode sentinels); 2254 SentinelsMode sentinels);
2255 const SwitchesHistogramIDs& GetSwitchesHistogramIds();
1948 bool IsRestartNeededToCommitChanges(); 2256 bool IsRestartNeededToCommitChanges();
1949 void SetExperimentEnabled( 2257 void SetExperimentEnabled(
1950 FlagsStorage* flags_storage, 2258 FlagsStorage* flags_storage,
1951 const std::string& internal_name, 2259 const std::string& internal_name,
1952 bool enable); 2260 bool enable);
1953 void RemoveFlagsSwitches( 2261 void RemoveFlagsSwitches(
1954 std::map<std::string, CommandLine::StringType>* switch_list); 2262 std::map<std::string, CommandLine::StringType>* switch_list);
1955 void ResetAllFlags(FlagsStorage* flags_storage); 2263 void ResetAllFlags(FlagsStorage* flags_storage);
1956 void reset(); 2264 void reset();
1957 2265
1958 // Returns the singleton instance of this class 2266 // Returns the singleton instance of this class
1959 static FlagsState* GetInstance() { 2267 static FlagsState* GetInstance() {
1960 return Singleton<FlagsState>::get(); 2268 return Singleton<FlagsState>::get();
1961 } 2269 }
1962 2270
1963 private: 2271 private:
1964 bool needs_restart_; 2272 bool needs_restart_;
1965 std::map<std::string, std::string> flags_switches_; 2273 std::map<std::string, std::string> flags_switches_;
2274 // Lazy initialized by GetSwitchesHistogramIds().
2275 SwitchesHistogramIDs switches_histogram_id_;
1966 2276
1967 DISALLOW_COPY_AND_ASSIGN(FlagsState); 2277 DISALLOW_COPY_AND_ASSIGN(FlagsState);
1968 }; 2278 };
1969 2279
1970 // Adds the internal names for the specified experiment to |names|. 2280 // Adds the internal names for the specified experiment to |names|.
1971 void AddInternalName(const Experiment& e, std::set<std::string>* names) { 2281 void AddInternalName(const Experiment& e, std::set<std::string>* names) {
1972 if (e.type == Experiment::SINGLE_VALUE) { 2282 if (e.type == Experiment::SINGLE_VALUE) {
1973 names->insert(e.internal_name); 2283 names->insert(e.internal_name);
1974 } else { 2284 } else {
1975 DCHECK(e.type == Experiment::MULTI_VALUE || 2285 DCHECK(e.type == Experiment::MULTI_VALUE ||
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
2136 } 2446 }
2137 2447
2138 void ConvertFlagsToSwitches(FlagsStorage* flags_storage, 2448 void ConvertFlagsToSwitches(FlagsStorage* flags_storage,
2139 CommandLine* command_line, 2449 CommandLine* command_line,
2140 SentinelsMode sentinels) { 2450 SentinelsMode sentinels) {
2141 FlagsState::GetInstance()->ConvertFlagsToSwitches(flags_storage, 2451 FlagsState::GetInstance()->ConvertFlagsToSwitches(flags_storage,
2142 command_line, 2452 command_line,
2143 sentinels); 2453 sentinels);
2144 } 2454 }
2145 2455
2456 const SwitchesHistogramIDs& GetSwitchesHistogramIds() {
2457 return FlagsState::GetInstance()->GetSwitchesHistogramIds();
2458 }
2459
2146 bool AreSwitchesIdenticalToCurrentCommandLine( 2460 bool AreSwitchesIdenticalToCurrentCommandLine(
2147 const CommandLine& new_cmdline, const CommandLine& active_cmdline) { 2461 const CommandLine& new_cmdline,
2462 const CommandLine& active_cmdline,
2463 std::set<CommandLine::StringType>* out_difference) {
2148 std::set<CommandLine::StringType> new_flags = 2464 std::set<CommandLine::StringType> new_flags =
2149 ExtractFlagsFromCommandLine(new_cmdline); 2465 ExtractFlagsFromCommandLine(new_cmdline);
2150 std::set<CommandLine::StringType> active_flags = 2466 std::set<CommandLine::StringType> active_flags =
2151 ExtractFlagsFromCommandLine(active_cmdline); 2467 ExtractFlagsFromCommandLine(active_cmdline);
2152 2468
2469 bool result = false;
2153 // Needed because std::equal doesn't check if the 2nd set is empty. 2470 // Needed because std::equal doesn't check if the 2nd set is empty.
2154 if (new_flags.size() != active_flags.size()) 2471 if (new_flags.size() == active_flags.size()) {
2155 return false; 2472 result =
2473 std::equal(new_flags.begin(), new_flags.end(), active_flags.begin());
2474 }
2156 2475
2157 return std::equal(new_flags.begin(), new_flags.end(), active_flags.begin()); 2476 if (out_difference && !result) {
2477 std::set_symmetric_difference(
2478 new_flags.begin(),
2479 new_flags.end(),
2480 active_flags.begin(),
2481 active_flags.end(),
2482 std::inserter(*out_difference, out_difference->begin()));
2483 }
2484
2485 return result;
2158 } 2486 }
2159 2487
2160 void GetFlagsExperimentsData(FlagsStorage* flags_storage, 2488 void GetFlagsExperimentsData(FlagsStorage* flags_storage,
2161 FlagAccess access, 2489 FlagAccess access,
2162 base::ListValue* supported_experiments, 2490 base::ListValue* supported_experiments,
2163 base::ListValue* unsupported_experiments) { 2491 base::ListValue* unsupported_experiments) {
2164 std::set<std::string> enabled_experiments; 2492 std::set<std::string> enabled_experiments;
2165 GetSanitizedEnabledFlags(flags_storage, &enabled_experiments); 2493 GetSanitizedEnabledFlags(flags_storage, &enabled_experiments);
2166 2494
2167 int current_platform = GetCurrentPlatform(); 2495 int current_platform = GetCurrentPlatform();
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
2255 action += *it; 2583 action += *it;
2256 content::RecordComputedAction(action); 2584 content::RecordComputedAction(action);
2257 } 2585 }
2258 // Since flag metrics are recorded every startup, add a tick so that the 2586 // Since flag metrics are recorded every startup, add a tick so that the
2259 // stats can be made meaningful. 2587 // stats can be made meaningful.
2260 if (flags.size()) 2588 if (flags.size())
2261 content::RecordAction(UserMetricsAction("AboutFlags_StartupTick")); 2589 content::RecordAction(UserMetricsAction("AboutFlags_StartupTick"));
2262 content::RecordAction(UserMetricsAction("StartupTick")); 2590 content::RecordAction(UserMetricsAction("StartupTick"));
2263 } 2591 }
2264 2592
2593 void ReportCustomFlags(const std::string& uma_histogram_hame,
2594 const std::set<std::string>& command_line_difference) {
2595 const about_flags::SwitchesHistogramIDs& switch_histogram_id_map =
2596 about_flags::GetSwitchesHistogramIds();
2597 for (std::set<std::string>::const_iterator it =
2598 command_line_difference.begin();
2599 it != command_line_difference.end();
2600 ++it) {
2601 int uma_id = about_flags::UMA_HISTOGRAM_ID_UNKNOWN_FLAG;
2602 if (it->size() > 2) {
2603 // Skip '--' before switch name.
2604 std::string switch_name(it->substr(2));
2605
2606 // Kill value, if any.
2607 const size_t value_pos = switch_name.find('=');
2608 if (value_pos != std::string::npos)
2609 switch_name.resize(value_pos);
2610
2611 const about_flags::SwitchesHistogramIDs::const_iterator pos =
2612 switch_histogram_id_map.find(switch_name);
2613 if (pos != switch_histogram_id_map.end()) {
2614 uma_id = pos->second;
2615 } else {
2616 uma_id = about_flags::UMA_HISTOGRAM_ID_UNKNOWN_FLAG;
2617 NOTREACHED() << "ReportCustomFlags(): flag '" << *it << "' ('"
2618 << switch_name << "') is unknown.";
2619 }
2620 } else {
2621 uma_id = about_flags::UMA_HISTOGRAM_ID_BAD_FLAG_FORMAT;
2622 NOTREACHED() << "ReportCustomFlags(): flag '" << *it
2623 << "' has incorrect format.";
2624 }
2625 VLOG(1) << "ReportCustomFlags(): histogram='" << uma_histogram_hame << "' '"
2626 << *it << "', uma_id=" << uma_id;
2627
2628 // Sparse histogram macro does not cache the histogram, so it's safe
2629 // to use macro with non-static histogram name here.
2630 UMA_HISTOGRAM_SPARSE_SLOWLY(uma_histogram_hame, uma_id);
2631 }
2632 }
2633
2265 ////////////////////////////////////////////////////////////////////////////// 2634 //////////////////////////////////////////////////////////////////////////////
2266 // FlagsState implementation. 2635 // FlagsState implementation.
2267 2636
2268 namespace { 2637 namespace {
2269 2638
2270 typedef std::map<std::string, std::pair<std::string, std::string> > 2639 typedef std::map<std::string, std::pair<std::string, std::string> >
2271 NameToSwitchAndValueMap; 2640 NameToSwitchAndValueMap;
2272 2641
2273 void SetFlagToSwitchMapping(const std::string& key, 2642 void SetFlagToSwitchMapping(const std::string& key,
2274 const std::string& switch_name, 2643 const std::string& switch_name,
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
2339 flags_switches_[switch_and_value_pair.first] = switch_and_value_pair.second; 2708 flags_switches_[switch_and_value_pair.first] = switch_and_value_pair.second;
2340 } 2709 }
2341 if (sentinels == kAddSentinels) { 2710 if (sentinels == kAddSentinels) {
2342 command_line->AppendSwitch(switches::kFlagSwitchesEnd); 2711 command_line->AppendSwitch(switches::kFlagSwitchesEnd);
2343 flags_switches_.insert( 2712 flags_switches_.insert(
2344 std::pair<std::string, std::string>(switches::kFlagSwitchesEnd, 2713 std::pair<std::string, std::string>(switches::kFlagSwitchesEnd,
2345 std::string())); 2714 std::string()));
2346 } 2715 }
2347 } 2716 }
2348 2717
2718 void SetSwitchToHistogramIdMapping(const std::string& switch_name,
2719 const int switch_histogram_id,
2720 std::map<std::string, int>* out_map) {
2721 const std::pair<std::map<std::string, int>::iterator, bool> status =
2722 out_map->insert(std::make_pair(switch_name, switch_histogram_id));
2723 DCHECK(status.second || status.first->second == switch_histogram_id);
2724 }
2725
2726 const SwitchesHistogramIDs& FlagsState::GetSwitchesHistogramIds() {
2727 if (!switches_histogram_id_.empty())
2728 return switches_histogram_id_;
2729
2730 for (size_t i = 0; i < num_experiments; ++i) {
2731 const Experiment& e = experiments[i];
2732 if (e.type == Experiment::SINGLE_VALUE) {
2733 SetSwitchToHistogramIdMapping(e.command_line_switch,
2734 e.command_line_switch_histogram_id,
2735 &switches_histogram_id_);
2736 } else if (e.type == Experiment::MULTI_VALUE) {
2737 for (int j = 0; j < e.num_choices; ++j) {
2738 SetSwitchToHistogramIdMapping(
2739 e.choices[j].command_line_switch,
2740 e.choices[j].command_line_switch_histogram_id,
2741 &switches_histogram_id_);
2742 }
2743 } else {
2744 DCHECK_EQ(e.type, Experiment::ENABLE_DISABLE_VALUE);
2745 SetSwitchToHistogramIdMapping(e.command_line_switch,
2746 e.command_line_switch_histogram_id,
2747 &switches_histogram_id_);
2748 SetSwitchToHistogramIdMapping(e.disable_command_line_switch,
2749 e.disable_command_line_switch_histogram_id,
2750 &switches_histogram_id_);
2751 }
2752 }
2753 return switches_histogram_id_;
2754 }
2755
2349 bool FlagsState::IsRestartNeededToCommitChanges() { 2756 bool FlagsState::IsRestartNeededToCommitChanges() {
2350 return needs_restart_; 2757 return needs_restart_;
2351 } 2758 }
2352 2759
2353 void FlagsState::SetExperimentEnabled(FlagsStorage* flags_storage, 2760 void FlagsState::SetExperimentEnabled(FlagsStorage* flags_storage,
2354 const std::string& internal_name, 2761 const std::string& internal_name,
2355 bool enable) { 2762 bool enable) {
2356 size_t at_index = internal_name.find(testing::kMultiSeparator); 2763 size_t at_index = internal_name.find(testing::kMultiSeparator);
2357 if (at_index != std::string::npos) { 2764 if (at_index != std::string::npos) {
2358 DCHECK(enable); 2765 DCHECK(enable);
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
2454 } 2861 }
2455 2862
2456 const Experiment* GetExperiments(size_t* count) { 2863 const Experiment* GetExperiments(size_t* count) {
2457 *count = num_experiments; 2864 *count = num_experiments;
2458 return experiments; 2865 return experiments;
2459 } 2866 }
2460 2867
2461 } // namespace testing 2868 } // namespace testing
2462 2869
2463 } // namespace about_flags 2870 } // namespace about_flags
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698