| // Copyright 2015 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CHROME_BROWSER_FLAGS_ANDROID_CHROME_FEATURE_LIST_H_ |
| #define CHROME_BROWSER_FLAGS_ANDROID_CHROME_FEATURE_LIST_H_ |
| |
| #include <jni.h> |
| |
| #include "base/feature_list.h" |
| #include "base/metrics/field_trial_params.h" |
| |
| namespace chrome { |
| namespace android { |
| |
| // Alphabetical: |
| BASE_DECLARE_FEATURE(kAdaptiveButtonInTopToolbarCustomizationV2); |
| BASE_DECLARE_FEATURE(kAdaptiveButtonInTopToolbarPageSummary); |
| BASE_DECLARE_FEATURE(kAllowTabClosingUponMinimization); |
| BASE_DECLARE_FEATURE(kAndroidAppIntegration); |
| BASE_DECLARE_FEATURE(kAndroidAppIntegrationV2); |
| BASE_DECLARE_FEATURE(kNewTabPageCustomization); |
| BASE_DECLARE_FEATURE(kAndroidAppIntegrationWithFavicon); |
| BASE_DECLARE_FEATURE(kAndroidAppIntegrationMultiDataSource); |
| BASE_DECLARE_FEATURE(kAndroidAppearanceSettings); |
| BASE_DECLARE_FEATURE(kAndroidBookmarkBar); |
| BASE_DECLARE_FEATURE(kAndroidBottomToolbar); |
| BASE_DECLARE_FEATURE(kAndroidDumpOnScrollWithoutResource); |
| BASE_DECLARE_FEATURE(kAndroidElegantTextHeight); |
| BASE_DECLARE_FEATURE(kAndroidKeyboardA11y); |
| BASE_DECLARE_FEATURE(kAndroidMetaClickHistoryNavigation); |
| BASE_DECLARE_FEATURE(kAndroidNativePagesInNewTab); |
| BASE_DECLARE_FEATURE(kAndroidProgressBarVisualUpdate); |
| BASE_DECLARE_FEATURE(kAndroidNoVisibleHintForDifferentTLD); |
| BASE_DECLARE_FEATURE(kAndroidOmniboxFocusedNewTabPage); |
| BASE_DECLARE_FEATURE(kAndroidOpenPdfInlineBackport); |
| BASE_DECLARE_FEATURE(kAndroidPdfAssistContent); |
| BASE_DECLARE_FEATURE(kAndroidSurfaceColorUpdate); |
| BASE_DECLARE_FEATURE(kAndroidTabDeclutterArchiveAllButActiveTab); |
| BASE_DECLARE_FEATURE(kAndroidTabDeclutterArchiveDuplicateTabs); |
| BASE_DECLARE_FEATURE(kAndroidTabDeclutterArchiveTabGroups); |
| BASE_DECLARE_FEATURE(kAndroidTabDeclutterAutoDelete); |
| BASE_DECLARE_FEATURE(kAndroidTabDeclutterAutoDeleteKillSwitch); |
| BASE_DECLARE_FEATURE(kAndroidTabDeclutterRescueKillswitch); |
| BASE_DECLARE_FEATURE(kAndroidTabDeclutterDedupeTabIdsKillSwitch); |
| BASE_DECLARE_FEATURE(kAndroidTabDeclutterPerformanceImprovements); |
| BASE_DECLARE_FEATURE(kAndroidTabSkipSaveTabsKillswitch); |
| BASE_DECLARE_FEATURE(kAndroidThemeModule); |
| BASE_DECLARE_FEATURE(kAndroidToolbarScrollAblation); |
| BASE_DECLARE_FEATURE(kAndroidWindowPopupLargeScreen); |
| BASE_DECLARE_FEATURE(kAnimatedImageDragShadow); |
| BASE_DECLARE_FEATURE(kAppSpecificHistory); |
| BASE_DECLARE_FEATURE(kTinkerTankBottomSheet); |
| BASE_DECLARE_FEATURE(kAsyncNotificationManager); |
| BASE_DECLARE_FEATURE(kAsyncNotificationManagerForDownload); |
| BASE_DECLARE_FEATURE(kAuxiliarySearchDonation); |
| BASE_DECLARE_FEATURE(kBackgroundThreadPool); |
| BASE_DECLARE_FEATURE(kBatchTabRestore); |
| BASE_DECLARE_FEATURE(kBlockIntentsWhileLocked); |
| BASE_DECLARE_FEATURE(kBookmarkPaneAndroid); |
| BASE_DECLARE_FEATURE(kBottomBrowserControlsRefactor); |
| BASE_DECLARE_FEATURE(kBrowserControlsEarlyResize); |
| BASE_DECLARE_FEATURE(kCacheActivityTaskID); |
| BASE_DECLARE_FEATURE(kCacheIsMultiInstanceApi31Enabled); |
| BASE_DECLARE_FEATURE(kCastDeviceFilter); |
| BASE_DECLARE_FEATURE(kCCTAdaptiveButton); |
| BASE_DECLARE_FEATURE(kCCTAuthTab); |
| BASE_DECLARE_FEATURE(kCCTAuthTabDisableAllExternalIntents); |
| BASE_DECLARE_FEATURE(kCCTAuthTabEnableHttpsRedirects); |
| BASE_DECLARE_FEATURE(kCCTBlockTouchesDuringEnterAnimation); |
| BASE_DECLARE_FEATURE(kCCTClientDataHeader); |
| BASE_DECLARE_FEATURE(kCCTEarlyNav); |
| BASE_DECLARE_FEATURE(kCCTEphemeralMediaViewerExperiment); |
| BASE_DECLARE_FEATURE(kCCTEphemeralMode); |
| BASE_DECLARE_FEATURE(kCCTExtendTrustedCdnPublisher); |
| BASE_DECLARE_FEATURE(kCCTFreInSameTask); |
| BASE_DECLARE_FEATURE(kCCTIncognitoAvailableToThirdParty); |
| BASE_DECLARE_FEATURE(kCCTIntentFeatureOverrides); |
| BASE_DECLARE_FEATURE(kCCTMinimized); |
| BASE_DECLARE_FEATURE(kCCTMinimizedEnabledByDefault); |
| BASE_DECLARE_FEATURE(kCCTNavigationalPrefetch); |
| BASE_DECLARE_FEATURE(kCCTNestedSecurityIcon); |
| BASE_DECLARE_FEATURE(kCCTGoogleBottomBar); |
| BASE_DECLARE_FEATURE(kCCTGoogleBottomBarVariantLayouts); |
| BASE_DECLARE_FEATURE(kCCTOpenInBrowserButtonIfAllowedByEmbedder); |
| BASE_DECLARE_FEATURE(kCCTOpenInBrowserButtonIfEnabledByEmbedder); |
| BASE_DECLARE_FEATURE(kCCTPredictiveBackGesture); |
| BASE_DECLARE_FEATURE(kCCTPrewarmTab); |
| BASE_DECLARE_FEATURE(kCCTReportParallelRequestStatus); |
| BASE_DECLARE_FEATURE(kCCTReportPrerenderEvents); |
| BASE_DECLARE_FEATURE(kCCTResizableForThirdParties); |
| BASE_DECLARE_FEATURE(kCCTRetainingStateInMemory); |
| BASE_DECLARE_FEATURE(kCCTRevampedBranding); |
| BASE_DECLARE_FEATURE(kCCTTabModalDialog); |
| BASE_DECLARE_FEATURE(kCCTToolbarRefactor); |
| BASE_DECLARE_FEATURE(kDefaultBrowserPromoAndroid2); |
| BASE_DECLARE_FEATURE(kDontAutoHideBrowserControls); |
| BASE_DECLARE_FEATURE(kCacheDeprecatedSystemLocationSetting); |
| BASE_DECLARE_FEATURE(kChangeUnfocusedPriority); |
| BASE_DECLARE_FEATURE(kChromeShareScreenshot); |
| BASE_DECLARE_FEATURE(kChromeSharingHubLaunchAdjacent); |
| BASE_DECLARE_FEATURE(kChromeSurveyNextAndroid); |
| BASE_DECLARE_FEATURE(kClankStartupLatencyInjection); |
| BASE_DECLARE_FEATURE(kClankWhatsNew); |
| BASE_DECLARE_FEATURE(kClearBrowsingDataAndroidSurvey); |
| BASE_DECLARE_FEATURE(kClearInstanceInfoWhenClosedIntentionally); |
| BASE_DECLARE_FEATURE(kCommandLineOnNonRooted); |
| BASE_DECLARE_FEATURE(kContextMenuSysUiMatchesActivity); |
| BASE_DECLARE_FEATURE(kContextMenuTranslateWithGoogleLens); |
| BASE_DECLARE_FEATURE(kContextualSearchDisableOnlineDetection); |
| BASE_DECLARE_FEATURE(kContextualSearchSuppressShortView); |
| BASE_DECLARE_FEATURE(kControlsVisibilityFromNavigations); |
| BASE_DECLARE_FEATURE(kCpaSpecUpdate); |
| BASE_DECLARE_FEATURE(kCrossDeviceTabPaneAndroid); |
| BASE_DECLARE_FEATURE(kDeviceAuthenticatorAndroidx); |
| BASE_DECLARE_FEATURE(kDisableCompositedProgressBar); |
| BASE_DECLARE_FEATURE(kDisableInstanceLimit); |
| BASE_DECLARE_FEATURE(kDisableListTabSwitcher); |
| BASE_DECLARE_FEATURE(kDontPrefetchLibraries); |
| BASE_DECLARE_FEATURE(kDrawKeyNativeEdgeToEdge); |
| BASE_DECLARE_FEATURE(kEdgeToEdgeBottomChin); |
| BASE_DECLARE_FEATURE(kEdgeToEdgeEverywhere); |
| BASE_DECLARE_FEATURE(kEdgeToEdgeWebOptIn); |
| BASE_DECLARE_FEATURE(kEdgeToEdgeSafeAreaConstraint); |
| BASE_DECLARE_FEATURE(kEducationalTipDefaultBrowserPromoCard); |
| BASE_DECLARE_FEATURE(kEmptyTabListAnimationKillSwitch); |
| BASE_DECLARE_FEATURE(kEnableXAxisActivityTransition); |
| BASE_DECLARE_FEATURE(kExperimentsForAgsa); |
| BASE_DECLARE_FEATURE(kFloatingSnackbar); |
| BASE_DECLARE_FEATURE(kForceBrowserControlsUponExitingFullscreen); |
| BASE_DECLARE_FEATURE(kForceListTabSwitcher); |
| BASE_DECLARE_FEATURE(kForceTranslucentNotificationTrampoline); |
| BASE_DECLARE_FEATURE(kFullscreenInsetsApiMigration); |
| BASE_DECLARE_FEATURE(kFullscreenInsetsApiMigrationOnAutomotive); |
| BASE_DECLARE_FEATURE(kGridTabSwitcherSurfaceColorUpdate); |
| BASE_DECLARE_FEATURE(kGroupNewTabWithParent); |
| BASE_DECLARE_FEATURE(kHeadlessTabModel); |
| BASE_DECLARE_FEATURE(kHistoryPaneAndroid); |
| BASE_DECLARE_FEATURE(kLockBackPressHandlerAtStart); |
| BASE_DECLARE_FEATURE(kIncognitoScreenshot); |
| BASE_DECLARE_FEATURE(kInstanceSwitcherV2); |
| BASE_DECLARE_FEATURE(kImprovedA2HS); |
| BASE_DECLARE_FEATURE(kKeyboardEscBackNavigation); |
| BASE_DECLARE_FEATURE(kLanguagesPreference); |
| BASE_DECLARE_FEATURE(kLegacyTabStateDeprecation); |
| BASE_DECLARE_FEATURE(kLensOnQuickActionSearchWidget); |
| BASE_DECLARE_FEATURE(kLocationBarModelOptimizations); |
| BASE_DECLARE_FEATURE(kMagicStackAndroid); |
| BASE_DECLARE_FEATURE(kMayLaunchUrlUsesSeparateStoragePartition); |
| BASE_DECLARE_FEATURE(kMiniOriginBar); |
| BASE_DECLARE_FEATURE(kMostVisitedTilesCustomization); |
| BASE_DECLARE_FEATURE(kMostVisitedTilesReselect); |
| BASE_DECLARE_FEATURE(kMultiInstanceApplicationStatusCleanup); |
| BASE_DECLARE_FEATURE(kNativePageTransitionHardwareCapture); |
| BASE_DECLARE_FEATURE(kNavBarColorAnimation); |
| BASE_DECLARE_FEATURE(kNavBarColorMatchesTabBackground); |
| BASE_DECLARE_FEATURE(kNewTabSearchEngineUrlAndroid); |
| BASE_DECLARE_FEATURE(kNewTabPageAndroidTriggerForPrerender2); |
| BASE_DECLARE_FEATURE(kNotificationPermissionVariant); |
| BASE_DECLARE_FEATURE(kNotificationPermissionBottomSheet); |
| BASE_DECLARE_FEATURE(kNotificationTrampoline); |
| BASE_DECLARE_FEATURE(kOmahaMinSdkVersionAndroid); |
| BASE_DECLARE_FEATURE(kAvoidRelayoutDuringFocusAnimation); |
| BASE_DECLARE_FEATURE(kShortCircuitUnfocusAnimation); |
| BASE_DECLARE_FEATURE(kShowNewTabAnimations); |
| BASE_DECLARE_FEATURE(kOptimizeGeolocationHeaderGeneration); |
| BASE_DECLARE_FEATURE(kPageAnnotationsService); |
| BASE_DECLARE_FEATURE(kPageContentProvider); |
| BASE_DECLARE_FEATURE(kPowerSavingModeBroadcastReceiverInBackground); |
| BASE_DECLARE_FEATURE(kPreconnectOnTabCreation); |
| BASE_DECLARE_FEATURE(kPriceChangeModule); |
| BASE_DECLARE_FEATURE(kProcessRankPolicyAndroid); |
| BASE_DECLARE_FEATURE(kProtectedTabsAndroid); |
| BASE_DECLARE_FEATURE(kPwaRestoreUi); |
| BASE_DECLARE_FEATURE(kPwaRestoreUiAtStartup); |
| BASE_DECLARE_FEATURE(kPartnerCustomizationsUma); |
| BASE_DECLARE_FEATURE(kQuickDeleteAndroidSurvey); |
| BASE_DECLARE_FEATURE(kReadAloud); |
| BASE_DECLARE_FEATURE(kReadAloudAudioOverviews); |
| BASE_DECLARE_FEATURE(kReadAloudAudioOverviewsFeedback); |
| BASE_DECLARE_FEATURE(kReadAloudInOverflowMenuInCCT); |
| BASE_DECLARE_FEATURE(kReadAloudInMultiWindow); |
| BASE_DECLARE_FEATURE(kReadAloudBackgroundPlayback); |
| BASE_DECLARE_FEATURE(kReadAloudPlayback); |
| BASE_DECLARE_FEATURE(kReadAloudTapToSeek); |
| BASE_DECLARE_FEATURE(kReadAloudServerExperiments); |
| BASE_DECLARE_FEATURE(kReadAloudIPHMenuButtonHighlightCCT); |
| BASE_DECLARE_FEATURE(kReengagementNotification); |
| BASE_DECLARE_FEATURE(kRecordSuppressionMetrics); |
| BASE_DECLARE_FEATURE(kRelatedSearchesAllLanguage); |
| BASE_DECLARE_FEATURE(kRelatedSearchesSwitch); |
| BASE_DECLARE_FEATURE(kRemoveTabFocusOnShowingAndSelect); |
| BASE_DECLARE_FEATURE(kReportParentalControlSitesChild); |
| BASE_DECLARE_FEATURE(kRightEdgeGoesForwardGestureNav); |
| BASE_DECLARE_FEATURE(kSearchInCCT); |
| BASE_DECLARE_FEATURE(kSearchInCCTAlternateTapHandling); |
| BASE_DECLARE_FEATURE(kSearchResumptionModuleAndroid); |
| BASE_DECLARE_FEATURE(kSettingsSingleActivity); |
| BASE_DECLARE_FEATURE(kShareCustomActionsInCCT); |
| BASE_DECLARE_FEATURE(kSharingHubLinkToggle); |
| BASE_DECLARE_FEATURE(kSkipIsolatedSplitPreload); |
| BASE_DECLARE_FEATURE(kSmallerTabStripTitleLimit); |
| BASE_DECLARE_FEATURE(kScrollToTLDOptimization); |
| BASE_DECLARE_FEATURE(kSuppressToolbarCapturesAtGestureEnd); |
| BASE_DECLARE_FEATURE(kSwapNewTabAndNewTabInGroupAndroid); |
| BASE_DECLARE_FEATURE(kTabGroupEntryPointsAndroid); |
| BASE_DECLARE_FEATURE(kTabGroupParityBottomSheetAndroid); |
| BASE_DECLARE_FEATURE(kToolbarPhoneCleanup); |
| BASE_DECLARE_FEATURE(kTabStateFlatBuffer); |
| BASE_DECLARE_FEATURE(kTabStripContextMenuAndroid); |
| BASE_DECLARE_FEATURE(kTabStripGroupDragDropAndroid); |
| BASE_DECLARE_FEATURE(kTabStripGroupReorderAndroid); |
| BASE_DECLARE_FEATURE(kTabStripIncognitoMigration); |
| BASE_DECLARE_FEATURE(kTabStripLayoutOptimization); |
| BASE_DECLARE_FEATURE(kTabClosureMethodRefactor); |
| BASE_DECLARE_FEATURE(kTabStripTransitionInDesktopWindow); |
| BASE_DECLARE_FEATURE(kTabSwitcherColorBlendAnimate); |
| BASE_DECLARE_FEATURE(kTabSwitcherForeignFaviconSupport); |
| BASE_DECLARE_FEATURE(kTabWindowManagerReportIndicesMismatch); |
| BASE_DECLARE_FEATURE(kHideTabletToolbarDownloadButton); |
| BASE_DECLARE_FEATURE(kTestDefaultDisabled); |
| BASE_DECLARE_FEATURE(kTestDefaultEnabled); |
| BASE_DECLARE_FEATURE(kTileContextMenuRefactor); |
| BASE_DECLARE_FEATURE(kTraceBinderIpc); |
| BASE_DECLARE_FEATURE(kStartSurfaceReturnTime); |
| BASE_DECLARE_FEATURE(kUmaBackgroundSessions); |
| BASE_DECLARE_FEATURE(kUpdateCompositorForSurfaceControl); |
| BASE_DECLARE_FEATURE(kUseLibunwindstackNativeUnwinderAndroid); |
| BASE_DECLARE_FEATURE(kWebOtpCrossDeviceSimpleString); |
| BASE_DECLARE_FEATURE(kGridTabSwitcherUpdate); |
| |
| // For FeatureParam, Alphabetical: |
| constexpr base::FeatureParam<int> kAppIntegrationMaxDonationCountParam( |
| &kAndroidAppIntegrationMultiDataSource, |
| "max_donation_count", |
| 100); |
| |
| constexpr base::FeatureParam<int> kAppIntegrationCCTVisitDurationLimitSecParam( |
| &kAndroidAppIntegrationMultiDataSource, |
| "cct_visit_duration_limit_sec", |
| 3); |
| |
| constexpr base::FeatureParam<int> kAuxiliarySearchMaxBookmarksCountParam( |
| &kAuxiliarySearchDonation, |
| "auxiliary_search_max_donation_bookmark", |
| 100); |
| |
| constexpr base::FeatureParam<size_t> kAuxiliarySearchMaxTabsCountParam( |
| &kAuxiliarySearchDonation, |
| "auxiliary_search_max_donation_tab", |
| 100); |
| |
| constexpr base::FeatureParam<bool> kEdgeToEdgeBottomChinDebugParam( |
| &kEdgeToEdgeBottomChin, |
| "debug_bottom_chin", |
| /*default_value=*/false); |
| |
| constexpr base::FeatureParam<bool> kCCTNavigationalPrefetchHoldback( |
| &kCCTNavigationalPrefetch, |
| "holdback", |
| false); |
| |
| // If it does not support PERCEPTIBLE importance (e.g. Android Q- does not |
| // support not-perceptible binding), protected tabs have MODERATE importance as |
| // fallback. |
| constexpr base::FeatureParam<bool> kFallbackToModerateParam( |
| &kProtectedTabsAndroid, |
| "fallback_to_moderate", |
| /*default_value=*/false); |
| |
| constexpr base::FeatureParam<std::string> kQuickDeleteAndroidSurveyTriggerId( |
| &kQuickDeleteAndroidSurvey, |
| "trigger_id", |
| /*default_value=*/""); |
| |
| } // namespace android |
| } // namespace chrome |
| |
| #endif // CHROME_BROWSER_FLAGS_ANDROID_CHROME_FEATURE_LIST_H_ |