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

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

Powered by Google App Engine
This is Rietveld 408576698