blob: 86863aea4b4bdb1e6633c66aabac05339bd2ff6e [file] [log] [blame]
// 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(kWebViewAddQuicHints);
BASE_DECLARE_FEATURE(kWebViewAutoSAA);
BASE_DECLARE_FEATURE(kWebViewBackForwardCache);
// TODO(crbug.com/455296998): Remove this code for M145.
BASE_DECLARE_FEATURE(kWebViewBypassHttpCacheForPrefetchFromHeader);
BASE_DECLARE_FEATURE(kWebViewConfigurableLibraryPrefetch);
BASE_DECLARE_FEATURE(kWebViewDigitalAssetLinksLoadIncludes);
BASE_DECLARE_FEATURE(kWebViewDisableCHIPS);
BASE_DECLARE_FEATURE(kWebViewDrainPrefetchQueueDuringInit);
BASE_DECLARE_FEATURE(kWebViewFileSystemAccess);
BASE_DECLARE_FEATURE(kWebViewIgnoreDuplicateNavs);
BASE_DECLARE_FEATURE(kWebViewInvokeZoomPickerOnGSU);
BASE_DECLARE_FEATURE(kWebViewLazyFetchHandWritingIcon);
BASE_DECLARE_FEATURE(kWebViewMixedContentAutoupgrades);
BASE_DECLARE_FEATURE(kWebViewMuteAudio);
BASE_DECLARE_FEATURE(kWebViewRenderDocument);
BASE_DECLARE_FEATURE(kWebViewReportImeInsets);
BASE_DECLARE_FEATURE(kWebViewTestFeature);
BASE_DECLARE_FEATURE(kWebViewUseMetricsUploadService);
BASE_DECLARE_FEATURE(kWebViewUseMetricsUploadServiceOnlySdkRuntime);
BASE_DECLARE_FEATURE(kWebViewPropagateNetworkChangeSignals);
BASE_DECLARE_FEATURE(kWebViewStartupTasksYieldToNative);
BASE_DECLARE_FEATURE(kWebViewUnreducedProductVersion);
BASE_DECLARE_FEATURE(kWebViewUseRenderingHeuristic);
BASE_DECLARE_FEATURE(kWebViewUseStartupTasksLogic);
BASE_DECLARE_FEATURE(kWebViewUseStartupTasksLogicP2);
BASE_DECLARE_FEATURE(kWebViewUseViewPositionObserverForInsets);
BASE_DECLARE_FEATURE(kWebViewUseInitialNetworkStateAtStartup);
BASE_DECLARE_FEATURE(kWebViewReduceUAAndroidVersionDeviceModel);
BASE_DECLARE_FEATURE(kWebViewEnableCrash);
BASE_DECLARE_FEATURE(kWebViewPreloadClasses);
BASE_DECLARE_FEATURE(kWebViewPrefetchNativeLibrary);
extern const base::FeatureParam<bool> kWebViewPrefetchFromRenderer;
BASE_DECLARE_FEATURE(kWebViewSafeAreaIncludesSystemBars);
BASE_DECLARE_FEATURE(kWebViewSkipInterceptsForPrefetch);
BASE_DECLARE_FEATURE(kWebViewDoNotSendAccessibilityEventsOnGSU);
BASE_DECLARE_FEATURE(kWebViewHyperlinkContextMenu);
BASE_DECLARE_FEATURE(kCreateSpareRendererOnBrowserContextCreation);
BASE_DECLARE_FEATURE(kWebViewWebauthn);
BASE_DECLARE_FEATURE(kWebViewInterceptedCookieHeader);
BASE_DECLARE_FEATURE(kWebViewInterceptedCookieHeaderReadWrite);
BASE_DECLARE_FEATURE(kWebViewShortCircuitShouldInterceptRequest);
BASE_DECLARE_FEATURE(kWebViewRecordAppCacheHistograms);
BASE_DECLARE_FEATURE(kWebViewQuicConnectionTimeout);
extern const base::FeatureParam<int> kWebViewQuicConnectionTimeoutSeconds;
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(kWebViewConnectToComponentProviderInBackground);
BASE_DECLARE_FEATURE(kAndroidMetricsAsyncMetricLogging);
BASE_DECLARE_FEATURE(kWebViewReducedSeedExpiration);
BASE_DECLARE_FEATURE(kWebViewReducedSeedRequestPeriod);
BASE_DECLARE_FEATURE(kWebViewEarlyStartupTracing);
BASE_DECLARE_FEATURE(kWebViewEarlyPerfettoInit);
BASE_DECLARE_FEATURE(kWebViewCacheBoundaryInterfaceMethods);
BASE_DECLARE_FEATURE(kWebViewOptInToGmsBindServiceOptimization);
BASE_DECLARE_FEATURE(kWebViewMoveWorkToProviderInit);
BASE_DECLARE_FEATURE(kWebViewBypassProvisionalCookieManager);
BASE_DECLARE_FEATURE(kWebViewPersistentMetricsInNoBackupDir);
BASE_DECLARE_FEATURE(kPrerender2WarmUpCompositorForWebView);
BASE_DECLARE_FEATURE(kWebViewFetchOriginTrialsComponent);
} // namespace android_webview::features
#endif // ANDROID_WEBVIEW_COMMON_AW_FEATURES_H_