OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/about_flags.h" | 5 #include "chrome/browser/about_flags.h" |
6 | 6 |
7 #include <iterator> | 7 #include <iterator> |
8 #include <map> | 8 #include <map> |
9 #include <set> | 9 #include <set> |
10 #include <utility> | 10 #include <utility> |
11 | 11 |
12 #include "base/bind.h" | 12 #include "base/bind.h" |
13 #include "base/callback.h" | 13 #include "base/callback.h" |
14 #include "base/command_line.h" | 14 #include "base/command_line.h" |
15 #include "base/feature_list.h" | 15 #include "base/feature_list.h" |
| 16 #include "base/i18n/base_i18n_switches.h" |
16 #include "base/memory/singleton.h" | 17 #include "base/memory/singleton.h" |
17 #include "base/metrics/metrics_hashes.h" | 18 #include "base/metrics/metrics_hashes.h" |
18 #include "base/metrics/sparse_histogram.h" | 19 #include "base/metrics/sparse_histogram.h" |
19 #include "base/stl_util.h" | 20 #include "base/stl_util.h" |
20 #include "base/strings/string_number_conversions.h" | 21 #include "base/strings/string_number_conversions.h" |
21 #include "base/strings/string_util.h" | 22 #include "base/strings/string_util.h" |
22 #include "base/strings/utf_string_conversions.h" | 23 #include "base/strings/utf_string_conversions.h" |
23 #include "base/values.h" | 24 #include "base/values.h" |
24 #include "cc/base/switches.h" | 25 #include "cc/base/switches.h" |
25 #include "chrome/common/channel_info.h" | 26 #include "chrome/common/channel_info.h" |
(...skipping 480 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
506 "application/x-google-chrome-pdf,application/pdf"}, | 507 "application/x-google-chrome-pdf,application/pdf"}, |
507 {IDS_FLAGS_PPAPI_WIN32K_LOCKDOWN_FLASH_AND_PDF, | 508 {IDS_FLAGS_PPAPI_WIN32K_LOCKDOWN_FLASH_AND_PDF, |
508 switches::kEnableWin32kLockDownMimeTypes, | 509 switches::kEnableWin32kLockDownMimeTypes, |
509 "application/x-shockwave-flash,application/futuresplash," | 510 "application/x-shockwave-flash,application/futuresplash," |
510 "application/x-google-chrome-pdf,application/pdf"}, | 511 "application/x-google-chrome-pdf,application/pdf"}, |
511 {IDS_FLAGS_PPAPI_WIN32K_LOCKDOWN_ALL, | 512 {IDS_FLAGS_PPAPI_WIN32K_LOCKDOWN_ALL, |
512 switches::kEnableWin32kLockDownMimeTypes, "*"}, | 513 switches::kEnableWin32kLockDownMimeTypes, "*"}, |
513 }; | 514 }; |
514 #endif // defined(OS_WIN) | 515 #endif // defined(OS_WIN) |
515 | 516 |
| 517 const FeatureEntry::Choice kForceUIDirectionChoices[] = { |
| 518 {IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", ""}, |
| 519 {IDS_FLAGS_FORCE_UI_DIRECTION_LTR, switches::kForceUIDirection, |
| 520 switches::kForceUIDirectionLTR}, |
| 521 {IDS_FLAGS_FORCE_UI_DIRECTION_RTL, switches::kForceUIDirection, |
| 522 switches::kForceUIDirectionRTL}, |
| 523 }; |
| 524 |
516 // RECORDING USER METRICS FOR FLAGS: | 525 // RECORDING USER METRICS FOR FLAGS: |
517 // ----------------------------------------------------------------------------- | 526 // ----------------------------------------------------------------------------- |
518 // The first line of the entry is the internal name. If you'd like to gather | 527 // The first line of the entry is the internal name. If you'd like to gather |
519 // statistics about the usage of your flag, you should append a marker comment | 528 // statistics about the usage of your flag, you should append a marker comment |
520 // to the end of the feature name, like so: | 529 // to the end of the feature name, like so: |
521 // "my-special-feature", // FLAGS:RECORD_UMA | 530 // "my-special-feature", // FLAGS:RECORD_UMA |
522 // | 531 // |
523 // After doing that, run | 532 // After doing that, run |
524 // tools/metrics/actions/extract_actions.py | 533 // tools/metrics/actions/extract_actions.py |
525 // to add the metric to actions.xml (which will enable UMA to record your | 534 // to add the metric to actions.xml (which will enable UMA to record your |
(...skipping 1556 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2082 IDS_FLAGS_ENABLE_MATERIAL_DESIGN_HISTORY_DESCRIPTION, | 2091 IDS_FLAGS_ENABLE_MATERIAL_DESIGN_HISTORY_DESCRIPTION, |
2083 kOsDesktop | kOsAndroid, | 2092 kOsDesktop | kOsAndroid, |
2084 SINGLE_VALUE_TYPE(switches::kEnableMaterialDesignHistory)}, | 2093 SINGLE_VALUE_TYPE(switches::kEnableMaterialDesignHistory)}, |
2085 #if defined(OS_WIN) | 2094 #if defined(OS_WIN) |
2086 {"enable-windows-desktop-search-redirection", | 2095 {"enable-windows-desktop-search-redirection", |
2087 IDS_FLAGS_WINDOWS_DESKTOP_SEARCH_REDIRECTION_NAME, | 2096 IDS_FLAGS_WINDOWS_DESKTOP_SEARCH_REDIRECTION_NAME, |
2088 IDS_FLAGS_WINDOWS_DESKTOP_SEARCH_REDIRECTION_DESCRIPTION, | 2097 IDS_FLAGS_WINDOWS_DESKTOP_SEARCH_REDIRECTION_DESCRIPTION, |
2089 kOsWin, | 2098 kOsWin, |
2090 FEATURE_VALUE_TYPE(kWindowsDesktopSearchRedirectionFeature)}, | 2099 FEATURE_VALUE_TYPE(kWindowsDesktopSearchRedirectionFeature)}, |
2091 #endif // defined(OS_WIN) | 2100 #endif // defined(OS_WIN) |
| 2101 {"force-ui-direction", |
| 2102 IDS_FLAGS_FORCE_UI_DIRECTION_NAME, |
| 2103 IDS_FLAGS_FORCE_UI_DIRECTION_DESCRIPTION, |
| 2104 kOsAll, |
| 2105 MULTI_VALUE_TYPE(kForceUIDirectionChoices)}, |
2092 // NOTE: Adding new command-line switches requires adding corresponding | 2106 // NOTE: Adding new command-line switches requires adding corresponding |
2093 // entries to enum "LoginCustomFlags" in histograms.xml. See note in | 2107 // entries to enum "LoginCustomFlags" in histograms.xml. See note in |
2094 // histograms.xml and don't forget to run AboutFlagsHistogramTest unit test. | 2108 // histograms.xml and don't forget to run AboutFlagsHistogramTest unit test. |
2095 }; | 2109 }; |
2096 | 2110 |
2097 class FlagsStateSingleton { | 2111 class FlagsStateSingleton { |
2098 public: | 2112 public: |
2099 FlagsStateSingleton() | 2113 FlagsStateSingleton() |
2100 : flags_state_(kFeatureEntries, arraysize(kFeatureEntries)) {} | 2114 : flags_state_(kFeatureEntries, arraysize(kFeatureEntries)) {} |
2101 ~FlagsStateSingleton() {} | 2115 ~FlagsStateSingleton() {} |
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2295 const base::HistogramBase::Sample kBadSwitchFormatHistogramId = 0; | 2309 const base::HistogramBase::Sample kBadSwitchFormatHistogramId = 0; |
2296 | 2310 |
2297 const FeatureEntry* GetFeatureEntries(size_t* count) { | 2311 const FeatureEntry* GetFeatureEntries(size_t* count) { |
2298 *count = arraysize(kFeatureEntries); | 2312 *count = arraysize(kFeatureEntries); |
2299 return kFeatureEntries; | 2313 return kFeatureEntries; |
2300 } | 2314 } |
2301 | 2315 |
2302 } // namespace testing | 2316 } // namespace testing |
2303 | 2317 |
2304 } // namespace about_flags | 2318 } // namespace about_flags |
OLD | NEW |