Chromium Code Reviews| 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> |
| (...skipping 627 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 638 }; | 638 }; |
| 639 | 639 |
| 640 const FeatureEntry::Choice kSSLVersionMaxChoices[] = { | 640 const FeatureEntry::Choice kSSLVersionMaxChoices[] = { |
| 641 {IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, | 641 {IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", "" }, |
| 642 {IDS_FLAGS_SSL_VERSION_MAX_TLS12, switches::kSSLVersionMax, "tls1.2"}, | 642 {IDS_FLAGS_SSL_VERSION_MAX_TLS12, switches::kSSLVersionMax, "tls1.2"}, |
| 643 {IDS_FLAGS_SSL_VERSION_MAX_TLS13, switches::kSSLVersionMax, "tls1.3"}, | 643 {IDS_FLAGS_SSL_VERSION_MAX_TLS13, switches::kSSLVersionMax, "tls1.3"}, |
| 644 }; | 644 }; |
| 645 | 645 |
| 646 // RECORDING USER METRICS FOR FLAGS: | 646 // RECORDING USER METRICS FOR FLAGS: |
| 647 // ----------------------------------------------------------------------------- | 647 // ----------------------------------------------------------------------------- |
| 648 // The first line of the entry is the internal name. If you'd like to gather | 648 // The first line of the entry is the internal name. |
| 649 // statistics about the usage of your flag, you should append a marker comment | |
| 650 // to the end of the feature name, like so: | |
| 651 // "my-special-feature", // FLAGS:RECORD_UMA | |
| 652 // | 649 // |
| 653 // After doing that, run | 650 // Usage of about:flags is logged on startup via the "AboutFlags.Seen" UMA |
| 654 // tools/metrics/actions/extract_actions.py | 651 // histogram. This histogram shows the number of startups with a given flag |
| 655 // to add the metric to actions.xml (which will enable UMA to record your | 652 // enabled. If you'd like to see user counts instead, make sure to switch to |
| 656 // feature flag), then update the <owner>s and <description> sections. Make sure | 653 // to "count users" view on the dashboard. |
|
Ilya Sherman
2016/08/29 21:19:59
nit: You repeat this below as well -- is that inte
Alexei Svitkine (slow)
2016/08/29 21:50:58
Nope, removed!
| |
| 657 // to include the actions.xml file when you upload your code for review! | |
| 658 // | |
| 659 // After your feature has shipped under a flag, you can locate the metrics under | |
| 660 // the action name AboutFlags_internal-action-name. Actions are recorded once | |
| 661 // per startup, so you should divide this number by AboutFlags_StartupTick to | |
| 662 // get a sense of usage. Note that this will not be the same as number of users | |
| 663 // with a given feature enabled because users can quit and relaunch the | |
| 664 // application multiple times over a given time interval. The dashboard also | |
| 665 // shows you how many (metrics reporting) users have enabled the flag over the | |
| 666 // last seven days. However, note that this is not the same as the number of | |
| 667 // users who have the flag enabled, since enabling the flag happens once, | |
| 668 // whereas running with the flag enabled happens until the user flips the flag | |
| 669 // again. | |
| 670 | 654 |
| 671 // To add a new entry, add to the end of kFeatureEntries. There are two | 655 // To add a new entry, add to the end of kFeatureEntries. There are two |
| 672 // distinct types of entries: | 656 // distinct types of entries: |
| 673 // . SINGLE_VALUE: entry is either on or off. Use the SINGLE_VALUE_TYPE | 657 // . SINGLE_VALUE: entry is either on or off. Use the SINGLE_VALUE_TYPE |
| 674 // macro for this type supplying the command line to the macro. | 658 // macro for this type supplying the command line to the macro. |
| 675 // . MULTI_VALUE: a list of choices, the first of which should correspond to a | 659 // . MULTI_VALUE: a list of choices, the first of which should correspond to a |
| 676 // deactivated state for this lab (i.e. no command line option). To specify | 660 // deactivated state for this lab (i.e. no command line option). To specify |
| 677 // this type of entry use the macro MULTI_VALUE_TYPE supplying it the | 661 // this type of entry use the macro MULTI_VALUE_TYPE supplying it the |
| 678 // array of choices. | 662 // array of choices. |
| 679 // See the documentation of FeatureEntry for details on the fields. | 663 // See the documentation of FeatureEntry for details on the fields. |
| 680 // | 664 // |
| 681 // Command-line switches must have entries in enum "LoginCustomFlags" in | 665 // Usage of about:flags is logged on startup via the "AboutFlags.Seen" UMA |
| 682 // histograms.xml. See note in histograms.xml and don't forget to run | 666 // histogram. This histogram shows the number of startups with a given flag |
| 683 // AboutFlagsHistogramTest unit test to calculate and verify checksum. | 667 // enabled. If you'd like to see user counts instead, make sure to switch to |
| 668 // to "count users" view on the dashboard. When adding new entries, the enum | |
| 669 // "LoginCustomFlags" must be updated in histograms.xml. See note in | |
| 670 // histograms.xml and don't forget to run AboutFlagsHistogramTest unit test | |
| 671 // to calculate and verify checksum. | |
|
Ilya Sherman
2016/08/29 21:19:58
Hmm, the user actions measured how often users *sw
Alexei Svitkine (slow)
2016/08/29 21:50:58
I thought so too originally, but turns out they we
| |
| 684 // | 672 // |
| 685 // When adding a new choice, add it to the end of the list. | 673 // When adding a new choice, add it to the end of the list. |
| 686 const FeatureEntry kFeatureEntries[] = { | 674 const FeatureEntry kFeatureEntries[] = { |
| 687 {"ignore-gpu-blacklist", IDS_FLAGS_IGNORE_GPU_BLACKLIST_NAME, | 675 {"ignore-gpu-blacklist", IDS_FLAGS_IGNORE_GPU_BLACKLIST_NAME, |
| 688 IDS_FLAGS_IGNORE_GPU_BLACKLIST_DESCRIPTION, kOsAll, | 676 IDS_FLAGS_IGNORE_GPU_BLACKLIST_DESCRIPTION, kOsAll, |
| 689 SINGLE_VALUE_TYPE(switches::kIgnoreGpuBlacklist)}, | 677 SINGLE_VALUE_TYPE(switches::kIgnoreGpuBlacklist)}, |
| 690 {"enable-experimental-canvas-features", | 678 {"enable-experimental-canvas-features", |
| 691 IDS_FLAGS_EXPERIMENTAL_CANVAS_FEATURES_NAME, | 679 IDS_FLAGS_EXPERIMENTAL_CANVAS_FEATURES_NAME, |
| 692 IDS_FLAGS_EXPERIMENTAL_CANVAS_FEATURES_DESCRIPTION, kOsAll, | 680 IDS_FLAGS_EXPERIMENTAL_CANVAS_FEATURES_DESCRIPTION, kOsAll, |
| 693 SINGLE_VALUE_TYPE(switches::kEnableExperimentalCanvasFeatures)}, | 681 SINGLE_VALUE_TYPE(switches::kEnableExperimentalCanvasFeatures)}, |
| (...skipping 27 matching lines...) Expand all Loading... | |
| 721 IDS_FLAGS_WEBRTC_STUN_ORIGIN_DESCRIPTION, kOsAll, | 709 IDS_FLAGS_WEBRTC_STUN_ORIGIN_DESCRIPTION, kOsAll, |
| 722 SINGLE_VALUE_TYPE(switches::kEnableWebRtcStunOrigin)}, | 710 SINGLE_VALUE_TYPE(switches::kEnableWebRtcStunOrigin)}, |
| 723 #endif | 711 #endif |
| 724 #if defined(OS_ANDROID) | 712 #if defined(OS_ANDROID) |
| 725 {"enable-osk-overscroll", IDS_FLAGS_ENABLE_OSK_OVERSCROLL_NAME, | 713 {"enable-osk-overscroll", IDS_FLAGS_ENABLE_OSK_OVERSCROLL_NAME, |
| 726 IDS_FLAGS_ENABLE_OSK_OVERSCROLL_DESCRIPTION, kOsAndroid, | 714 IDS_FLAGS_ENABLE_OSK_OVERSCROLL_DESCRIPTION, kOsAndroid, |
| 727 SINGLE_VALUE_TYPE(switches::kEnableOSKOverscroll)}, | 715 SINGLE_VALUE_TYPE(switches::kEnableOSKOverscroll)}, |
| 728 #endif | 716 #endif |
| 729 // Native client is compiled out when DISABLE_NACL is defined. | 717 // Native client is compiled out when DISABLE_NACL is defined. |
| 730 #if !defined(DISABLE_NACL) | 718 #if !defined(DISABLE_NACL) |
| 731 {"enable-nacl", // FLAGS:RECORD_UMA | 719 {"enable-nacl", IDS_FLAGS_NACL_NAME, IDS_FLAGS_NACL_DESCRIPTION, kOsAll, |
| 732 IDS_FLAGS_NACL_NAME, IDS_FLAGS_NACL_DESCRIPTION, kOsAll, | |
| 733 SINGLE_VALUE_TYPE(switches::kEnableNaCl)}, | 720 SINGLE_VALUE_TYPE(switches::kEnableNaCl)}, |
| 734 {"enable-nacl-debug", // FLAGS:RECORD_UMA | 721 {"enable-nacl-debug", IDS_FLAGS_NACL_DEBUG_NAME, |
| 735 IDS_FLAGS_NACL_DEBUG_NAME, IDS_FLAGS_NACL_DEBUG_DESCRIPTION, kOsDesktop, | 722 IDS_FLAGS_NACL_DEBUG_DESCRIPTION, kOsDesktop, |
| 736 SINGLE_VALUE_TYPE(switches::kEnableNaClDebug)}, | 723 SINGLE_VALUE_TYPE(switches::kEnableNaClDebug)}, |
| 737 {"force-pnacl-subzero", IDS_FLAGS_PNACL_SUBZERO_NAME, | 724 {"force-pnacl-subzero", IDS_FLAGS_PNACL_SUBZERO_NAME, |
| 738 IDS_FLAGS_PNACL_SUBZERO_DESCRIPTION, kOsDesktop, | 725 IDS_FLAGS_PNACL_SUBZERO_DESCRIPTION, kOsDesktop, |
| 739 SINGLE_VALUE_TYPE(switches::kForcePNaClSubzero)}, | 726 SINGLE_VALUE_TYPE(switches::kForcePNaClSubzero)}, |
| 740 {"nacl-debug-mask", // FLAGS:RECORD_UMA | 727 {"nacl-debug-mask", IDS_FLAGS_NACL_DEBUG_MASK_NAME, |
| 741 IDS_FLAGS_NACL_DEBUG_MASK_NAME, IDS_FLAGS_NACL_DEBUG_MASK_DESCRIPTION, | 728 IDS_FLAGS_NACL_DEBUG_MASK_DESCRIPTION, kOsDesktop, |
| 742 kOsDesktop, MULTI_VALUE_TYPE(kNaClDebugMaskChoices)}, | 729 MULTI_VALUE_TYPE(kNaClDebugMaskChoices)}, |
| 743 #endif | 730 #endif |
| 744 #if defined(ENABLE_EXTENSIONS) | 731 #if defined(ENABLE_EXTENSIONS) |
| 745 {"extension-apis", // FLAGS:RECORD_UMA | 732 {"extension-apis", IDS_FLAGS_EXPERIMENTAL_EXTENSION_APIS_NAME, |
| 746 IDS_FLAGS_EXPERIMENTAL_EXTENSION_APIS_NAME, | |
| 747 IDS_FLAGS_EXPERIMENTAL_EXTENSION_APIS_DESCRIPTION, kOsDesktop, | 733 IDS_FLAGS_EXPERIMENTAL_EXTENSION_APIS_DESCRIPTION, kOsDesktop, |
| 748 SINGLE_VALUE_TYPE(extensions::switches::kEnableExperimentalExtensionApis)}, | 734 SINGLE_VALUE_TYPE(extensions::switches::kEnableExperimentalExtensionApis)}, |
| 749 {"extensions-on-chrome-urls", IDS_FLAGS_EXTENSIONS_ON_CHROME_URLS_NAME, | 735 {"extensions-on-chrome-urls", IDS_FLAGS_EXTENSIONS_ON_CHROME_URLS_NAME, |
| 750 IDS_FLAGS_EXTENSIONS_ON_CHROME_URLS_DESCRIPTION, kOsAll, | 736 IDS_FLAGS_EXTENSIONS_ON_CHROME_URLS_DESCRIPTION, kOsAll, |
| 751 SINGLE_VALUE_TYPE(extensions::switches::kExtensionsOnChromeURLs)}, | 737 SINGLE_VALUE_TYPE(extensions::switches::kExtensionsOnChromeURLs)}, |
| 752 #endif | 738 #endif |
| 753 {"enable-fast-unload", IDS_FLAGS_FAST_UNLOAD_NAME, | 739 {"enable-fast-unload", IDS_FLAGS_FAST_UNLOAD_NAME, |
| 754 IDS_FLAGS_FAST_UNLOAD_DESCRIPTION, kOsAll, | 740 IDS_FLAGS_FAST_UNLOAD_DESCRIPTION, kOsAll, |
| 755 SINGLE_VALUE_TYPE(switches::kEnableFastUnload)}, | 741 SINGLE_VALUE_TYPE(switches::kEnableFastUnload)}, |
| 756 #if defined(ENABLE_EXTENSIONS) | 742 #if defined(ENABLE_EXTENSIONS) |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 768 switches::kDisableContextualSearch)}, | 754 switches::kDisableContextualSearch)}, |
| 769 #endif | 755 #endif |
| 770 {"show-autofill-type-predictions", | 756 {"show-autofill-type-predictions", |
| 771 IDS_FLAGS_SHOW_AUTOFILL_TYPE_PREDICTIONS_NAME, | 757 IDS_FLAGS_SHOW_AUTOFILL_TYPE_PREDICTIONS_NAME, |
| 772 IDS_FLAGS_SHOW_AUTOFILL_TYPE_PREDICTIONS_DESCRIPTION, kOsAll, | 758 IDS_FLAGS_SHOW_AUTOFILL_TYPE_PREDICTIONS_DESCRIPTION, kOsAll, |
| 773 SINGLE_VALUE_TYPE(autofill::switches::kShowAutofillTypePredictions)}, | 759 SINGLE_VALUE_TYPE(autofill::switches::kShowAutofillTypePredictions)}, |
| 774 {"enable-credit-card-signin-promo", | 760 {"enable-credit-card-signin-promo", |
| 775 IDS_FLAGS_ENABLE_AUTOFILL_CREDIT_CARD_SIGNIN_PROMO_NAME, | 761 IDS_FLAGS_ENABLE_AUTOFILL_CREDIT_CARD_SIGNIN_PROMO_NAME, |
| 776 IDS_FLAGS_ENABLE_AUTOFILL_CREDIT_CARD_SIGNIN_PROMO_DESCRIPTION, kOsAll, | 762 IDS_FLAGS_ENABLE_AUTOFILL_CREDIT_CARD_SIGNIN_PROMO_DESCRIPTION, kOsAll, |
| 777 FEATURE_VALUE_TYPE(autofill::kAutofillCreditCardSigninPromo)}, | 763 FEATURE_VALUE_TYPE(autofill::kAutofillCreditCardSigninPromo)}, |
| 778 {"smooth-scrolling", // FLAGS:RECORD_UMA | 764 {"smooth-scrolling", IDS_FLAGS_SMOOTH_SCROLLING_NAME, |
| 779 IDS_FLAGS_SMOOTH_SCROLLING_NAME, IDS_FLAGS_SMOOTH_SCROLLING_DESCRIPTION, | 765 IDS_FLAGS_SMOOTH_SCROLLING_DESCRIPTION, |
| 780 // Mac has a separate implementation with its own setting to disable. | 766 // Mac has a separate implementation with its own setting to disable. |
| 781 kOsLinux | kOsCrOS | kOsWin | kOsAndroid, | 767 kOsLinux | kOsCrOS | kOsWin | kOsAndroid, |
| 782 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableSmoothScrolling, | 768 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableSmoothScrolling, |
| 783 switches::kDisableSmoothScrolling)}, | 769 switches::kDisableSmoothScrolling)}, |
| 784 #if defined(USE_AURA) || defined(OS_LINUX) | 770 #if defined(USE_AURA) || defined(OS_LINUX) |
| 785 {"overlay-scrollbars", IDS_FLAGS_OVERLAY_SCROLLBARS_NAME, | 771 {"overlay-scrollbars", IDS_FLAGS_OVERLAY_SCROLLBARS_NAME, |
| 786 IDS_FLAGS_OVERLAY_SCROLLBARS_DESCRIPTION, | 772 IDS_FLAGS_OVERLAY_SCROLLBARS_DESCRIPTION, |
| 787 // Uses the system preference on Mac (a different implementation). | 773 // Uses the system preference on Mac (a different implementation). |
| 788 // On Android, this is always enabled. | 774 // On Android, this is always enabled. |
| 789 kOsLinux | kOsCrOS | kOsWin, | 775 kOsLinux | kOsCrOS | kOsWin, |
| 790 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableOverlayScrollbar, | 776 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableOverlayScrollbar, |
| 791 switches::kDisableOverlayScrollbar)}, | 777 switches::kDisableOverlayScrollbar)}, |
| 792 #endif | 778 #endif |
| 793 {// See http://crbug.com/120416 for how to remove this flag. | 779 {// See http://crbug.com/120416 for how to remove this flag. |
| 794 "save-page-as-mhtml", // FLAGS:RECORD_UMA | 780 "save-page-as-mhtml", IDS_FLAGS_SAVE_PAGE_AS_MHTML_NAME, |
| 795 IDS_FLAGS_SAVE_PAGE_AS_MHTML_NAME, | |
| 796 IDS_FLAGS_SAVE_PAGE_AS_MHTML_DESCRIPTION, kOsMac | kOsWin | kOsLinux, | 781 IDS_FLAGS_SAVE_PAGE_AS_MHTML_DESCRIPTION, kOsMac | kOsWin | kOsLinux, |
| 797 SINGLE_VALUE_TYPE(switches::kSavePageAsMHTML)}, | 782 SINGLE_VALUE_TYPE(switches::kSavePageAsMHTML)}, |
| 798 {"mhtml-generator-option", IDS_FLAGS_MHTML_GENERATOR_OPTION_NAME, | 783 {"mhtml-generator-option", IDS_FLAGS_MHTML_GENERATOR_OPTION_NAME, |
| 799 IDS_FLAGS_MHTML_GENERATOR_OPTION_DESCRIPTION, kOsMac | kOsWin | kOsLinux, | 784 IDS_FLAGS_MHTML_GENERATOR_OPTION_DESCRIPTION, kOsMac | kOsWin | kOsLinux, |
| 800 MULTI_VALUE_TYPE(kMHTMLGeneratorOptionChoices)}, | 785 MULTI_VALUE_TYPE(kMHTMLGeneratorOptionChoices)}, |
| 801 {"enable-quic", IDS_FLAGS_QUIC_NAME, IDS_FLAGS_QUIC_DESCRIPTION, kOsAll, | 786 {"enable-quic", IDS_FLAGS_QUIC_NAME, IDS_FLAGS_QUIC_DESCRIPTION, kOsAll, |
| 802 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableQuic, switches::kDisableQuic)}, | 787 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableQuic, switches::kDisableQuic)}, |
| 803 {"disable-javascript-harmony-shipping", | 788 {"disable-javascript-harmony-shipping", |
| 804 IDS_FLAGS_JAVASCRIPT_HARMONY_SHIPPING_NAME, | 789 IDS_FLAGS_JAVASCRIPT_HARMONY_SHIPPING_NAME, |
| 805 IDS_FLAGS_JAVASCRIPT_HARMONY_SHIPPING_DESCRIPTION, kOsAll, | 790 IDS_FLAGS_JAVASCRIPT_HARMONY_SHIPPING_DESCRIPTION, kOsAll, |
| (...skipping 18 matching lines...) Expand all Loading... | |
| 824 0, | 809 0, |
| 825 #endif | 810 #endif |
| 826 SINGLE_DISABLE_VALUE_TYPE(switches::kDisableSoftwareRasterizer)}, | 811 SINGLE_DISABLE_VALUE_TYPE(switches::kDisableSoftwareRasterizer)}, |
| 827 {"enable-gpu-rasterization", IDS_FLAGS_GPU_RASTERIZATION_NAME, | 812 {"enable-gpu-rasterization", IDS_FLAGS_GPU_RASTERIZATION_NAME, |
| 828 IDS_FLAGS_GPU_RASTERIZATION_DESCRIPTION, kOsAll, | 813 IDS_FLAGS_GPU_RASTERIZATION_DESCRIPTION, kOsAll, |
| 829 MULTI_VALUE_TYPE(kEnableGpuRasterizationChoices)}, | 814 MULTI_VALUE_TYPE(kEnableGpuRasterizationChoices)}, |
| 830 {"gpu-rasterization-msaa-sample-count", | 815 {"gpu-rasterization-msaa-sample-count", |
| 831 IDS_FLAGS_GPU_RASTERIZATION_MSAA_SAMPLE_COUNT_NAME, | 816 IDS_FLAGS_GPU_RASTERIZATION_MSAA_SAMPLE_COUNT_NAME, |
| 832 IDS_FLAGS_GPU_RASTERIZATION_MSAA_SAMPLE_COUNT_DESCRIPTION, kOsAll, | 817 IDS_FLAGS_GPU_RASTERIZATION_MSAA_SAMPLE_COUNT_DESCRIPTION, kOsAll, |
| 833 MULTI_VALUE_TYPE(kGpuRasterizationMSAASampleCountChoices)}, | 818 MULTI_VALUE_TYPE(kGpuRasterizationMSAASampleCountChoices)}, |
| 834 {"enable-experimental-web-platform-features", // FLAGS:RECORD_UMA | 819 {"enable-experimental-web-platform-features", |
| 835 IDS_FLAGS_EXPERIMENTAL_WEB_PLATFORM_FEATURES_NAME, | 820 IDS_FLAGS_EXPERIMENTAL_WEB_PLATFORM_FEATURES_NAME, |
| 836 IDS_FLAGS_EXPERIMENTAL_WEB_PLATFORM_FEATURES_DESCRIPTION, kOsAll, | 821 IDS_FLAGS_EXPERIMENTAL_WEB_PLATFORM_FEATURES_DESCRIPTION, kOsAll, |
| 837 SINGLE_VALUE_TYPE(switches::kEnableExperimentalWebPlatformFeatures)}, | 822 SINGLE_VALUE_TYPE(switches::kEnableExperimentalWebPlatformFeatures)}, |
| 838 {"enable-web-bluetooth", // FLAGS:RECORD_UMA | 823 {"enable-web-bluetooth", IDS_FLAGS_WEB_BLUETOOTH_NAME, |
| 839 IDS_FLAGS_WEB_BLUETOOTH_NAME, IDS_FLAGS_WEB_BLUETOOTH_DESCRIPTION, | 824 IDS_FLAGS_WEB_BLUETOOTH_DESCRIPTION, |
| 840 kOsCrOS | kOsMac | kOsAndroid | kOsLinux, | 825 kOsCrOS | kOsMac | kOsAndroid | kOsLinux, |
| 841 SINGLE_VALUE_TYPE(switches::kEnableWebBluetooth)}, | 826 SINGLE_VALUE_TYPE(switches::kEnableWebBluetooth)}, |
| 842 #if defined(ENABLE_EXTENSIONS) | 827 #if defined(ENABLE_EXTENSIONS) |
| 843 {"enable-ble-advertising-in-apps", | 828 {"enable-ble-advertising-in-apps", |
| 844 IDS_FLAGS_BLE_ADVERTISING_IN_EXTENSIONS_NAME, | 829 IDS_FLAGS_BLE_ADVERTISING_IN_EXTENSIONS_NAME, |
| 845 IDS_FLAGS_BLE_ADVERTISING_IN_EXTENSIONS_DESCRIPTION, kOsCrOS, | 830 IDS_FLAGS_BLE_ADVERTISING_IN_EXTENSIONS_DESCRIPTION, kOsCrOS, |
| 846 SINGLE_VALUE_TYPE(extensions::switches::kEnableBLEAdvertising)}, | 831 SINGLE_VALUE_TYPE(extensions::switches::kEnableBLEAdvertising)}, |
| 847 #endif | 832 #endif |
| 848 {"enable-devtools-experiments", IDS_FLAGS_DEVTOOLS_EXPERIMENTS_NAME, | 833 {"enable-devtools-experiments", IDS_FLAGS_DEVTOOLS_EXPERIMENTS_NAME, |
| 849 IDS_FLAGS_DEVTOOLS_EXPERIMENTS_DESCRIPTION, kOsDesktop, | 834 IDS_FLAGS_DEVTOOLS_EXPERIMENTS_DESCRIPTION, kOsDesktop, |
| (...skipping 489 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1339 #endif | 1324 #endif |
| 1340 {"translate-lang-by-ulp", IDS_FLAGS_TRANSLATE_LANGUAGE_BY_ULP_NAME, | 1325 {"translate-lang-by-ulp", IDS_FLAGS_TRANSLATE_LANGUAGE_BY_ULP_NAME, |
| 1341 IDS_FLAGS_TRANSLATE_LANGUAGE_BY_ULP_DESCRIPTION, kOsAll, | 1326 IDS_FLAGS_TRANSLATE_LANGUAGE_BY_ULP_DESCRIPTION, kOsAll, |
| 1342 FEATURE_VALUE_TYPE(translate::kTranslateLanguageByULP)}, | 1327 FEATURE_VALUE_TYPE(translate::kTranslateLanguageByULP)}, |
| 1343 #if defined(OS_MACOSX) | 1328 #if defined(OS_MACOSX) |
| 1344 {"enable-native-notifications", IDS_NOTIFICATIONS_NATIVE_FLAG, | 1329 {"enable-native-notifications", IDS_NOTIFICATIONS_NATIVE_FLAG, |
| 1345 IDS_NOTIFICATIONS_NATIVE_FLAG_DESCRIPTION, kOsMac, | 1330 IDS_NOTIFICATIONS_NATIVE_FLAG_DESCRIPTION, kOsMac, |
| 1346 SINGLE_VALUE_TYPE(switches::kEnableNativeNotifications)}, | 1331 SINGLE_VALUE_TYPE(switches::kEnableNativeNotifications)}, |
| 1347 #endif | 1332 #endif |
| 1348 #if defined(TOOLKIT_VIEWS) | 1333 #if defined(TOOLKIT_VIEWS) |
| 1349 {"disable-views-rect-based-targeting", // FLAGS:RECORD_UMA | 1334 {"disable-views-rect-based-targeting", |
| 1350 IDS_FLAGS_VIEWS_RECT_BASED_TARGETING_NAME, | 1335 IDS_FLAGS_VIEWS_RECT_BASED_TARGETING_NAME, |
| 1351 IDS_FLAGS_VIEWS_RECT_BASED_TARGETING_DESCRIPTION, | 1336 IDS_FLAGS_VIEWS_RECT_BASED_TARGETING_DESCRIPTION, |
| 1352 kOsCrOS | kOsWin | kOsLinux, | 1337 kOsCrOS | kOsWin | kOsLinux, |
| 1353 SINGLE_DISABLE_VALUE_TYPE( | 1338 SINGLE_DISABLE_VALUE_TYPE( |
| 1354 views::switches::kDisableViewsRectBasedTargeting)}, | 1339 views::switches::kDisableViewsRectBasedTargeting)}, |
| 1355 #endif | 1340 #endif |
| 1356 #if defined(ENABLE_EXTENSIONS) | 1341 #if defined(ENABLE_EXTENSIONS) |
| 1357 {"enable-apps-show-on-first-paint", IDS_FLAGS_APPS_SHOW_ON_FIRST_PAINT_NAME, | 1342 {"enable-apps-show-on-first-paint", IDS_FLAGS_APPS_SHOW_ON_FIRST_PAINT_NAME, |
| 1358 IDS_FLAGS_APPS_SHOW_ON_FIRST_PAINT_DESCRIPTION, kOsDesktop, | 1343 IDS_FLAGS_APPS_SHOW_ON_FIRST_PAINT_DESCRIPTION, kOsDesktop, |
| 1359 SINGLE_VALUE_TYPE(extensions::switches::kEnableAppsShowOnFirstPaint)}, | 1344 SINGLE_VALUE_TYPE(extensions::switches::kEnableAppsShowOnFirstPaint)}, |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1518 #if defined(OS_ANDROID) | 1503 #if defined(OS_ANDROID) |
| 1519 {"enable-seccomp-sandbox-android", | 1504 {"enable-seccomp-sandbox-android", |
| 1520 IDS_FLAGS_SECCOMP_FILTER_SANDBOX_ANDROID_NAME, | 1505 IDS_FLAGS_SECCOMP_FILTER_SANDBOX_ANDROID_NAME, |
| 1521 IDS_FLAGS_SECCOMP_FILTER_SANDBOX_ANDROID_DESCRIPTION, kOsAndroid, | 1506 IDS_FLAGS_SECCOMP_FILTER_SANDBOX_ANDROID_DESCRIPTION, kOsAndroid, |
| 1522 FEATURE_VALUE_TYPE(features::kSeccompSandboxAndroid)}, | 1507 FEATURE_VALUE_TYPE(features::kSeccompSandboxAndroid)}, |
| 1523 #endif | 1508 #endif |
| 1524 {"enable-touch-hover", IDS_FLAGS_TOUCH_HOVER_NAME, | 1509 {"enable-touch-hover", IDS_FLAGS_TOUCH_HOVER_NAME, |
| 1525 IDS_FLAGS_TOUCH_HOVER_DESCRIPTION, kOsAndroid, | 1510 IDS_FLAGS_TOUCH_HOVER_DESCRIPTION, kOsAndroid, |
| 1526 SINGLE_VALUE_TYPE("enable-touch-hover")}, | 1511 SINGLE_VALUE_TYPE("enable-touch-hover")}, |
| 1527 #if defined(OS_CHROMEOS) | 1512 #if defined(OS_CHROMEOS) |
| 1528 {"enable-wifi-credential-sync", // FLAGS:RECORD_UMA | 1513 {"enable-wifi-credential-sync", IDS_FLAGS_WIFI_CREDENTIAL_SYNC_NAME, |
| 1529 IDS_FLAGS_WIFI_CREDENTIAL_SYNC_NAME, | |
| 1530 IDS_FLAGS_WIFI_CREDENTIAL_SYNC_DESCRIPTION, kOsCrOS, | 1514 IDS_FLAGS_WIFI_CREDENTIAL_SYNC_DESCRIPTION, kOsCrOS, |
| 1531 SINGLE_VALUE_TYPE(switches::kEnableWifiCredentialSync)}, | 1515 SINGLE_VALUE_TYPE(switches::kEnableWifiCredentialSync)}, |
| 1532 {"enable-potentially-annoying-security-features", | 1516 {"enable-potentially-annoying-security-features", |
| 1533 IDS_FLAGS_EXPERIMENTAL_SECURITY_FEATURES_NAME, | 1517 IDS_FLAGS_EXPERIMENTAL_SECURITY_FEATURES_NAME, |
| 1534 IDS_FLAGS_EXPERIMENTAL_SECURITY_FEATURES_DESCRIPTION, kOsAll, | 1518 IDS_FLAGS_EXPERIMENTAL_SECURITY_FEATURES_DESCRIPTION, kOsAll, |
| 1535 SINGLE_VALUE_TYPE(switches::kEnablePotentiallyAnnoyingSecurityFeatures)}, | 1519 SINGLE_VALUE_TYPE(switches::kEnablePotentiallyAnnoyingSecurityFeatures)}, |
| 1536 #endif | 1520 #endif |
| 1537 {"mark-non-secure-as", // FLAGS:RECORD_UMA | 1521 {"mark-non-secure-as", IDS_MARK_NON_SECURE_AS_NAME, |
| 1538 IDS_MARK_NON_SECURE_AS_NAME, IDS_MARK_NON_SECURE_AS_DESCRIPTION, kOsAll, | 1522 IDS_MARK_NON_SECURE_AS_DESCRIPTION, kOsAll, |
| 1539 MULTI_VALUE_TYPE(kMarkNonSecureAsChoices)}, | 1523 MULTI_VALUE_TYPE(kMarkNonSecureAsChoices)}, |
| 1540 {"enable-site-per-process", IDS_FLAGS_SITE_PER_PROCESS_NAME, | 1524 {"enable-site-per-process", IDS_FLAGS_SITE_PER_PROCESS_NAME, |
| 1541 IDS_FLAGS_SITE_PER_PROCESS_DESCRIPTION, kOsAll, | 1525 IDS_FLAGS_SITE_PER_PROCESS_DESCRIPTION, kOsAll, |
| 1542 SINGLE_VALUE_TYPE(switches::kSitePerProcess)}, | 1526 SINGLE_VALUE_TYPE(switches::kSitePerProcess)}, |
| 1543 {"enable-top-document-isolation", IDS_FLAGS_TOP_DOCUMENT_ISOLATION_NAME, | 1527 {"enable-top-document-isolation", IDS_FLAGS_TOP_DOCUMENT_ISOLATION_NAME, |
| 1544 IDS_FLAGS_TOP_DOCUMENT_ISOLATION_DESCRIPTION, kOsAll, | 1528 IDS_FLAGS_TOP_DOCUMENT_ISOLATION_DESCRIPTION, kOsAll, |
| 1545 SINGLE_VALUE_TYPE(switches::kTopDocumentIsolation)}, | 1529 SINGLE_VALUE_TYPE(switches::kTopDocumentIsolation)}, |
| 1546 {"enable-use-zoom-for-dsf", IDS_FLAGS_ENABLE_USE_ZOOM_FOR_DSF_NAME, | 1530 {"enable-use-zoom-for-dsf", IDS_FLAGS_ENABLE_USE_ZOOM_FOR_DSF_NAME, |
| 1547 IDS_FLAGS_ENABLE_USE_ZOOM_FOR_DSF_DESCRIPTION, kOsAll, | 1531 IDS_FLAGS_ENABLE_USE_ZOOM_FOR_DSF_DESCRIPTION, kOsAll, |
| 1548 MULTI_VALUE_TYPE(kEnableUseZoomForDSFChoices)}, | 1532 MULTI_VALUE_TYPE(kEnableUseZoomForDSFChoices)}, |
| (...skipping 422 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1971 SINGLE_VALUE_TYPE( | 1955 SINGLE_VALUE_TYPE( |
| 1972 chromeos::switches::kEnableExperimentalAccessibilityFeatures)}, | 1956 chromeos::switches::kEnableExperimentalAccessibilityFeatures)}, |
| 1973 {"opt-in-ime-menu", IDS_FLAGS_ENABLE_IME_MENU_NAME, | 1957 {"opt-in-ime-menu", IDS_FLAGS_ENABLE_IME_MENU_NAME, |
| 1974 IDS_FLAGS_ENABLE_IME_MENU_DESCRIPTION, kOsCrOS, | 1958 IDS_FLAGS_ENABLE_IME_MENU_DESCRIPTION, kOsCrOS, |
| 1975 FEATURE_VALUE_TYPE(features::kOptInImeMenu)}, | 1959 FEATURE_VALUE_TYPE(features::kOptInImeMenu)}, |
| 1976 {"disable-system-timezone-automatic-detection", | 1960 {"disable-system-timezone-automatic-detection", |
| 1977 IDS_FLAGS_DISABLE_SYSTEM_TIMEZONE_AUTOMATIC_DETECTION_NAME, | 1961 IDS_FLAGS_DISABLE_SYSTEM_TIMEZONE_AUTOMATIC_DETECTION_NAME, |
| 1978 IDS_FLAGS_DISABLE_SYSTEM_TIMEZONE_AUTOMATIC_DETECTION_DESCRIPTION, kOsCrOS, | 1962 IDS_FLAGS_DISABLE_SYSTEM_TIMEZONE_AUTOMATIC_DETECTION_DESCRIPTION, kOsCrOS, |
| 1979 SINGLE_VALUE_TYPE( | 1963 SINGLE_VALUE_TYPE( |
| 1980 chromeos::switches::kDisableSystemTimezoneAutomaticDetectionPolicy)}, | 1964 chromeos::switches::kDisableSystemTimezoneAutomaticDetectionPolicy)}, |
| 1981 {"enable-native-cups", // FLAGS:RECORD_UMA | 1965 {"enable-native-cups", IDS_FLAGS_ENABLE_NATIVE_CUPS_NAME, |
| 1982 IDS_FLAGS_ENABLE_NATIVE_CUPS_NAME, | |
| 1983 IDS_FLAGS_ENABLE_NATIVE_CUPS_DESCRIPTION, kOsCrOS, | 1966 IDS_FLAGS_ENABLE_NATIVE_CUPS_DESCRIPTION, kOsCrOS, |
| 1984 SINGLE_VALUE_TYPE(switches::kEnableNativeCups)}, | 1967 SINGLE_VALUE_TYPE(switches::kEnableNativeCups)}, |
| 1985 {"enable-files-details-panel", IDS_FLAGS_ENABLE_FILES_DETAILS_PANEL_NAME, | 1968 {"enable-files-details-panel", IDS_FLAGS_ENABLE_FILES_DETAILS_PANEL_NAME, |
| 1986 IDS_FLAGS_ENABLE_FILES_DETAILS_PANEL_DESCRIPTION, kOsCrOS, | 1969 IDS_FLAGS_ENABLE_FILES_DETAILS_PANEL_DESCRIPTION, kOsCrOS, |
| 1987 SINGLE_VALUE_TYPE(chromeos::switches::kEnableFilesDetailsPanel)}, | 1970 SINGLE_VALUE_TYPE(chromeos::switches::kEnableFilesDetailsPanel)}, |
| 1988 #endif // defined(OS_CHROMEOS) | 1971 #endif // defined(OS_CHROMEOS) |
| 1989 #if !defined(OS_ANDROID) && !defined(OS_IOS) && defined(GOOGLE_CHROME_BUILD) | 1972 #if !defined(OS_ANDROID) && !defined(OS_IOS) && defined(GOOGLE_CHROME_BUILD) |
| 1990 {"enable-google-branded-context-menu", | 1973 {"enable-google-branded-context-menu", |
| 1991 IDS_FLAGS_GOOGLE_BRANDED_CONTEXT_MENU_NAME, | 1974 IDS_FLAGS_GOOGLE_BRANDED_CONTEXT_MENU_NAME, |
| 1992 IDS_FLAGS_GOOGLE_BRANDED_CONTEXT_MENU_DESCRIPTION, kOsDesktop, | 1975 IDS_FLAGS_GOOGLE_BRANDED_CONTEXT_MENU_DESCRIPTION, kOsDesktop, |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 2004 SINGLE_VALUE_TYPE(switches::kEnableFullscreenToolbarReveal)}, | 1987 SINGLE_VALUE_TYPE(switches::kEnableFullscreenToolbarReveal)}, |
| 2005 #endif | 1988 #endif |
| 2006 #if defined(OS_ANDROID) | 1989 #if defined(OS_ANDROID) |
| 2007 {"important-sites-in-cbd", IDS_FLAGS_IMPORTANT_SITES_IN_CBD_NAME, | 1990 {"important-sites-in-cbd", IDS_FLAGS_IMPORTANT_SITES_IN_CBD_NAME, |
| 2008 IDS_FLAGS_IMPORTANT_SITES_IN_CBD_DESCRIPTION, kOsAndroid, | 1991 IDS_FLAGS_IMPORTANT_SITES_IN_CBD_DESCRIPTION, kOsAndroid, |
| 2009 FEATURE_VALUE_TYPE(chrome::android::kImportantSitesInCBD)}, | 1992 FEATURE_VALUE_TYPE(chrome::android::kImportantSitesInCBD)}, |
| 2010 {"autoplay-muted-videos", IDS_FLAGS_ENABLE_AUTOPLAY_MUTED_VIDEOS_NAME, | 1993 {"autoplay-muted-videos", IDS_FLAGS_ENABLE_AUTOPLAY_MUTED_VIDEOS_NAME, |
| 2011 IDS_FLAGS_ENABLE_AUTOPLAY_MUTED_VIDEOS_DESCRIPTION, kOsAndroid, | 1994 IDS_FLAGS_ENABLE_AUTOPLAY_MUTED_VIDEOS_DESCRIPTION, kOsAndroid, |
| 2012 FEATURE_VALUE_TYPE(features::kAutoplayMutedVideos)}, | 1995 FEATURE_VALUE_TYPE(features::kAutoplayMutedVideos)}, |
| 2013 #endif | 1996 #endif |
| 2014 {"enable-pointer-events", // FLAGS:RECORD_UMA | 1997 {"enable-pointer-events", IDS_FLAGS_EXPERIMENTAL_POINTER_EVENT_NAME, |
| 2015 IDS_FLAGS_EXPERIMENTAL_POINTER_EVENT_NAME, | |
| 2016 IDS_FLAGS_EXPERIMENTAL_POINTER_EVENT_DESCRIPTION, kOsAll, | 1998 IDS_FLAGS_EXPERIMENTAL_POINTER_EVENT_DESCRIPTION, kOsAll, |
| 2017 FEATURE_VALUE_TYPE(features::kPointerEvents)}, | 1999 FEATURE_VALUE_TYPE(features::kPointerEvents)}, |
| 2018 {"passive-listener-default", // FLAGS:RECORD_UMA | 2000 {"passive-listener-default", IDS_FLAGS_PASSIVE_EVENT_LISTENER_DEFAULT_NAME, |
| 2019 IDS_FLAGS_PASSIVE_EVENT_LISTENER_DEFAULT_NAME, | |
| 2020 IDS_FLAGS_PASSIVE_EVENT_LISTENER_DEFAULT_DESCRIPTION, kOsAll, | 2001 IDS_FLAGS_PASSIVE_EVENT_LISTENER_DEFAULT_DESCRIPTION, kOsAll, |
| 2021 MULTI_VALUE_TYPE(kPassiveListenersChoices)}, | 2002 MULTI_VALUE_TYPE(kPassiveListenersChoices)}, |
| 2022 {"document-passive-event-listeners", // FLAGS:RECORD_UMA | 2003 {"document-passive-event-listeners", |
| 2023 IDS_FLAGS_PASSIVE_DOCUMENT_EVENT_LISTENERS_NAME, | 2004 IDS_FLAGS_PASSIVE_DOCUMENT_EVENT_LISTENERS_NAME, |
| 2024 IDS_FLAGS_PASSIVE_DOCUMENT_EVENT_LISTENERS_DESCRIPTION, kOsAll, | 2005 IDS_FLAGS_PASSIVE_DOCUMENT_EVENT_LISTENERS_DESCRIPTION, kOsAll, |
| 2025 FEATURE_VALUE_TYPE(features::kPassiveDocumentEventListeners)}, | 2006 FEATURE_VALUE_TYPE(features::kPassiveDocumentEventListeners)}, |
| 2026 {"passive-event-listeners-due-to-fling", // FLAGS:RECORD_UMA | 2007 {"passive-event-listeners-due-to-fling", |
| 2027 IDS_FLAGS_PASSIVE_EVENT_LISTENERS_DUE_TO_FLING_NAME, | 2008 IDS_FLAGS_PASSIVE_EVENT_LISTENERS_DUE_TO_FLING_NAME, |
| 2028 IDS_FLAGS_PASSIVE_EVENT_LISTENERS_DUE_TO_FLING_DESCRIPTION, kOsAll, | 2009 IDS_FLAGS_PASSIVE_EVENT_LISTENERS_DUE_TO_FLING_DESCRIPTION, kOsAll, |
| 2029 FEATURE_VALUE_TYPE(features::kPassiveEventListenersDueToFling)}, | 2010 FEATURE_VALUE_TYPE(features::kPassiveEventListenersDueToFling)}, |
| 2030 {"enable-loading-ipc-optimization-for-small-resources", | 2011 {"enable-loading-ipc-optimization-for-small-resources", |
| 2031 IDS_FLAGS_OPTIMIZE_LOADING_IPC_FOR_SMALL_RESOURCES_NAME, | 2012 IDS_FLAGS_OPTIMIZE_LOADING_IPC_FOR_SMALL_RESOURCES_NAME, |
| 2032 IDS_FLAGS_OPTIMIZE_LOADING_IPC_FOR_SMALL_RESOURCES_DESCRIPTION, kOsAll, | 2013 IDS_FLAGS_OPTIMIZE_LOADING_IPC_FOR_SMALL_RESOURCES_DESCRIPTION, kOsAll, |
| 2033 FEATURE_VALUE_TYPE(features::kOptimizeLoadingIPCForSmallResources)}, | 2014 FEATURE_VALUE_TYPE(features::kOptimizeLoadingIPCForSmallResources)}, |
| 2034 {"enable-font-cache-scaling", IDS_FLAGS_FONT_CACHE_SCALING_NAME, | 2015 {"enable-font-cache-scaling", IDS_FLAGS_FONT_CACHE_SCALING_NAME, |
| 2035 IDS_FLAGS_FONT_CACHE_SCALING_DESCRIPTION, kOsAll, | 2016 IDS_FLAGS_FONT_CACHE_SCALING_DESCRIPTION, kOsAll, |
| 2036 FEATURE_VALUE_TYPE(features::kFontCacheScaling)}, | 2017 FEATURE_VALUE_TYPE(features::kFontCacheScaling)}, |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 2048 IDS_FLAGS_ENABLE_WEAK_MEMORYCACHE_DESCRIPTION, kOsAll, | 2029 IDS_FLAGS_ENABLE_WEAK_MEMORYCACHE_DESCRIPTION, kOsAll, |
| 2049 FEATURE_VALUE_TYPE(features::kWeakMemoryCache)}, | 2030 FEATURE_VALUE_TYPE(features::kWeakMemoryCache)}, |
| 2050 #if defined(OS_CHROMEOS) | 2031 #if defined(OS_CHROMEOS) |
| 2051 {"disable-eol-notification", IDS_FLAGS_EOL_NOTIFICATION_NAME, | 2032 {"disable-eol-notification", IDS_FLAGS_EOL_NOTIFICATION_NAME, |
| 2052 IDS_FLAGS_EOL_NOTIFICATION_DESCRIPTION, kOsCrOS, | 2033 IDS_FLAGS_EOL_NOTIFICATION_DESCRIPTION, kOsCrOS, |
| 2053 SINGLE_DISABLE_VALUE_TYPE(chromeos::switches::kDisableEolNotification)}, | 2034 SINGLE_DISABLE_VALUE_TYPE(chromeos::switches::kDisableEolNotification)}, |
| 2054 #endif // defined(OS_CHROMEOS) | 2035 #endif // defined(OS_CHROMEOS) |
| 2055 {"fill-on-account-select", IDS_FILL_ON_ACCOUNT_SELECT_NAME, | 2036 {"fill-on-account-select", IDS_FILL_ON_ACCOUNT_SELECT_NAME, |
| 2056 IDS_FILL_ON_ACCOUNT_SELECT_DESCRIPTION, kOsAll, | 2037 IDS_FILL_ON_ACCOUNT_SELECT_DESCRIPTION, kOsAll, |
| 2057 FEATURE_VALUE_TYPE(password_manager::features::kFillOnAccountSelect)}, | 2038 FEATURE_VALUE_TYPE(password_manager::features::kFillOnAccountSelect)}, |
| 2058 {"new-audio-rendering-mixing-strategy", // FLAGS:RECORD_UMA | 2039 {"new-audio-rendering-mixing-strategy", |
| 2059 IDS_NEW_AUDIO_RENDERING_MIXING_STRATEGY_NAME, | 2040 IDS_NEW_AUDIO_RENDERING_MIXING_STRATEGY_NAME, |
| 2060 IDS_NEW_AUDIO_RENDERING_MIXING_STRATEGY_DESCRIPTION, | 2041 IDS_NEW_AUDIO_RENDERING_MIXING_STRATEGY_DESCRIPTION, |
| 2061 kOsWin | kOsMac | kOsLinux | kOsAndroid, | 2042 kOsWin | kOsMac | kOsLinux | kOsAndroid, |
| 2062 FEATURE_VALUE_TYPE(media::kNewAudioRenderingMixingStrategy)}, | 2043 FEATURE_VALUE_TYPE(media::kNewAudioRenderingMixingStrategy)}, |
| 2063 #if defined(OS_CHROMEOS) | 2044 #if defined(OS_CHROMEOS) |
| 2064 {"files-quick-view", IDS_FLAGS_FILES_QUICK_VIEW_NAME, | 2045 {"files-quick-view", IDS_FLAGS_FILES_QUICK_VIEW_NAME, |
| 2065 IDS_FLAGS_FILES_QUICK_VIEW_DESCRIPTION, kOsCrOS, | 2046 IDS_FLAGS_FILES_QUICK_VIEW_DESCRIPTION, kOsCrOS, |
| 2066 ENABLE_DISABLE_VALUE_TYPE(chromeos::switches::kEnableFilesQuickView, | 2047 ENABLE_DISABLE_VALUE_TYPE(chromeos::switches::kEnableFilesQuickView, |
| 2067 chromeos::switches::kDisableFilesQuickView)}, | 2048 chromeos::switches::kDisableFilesQuickView)}, |
| 2068 {"quick-unlock-pin", IDS_FLAGS_QUICK_UNLOCK_PIN, | 2049 {"quick-unlock-pin", IDS_FLAGS_QUICK_UNLOCK_PIN, |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2139 channel != version_info::Channel::BETA && | 2120 channel != version_info::Channel::BETA && |
| 2140 channel != version_info::Channel::DEV && | 2121 channel != version_info::Channel::DEV && |
| 2141 channel != version_info::Channel::CANARY && | 2122 channel != version_info::Channel::CANARY && |
| 2142 channel != version_info::Channel::UNKNOWN) { | 2123 channel != version_info::Channel::UNKNOWN) { |
| 2143 return true; | 2124 return true; |
| 2144 } | 2125 } |
| 2145 | 2126 |
| 2146 return false; | 2127 return false; |
| 2147 } | 2128 } |
| 2148 | 2129 |
| 2130 void ReportSingleFlagToHistogram(const std::string& uma_histogram_hame, | |
| 2131 const std::string& flag) { | |
| 2132 int uma_id = about_flags::testing::kBadSwitchFormatHistogramId; | |
| 2133 if (base::StartsWith(flag, "--", base::CompareCase::SENSITIVE)) { | |
| 2134 // Skip '--' before switch name. | |
| 2135 std::string switch_name(flag.substr(2)); | |
| 2136 | |
| 2137 // Kill value, if any. | |
| 2138 const size_t value_pos = switch_name.find('='); | |
| 2139 if (value_pos != std::string::npos) | |
| 2140 switch_name.resize(value_pos); | |
| 2141 | |
| 2142 uma_id = GetSwitchUMAId(switch_name); | |
| 2143 } else { | |
| 2144 NOTREACHED() << "ReportSingleFlagToHistogram(): flag '" << flag | |
| 2145 << "' has incorrect format."; | |
| 2146 } | |
| 2147 DVLOG(1) << "ReportSingleFlagToHistogram(): histogram='" << uma_histogram_hame | |
| 2148 << "' '" << flag << "', uma_id=" << uma_id; | |
| 2149 | |
| 2150 // Sparse histogram macro does not cache the histogram, so it's safe | |
| 2151 // to use macro with non-static histogram name here. | |
| 2152 UMA_HISTOGRAM_SPARSE_SLOWLY(uma_histogram_hame, uma_id); | |
| 2153 } | |
| 2154 | |
| 2149 } // namespace | 2155 } // namespace |
| 2150 | 2156 |
| 2151 void ConvertFlagsToSwitches(flags_ui::FlagsStorage* flags_storage, | 2157 void ConvertFlagsToSwitches(flags_ui::FlagsStorage* flags_storage, |
| 2152 base::CommandLine* command_line, | 2158 base::CommandLine* command_line, |
| 2153 flags_ui::SentinelsMode sentinels) { | 2159 flags_ui::SentinelsMode sentinels) { |
| 2154 if (command_line->HasSwitch(switches::kNoExperiments)) | 2160 if (command_line->HasSwitch(switches::kNoExperiments)) |
| 2155 return; | 2161 return; |
| 2156 | 2162 |
| 2157 FlagsStateSingleton::GetFlagsState()->ConvertFlagsToSwitches( | 2163 FlagsStateSingleton::GetFlagsState()->ConvertFlagsToSwitches( |
| 2158 flags_storage, command_line, sentinels, switches::kEnableFeatures, | 2164 flags_storage, command_line, sentinels, switches::kEnableFeatures, |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2209 FlagsStateSingleton::GetFlagsState()->RemoveFlagsSwitches(switch_list); | 2215 FlagsStateSingleton::GetFlagsState()->RemoveFlagsSwitches(switch_list); |
| 2210 } | 2216 } |
| 2211 | 2217 |
| 2212 void ResetAllFlags(flags_ui::FlagsStorage* flags_storage) { | 2218 void ResetAllFlags(flags_ui::FlagsStorage* flags_storage) { |
| 2213 FlagsStateSingleton::GetFlagsState()->ResetAllFlags(flags_storage); | 2219 FlagsStateSingleton::GetFlagsState()->ResetAllFlags(flags_storage); |
| 2214 } | 2220 } |
| 2215 | 2221 |
| 2216 void RecordUMAStatistics(flags_ui::FlagsStorage* flags_storage) { | 2222 void RecordUMAStatistics(flags_ui::FlagsStorage* flags_storage) { |
| 2217 std::set<std::string> flags = flags_storage->GetFlags(); | 2223 std::set<std::string> flags = flags_storage->GetFlags(); |
| 2218 for (const std::string& flag : flags) { | 2224 for (const std::string& flag : flags) { |
| 2219 std::string action("AboutFlags_"); | 2225 ReportSingleFlagToHistogram("AboutFlags.Seen", flag); |
| 2220 action += flag; | |
| 2221 content::RecordComputedAction(action); | |
| 2222 } | 2226 } |
|
Ilya Sherman
2016/08/29 21:19:59
nit: Why not call ReportCustomFlags("AboutFlags.Se
Alexei Svitkine (slow)
2016/08/29 21:50:58
Done.
| |
| 2223 // Since flag metrics are recorded every startup, add a tick so that the | |
| 2224 // stats can be made meaningful. | |
| 2225 if (flags.size()) | |
| 2226 content::RecordAction(base::UserMetricsAction("AboutFlags_StartupTick")); | |
| 2227 content::RecordAction(base::UserMetricsAction("StartupTick")); | |
| 2228 } | 2227 } |
| 2229 | 2228 |
| 2230 base::HistogramBase::Sample GetSwitchUMAId(const std::string& switch_name) { | 2229 base::HistogramBase::Sample GetSwitchUMAId(const std::string& switch_name) { |
| 2231 return static_cast<base::HistogramBase::Sample>( | 2230 return static_cast<base::HistogramBase::Sample>( |
| 2232 base::HashMetricName(switch_name)); | 2231 base::HashMetricName(switch_name)); |
| 2233 } | 2232 } |
| 2234 | 2233 |
| 2235 void ReportCustomFlags(const std::string& uma_histogram_hame, | 2234 void ReportCustomFlags(const std::string& uma_histogram_name, |
| 2236 const std::set<std::string>& command_line_difference) { | 2235 const std::set<std::string>& command_line_difference) { |
| 2237 for (const std::string& flag : command_line_difference) { | 2236 for (const std::string& flag : command_line_difference) { |
| 2238 int uma_id = about_flags::testing::kBadSwitchFormatHistogramId; | 2237 ReportSingleFlagToHistogram(uma_histogram_name, flag); |
| 2239 if (base::StartsWith(flag, "--", base::CompareCase::SENSITIVE)) { | |
| 2240 // Skip '--' before switch name. | |
| 2241 std::string switch_name(flag.substr(2)); | |
| 2242 | |
| 2243 // Kill value, if any. | |
| 2244 const size_t value_pos = switch_name.find('='); | |
| 2245 if (value_pos != std::string::npos) | |
| 2246 switch_name.resize(value_pos); | |
| 2247 | |
| 2248 uma_id = GetSwitchUMAId(switch_name); | |
| 2249 } else { | |
| 2250 NOTREACHED() << "ReportCustomFlags(): flag '" << flag | |
| 2251 << "' has incorrect format."; | |
| 2252 } | |
| 2253 DVLOG(1) << "ReportCustomFlags(): histogram='" << uma_histogram_hame | |
| 2254 << "' '" << flag << "', uma_id=" << uma_id; | |
| 2255 | |
| 2256 // Sparse histogram macro does not cache the histogram, so it's safe | |
| 2257 // to use macro with non-static histogram name here. | |
| 2258 UMA_HISTOGRAM_SPARSE_SLOWLY(uma_histogram_hame, uma_id); | |
| 2259 } | 2238 } |
| 2260 } | 2239 } |
| 2261 | 2240 |
| 2262 namespace testing { | 2241 namespace testing { |
| 2263 | 2242 |
| 2264 const base::HistogramBase::Sample kBadSwitchFormatHistogramId = 0; | 2243 const base::HistogramBase::Sample kBadSwitchFormatHistogramId = 0; |
| 2265 | 2244 |
| 2266 const FeatureEntry* GetFeatureEntries(size_t* count) { | 2245 const FeatureEntry* GetFeatureEntries(size_t* count) { |
| 2267 *count = arraysize(kFeatureEntries); | 2246 *count = arraysize(kFeatureEntries); |
| 2268 return kFeatureEntries; | 2247 return kFeatureEntries; |
| 2269 } | 2248 } |
| 2270 | 2249 |
| 2271 } // namespace testing | 2250 } // namespace testing |
| 2272 | 2251 |
| 2273 } // namespace about_flags | 2252 } // namespace about_flags |
| OLD | NEW |