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 |