| // Copyright 2018 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef ANDROID_WEBVIEW_COMMON_AW_FEATURES_H_ |
| #define ANDROID_WEBVIEW_COMMON_AW_FEATURES_H_ |
| |
| #include "base/feature_list.h" |
| #include "base/metrics/field_trial_params.h" |
| #include "base/time/time.h" |
| |
| namespace android_webview::features { |
| |
| // All features in alphabetical order. The features should be documented |
| // alongside the definition of their values in the .cc file. |
| |
| // Alphabetical: |
| BASE_DECLARE_FEATURE(kCreateSpareRendererForDefaultProfile); |
| BASE_DECLARE_FEATURE(kPostChromiumStartupInWebViewConstructor); |
| BASE_DECLARE_FEATURE(kPrerender2WarmUpCompositorForWebView); |
| BASE_DECLARE_FEATURE(kStartupNonBlockingWebViewConstructor); |
| BASE_DECLARE_FEATURE(kWebViewAddQuicHints); |
| BASE_DECLARE_FEATURE(kWebViewAwClassPreloader); |
| BASE_DECLARE_FEATURE(kWebViewBackForwardCache); |
| BASE_DECLARE_FEATURE(kWebViewBackgroundClassPreloading); |
| BASE_DECLARE_FEATURE(kWebViewBackgroundTracingInit); |
| BASE_DECLARE_FEATURE(kWebViewBoostRendererPriorityOnNavigation); |
| // TODO(crbug.com/455296998): Remove this code for M145. |
| BASE_DECLARE_FEATURE(kWebViewBypassHttpCacheForPrefetchFromHeader); |
| BASE_DECLARE_FEATURE(kWebViewCacheSizeLimitDerivedFromAppCacheQuota); |
| extern const base::FeatureParam<double> kWebViewCacheSizeLimitMultiplier; |
| extern const base::FeatureParam<int> kWebViewCacheSizeLimitMinimum; |
| extern const base::FeatureParam<int> kWebViewCacheSizeLimitMaximum; |
| extern const base::FeatureParam<double> kWebViewCodeCacheSizeLimitMultiplier; |
| BASE_DECLARE_FEATURE(kWebViewContentRestrictionSupport); |
| extern const base::FeatureParam<base::TimeDelta> |
| kWebViewContentRestrictionTimeout; |
| BASE_DECLARE_FEATURE(kWebViewCookieManagerSimplerUrlFixups); |
| BASE_DECLARE_FEATURE(kWebViewCppMetricsFiltering); |
| BASE_DECLARE_FEATURE(kWebViewCrossOriginAllowlistApi); |
| BASE_DECLARE_FEATURE(kWebViewDownloadFavicons); |
| BASE_DECLARE_FEATURE(kWebViewEarlyStartupTracing); |
| BASE_DECLARE_FEATURE(kWebViewEarlyTracingInit); |
| BASE_DECLARE_FEATURE(kWebViewEnableApiCallUserActions); |
| BASE_DECLARE_FEATURE(kWebViewEnableCrash); |
| BASE_DECLARE_FEATURE(kWebViewEnableDnsPlatform); |
| extern const base::FeatureParam<bool> kWebViewEnableDnsPlatformNoSystem; |
| BASE_DECLARE_FEATURE(kWebViewFasterGetDefaultUserAgent); |
| BASE_DECLARE_FEATURE(kWebViewFileSystemAccess); |
| BASE_DECLARE_FEATURE(kWebViewForceWebAuthn); |
| BASE_DECLARE_FEATURE(kWebViewObserveAccessibilityState); |
| BASE_DECLARE_FEATURE(kWebViewPurgeMemoryInBackground); |
| extern const base::FeatureParam<base::TimeDelta> |
| kWebViewPurgeMemoryInBackgroundDelay; |
| BASE_DECLARE_FEATURE(kWebViewGateTextSizeAdjustOnTextAutosizing); |
| BASE_DECLARE_FEATURE(kWebViewHttpCacheQuotaApi); |
| extern const base::FeatureParam<bool> kWebViewHttpCacheQuotaApiAllowShrinking; |
| extern const base::FeatureParam<bool> |
| kWebViewHttpCacheQuotaApiAllowForDefaultProfile; |
| extern const base::FeatureParam<bool> kWebViewHttpCacheQuotaApiRuntimeUpdate; |
| extern const base::FeatureParam<int> kWebViewHttpCacheQuotaApiMinimum; |
| extern const base::FeatureParam<int> kWebViewHttpCacheQuotaApiMaximum; |
| extern const base::FeatureParam<bool> kWebViewHttpCacheQuotaApiAffectsCodeCache; |
| extern const base::FeatureParam<bool> kWebViewHttpCacheQuotaApiForceBackendInit; |
| BASE_DECLARE_FEATURE(kWebViewHyperlinkContextMenu); |
| BASE_DECLARE_FEATURE(kWebViewIgnoreDuplicateNavs); |
| extern const base::FeatureParam<base::TimeDelta> kWebViewDuplicateNavThreshold; |
| BASE_DECLARE_FEATURE(kWebViewInitInConstructor); |
| BASE_DECLARE_FEATURE(kWebViewInvokeZoomPickerOnGSU); |
| BASE_DECLARE_FEATURE(kWebViewLatchedCookiePolicy); |
| BASE_DECLARE_FEATURE(kWebViewMemoryProfilingClient); |
| BASE_DECLARE_FEATURE(kWebViewMigrateVisitedLinks); |
| BASE_DECLARE_FEATURE(kWebViewMixedContentAutoupgrades); |
| BASE_DECLARE_FEATURE(kWebViewMoveWorkToProviderInit); |
| BASE_DECLARE_FEATURE(kWebViewMoveWorkToProviderInitThreadPool); |
| BASE_DECLARE_FEATURE(kWebViewMultiProfileSkipDefaultProfile); |
| BASE_DECLARE_FEATURE(kWebViewNavigate); |
| BASE_DECLARE_FEATURE(kWebViewNavigateDrainPrefetch); |
| BASE_DECLARE_FEATURE(kWebViewNonBlockingCookieStoreHandoff); |
| BASE_DECLARE_FEATURE(kWebViewOptInToGmsBindServiceOptimization); |
| BASE_DECLARE_FEATURE(kWebViewPersistentMetricsInNoBackupDir); |
| BASE_DECLARE_FEATURE(kWebViewPersistHttpServerProperties); |
| BASE_DECLARE_FEATURE(kWebViewPrefetchAheadOfPrerender); |
| BASE_DECLARE_FEATURE(kWebViewPrefetchNativeLibrary); |
| extern const base::FeatureParam<bool> kWebViewPrefetchFromRenderer; |
| BASE_DECLARE_FEATURE(kWebViewPrefetchOffTheMainThread); |
| BASE_DECLARE_FEATURE(kWebViewPrefetchOnRendererReuse); |
| BASE_DECLARE_FEATURE(kWebViewPrefetchPruneStaleWrappers); |
| BASE_DECLARE_FEATURE(kWebViewPreloadServingMetrics); |
| BASE_DECLARE_FEATURE(kWebViewProfileStoreNotTriggerStartup); |
| BASE_DECLARE_FEATURE(kWebViewPropagateNetworkChangeSignals); |
| BASE_DECLARE_FEATURE(kWebViewRecordAppCacheHistograms); |
| BASE_DECLARE_FEATURE(kWebViewReducedSeedExpiration); |
| BASE_DECLARE_FEATURE(kWebViewReducedSeedRequestPeriod); |
| BASE_DECLARE_FEATURE(kWebViewReduceUAAndroidVersionDeviceModel); |
| BASE_DECLARE_FEATURE(kWebViewRemoveInstantAppSupport); |
| BASE_DECLARE_FEATURE(kWebViewRenderDocument); |
| BASE_DECLARE_FEATURE(kWebViewRendererKeepAlive); |
| extern const base::FeatureParam<base::TimeDelta> |
| kWebViewRendererKeepAliveDuration; |
| BASE_DECLARE_FEATURE(kWebViewSaveStateIncludeHeaders); |
| BASE_DECLARE_FEATURE(kWebViewSetDownloadFaviconsEnabled); |
| BASE_DECLARE_FEATURE(kWebViewSingleSharedContextState); |
| BASE_DECLARE_FEATURE(kWebViewSkipInterceptsForPrefetch); |
| BASE_DECLARE_FEATURE(kWebViewStaticMethodsNotTriggerStartup); |
| BASE_DECLARE_FEATURE(kWebViewSubFrameCreatedDoNotUpdateClientMap); |
| BASE_DECLARE_FEATURE(kWebViewTestFeature); |
| BASE_DECLARE_FEATURE(kWebViewTestNonembeddedLowEntropySource); |
| BASE_DECLARE_FEATURE(kWebViewUnreducedProductVersion); |
| BASE_DECLARE_FEATURE(kWebViewUseMetricsUploadServiceOnlySdkRuntime); |
| BASE_DECLARE_FEATURE(kWebViewUseWVLESForLayeredStudy); |
| BASE_DECLARE_FEATURE(kWebViewVizDirectCompositorThreadIpcFrameSinkManager); |
| BASE_DECLARE_FEATURE(kWebViewWarmupNetworkService); |
| BASE_DECLARE_FEATURE(kWebViewWebAuthnRequiresSecureOrigin); |
| BASE_DECLARE_FEATURE(kWebViewWebPerformanceMetricsReporting); |
| // Don't add new features to the end! Insert them in alphabetical order to |
| // reduce conflicts. |
| |
| } // namespace android_webview::features |
| |
| #endif // ANDROID_WEBVIEW_COMMON_AW_FEATURES_H_ |