blob: 771897370130143c338bb0443ec548b2d3920ce8 [file] [log] [blame]
// http://dev.chromium.org/blink/runtime-enabled-features
//
// This list is used to generate RuntimeEnabledFeatures.h/cpp which contains
// a class that stores static enablers for all experimental features.
//
// Each feature can be assigned a "status":
// status=stable -> Enable this in all Blink configurations. We are committed to these APIs indefinitely.
// status=experimental -> In-progress features, Web Developers might play with, but are not on by default in stable.
// status=test -> Enabled in ContentShell for testing, otherwise off.
// Features without a status are not enabled anywhere by default.
//
// "implied_by" or "depends_on" specifies relationship to other features:
// implied_by=feature1[,feature2,...] -> The feature is automatically enabled if any implied_by features is enabled;
// depends_on=feature1[,feature2,...] -> The feature is enabled only if all depends_on features are enabled.
// Only one of "implied_by" and "depends_on" can be specified.
//
// "stable" features listed here should be rare, as anything which we've shipped stable
// can have its runtime flag removed soon after.
//
// origin_trial_feature_name=FEATURE_NAME is used to integrate the feature with
// the Origin Trials framework. The framework allows the feature to be enabled
// at runtime on a per-page basis through a signed token for the corresponding
// feature name. Declaring the origin_trial_feature_name will cause a static
// method to be generated in OriginTrials.h/cpp. This static method allows the
// feature implementation to check if it is enabled for the current context.
//
// settable_from_internals specifies whether a feature can be set from internals.runtimeFlags, with the default
// being false.
Accelerated2dCanvas status=stable, settable_from_internals=True
AudioOutputDevices status=stable
AudioVideoTracks status=experimental
AudioWorklet status=experimental
Auxclick status=stable
BackgroundSync status=stable
BackspaceDefaultHandler status=test
BroadcastChannel status=stable
Budget status=experimental
Canvas2dFixedRenderingMode status=test
EnableCanvas2dDynamicRenderingModeSwitching status=experimental
CanMakeActivePayment status=experimental
Canvas2dImageChromium status=experimental
ClientHints status=stable
CompositeOpaqueFixedPosition status=stable, settable_from_internals=True
CompositeOpaqueScrollers status=stable, settable_from_internals=True
ColorCorrectRendering settable_from_internals=True
CompositedSelectionUpdate
CompositorWorker status=experimental
ContextMenu status=test
CorsRFC1918 status=test
CredentialManager status=stable
CSS3Text status=experimental
CSS3TextDecorations status=stable
CSSApplyAtRules status=experimental
CSSAdditiveAnimations status=experimental, depends_on=StackedCSSPropertyAnimations
CSSBackdropFilter status=experimental
CSSHexAlphaColor status=experimental
CSSContainment status=stable
CSSFontDisplay status=experimental
CSSFontSizeAdjust status=experimental
CSSGridLayout status=stable, settable_from_internals=True
CSSDisplayContents status=experimental
CSSHyphens status=stable
CSSInBodyDoesNotBlockPaint status=experimental
CSSIndependentTransformProperties status=experimental
CSSMaskSourceType status=experimental
CSSOMSmoothScroll status=experimental
CSSOffsetPositionAnchor status=experimental
CSSPaintAPI status=experimental, depends_on=CSSTypedOM, depends_on=Worklet
CSSSnapSize status=experimental
CSSStickyPosition status=stable
CSSTouchActionPanDirections status=stable
CSSTouchActionPinchZoom status=stable
CSSTypedOM status=experimental
CSSVariables2 status=experimental
CSSViewport status=experimental
CSSScrollSnapPoints status=test
CustomElementsBuiltin status=test
CustomElementsV1 status=stable
CustomSchemeHandler depends_on=NavigatorContentUtils, status=experimental
Database status=stable
DecodeToYUV status=experimental
DesktopCaptureDisableLocalEchoControl status=experimental
DeviceLight status=experimental
DisplayList2dCanvas status=stable
DocumentCookie
DocumentDomain
DocumentWrite
DocumentWriteEvaluator
DOMConvenienceAPI status=stable
DurableStorage status=stable
ExpensiveBackgroundTimerThrottling status=experimental
FontCacheScaling status=test
ForceDisplayList2dCanvas
// See crbug.com/585250.
ForceDisable2dCanvasCopyOnWrite
EmbedderCSPEnforcement status=experimental
ExecCommandInJavaScript status=test
ComputedAccessibilityInfo status=experimental
ExperimentalCanvasFeatures status=test
ExperimentalContentSecurityPolicyFeatures status=experimental
ExperimentalV8Extras status=experimental
FastMobileScrolling
FeaturePolicy status=experimental
FileAPIBlobClose status=experimental
FileSystem status=stable
ForeignFetch status=experimental, origin_trial_feature_name=ForeignFetch
FramebustingNeedsSameOriginOrUserGesture status=stable, settable_from_internals=True
FullscreenUnprefixed status=test, settable_from_internals=True
FrameTimingSupport status=experimental
GamepadExtensions origin_trial_feature_name=WebVR
GeometryInterfaces status=experimental, implied_by=CompositorWorker
GetUserMedia status=stable
GlobalCacheStorage status=stable
IDBObserver status=experimental
ImageCapture status=experimental, origin_trial_feature_name=ImageCapture
ImageOrientation status=test
IndexedDBExperimental status=experimental
InertTopControls status=stable
InputEvent status=experimental
InputModeAttribute status=experimental
InputMultipleFieldsUI status=stable
InstalledApp status=experimental
IntersectionObserver status=stable
LangAttributeAwareFormControlUI
LayoutNG
LayoutNGInline
LinkServiceWorker status=experimental, origin_trial_feature_name=ForeignFetch
LongTaskObserver status=experimental, origin_trial_feature_name=LongTaskObserver
FractionalScrollOffsets
LoadingWithMojo
MediaCapture
MediaCaptureFromCanvas status=stable
MediaCaptureFromVideo status=experimental
MediaConstraints status=stable
MediaDocumentDownloadButton
MediaGetSettings status=test
MediaSession status=experimental
MediaSourceExperimental status=experimental
MediaSourceNewAbortAndDuration status=experimental
MediaStreamSpeech status=experimental
MemoryInfoInWorkers status=experimental
// This is enabled by default on Windows only. The only part that's
// "experimental" is the support on other platforms.
MiddleClickAutoscroll status=experimental
MobileLayoutTheme
ModuleScripts status=test
NavigatorContentUtils
WebNFC status=experimental
NetworkInformation status=stable
NetInfoDownlinkMax status=stable
NotificationConstructor status=stable
NotificationBadge status=stable
NotificationContentImage status=stable
NotificationInlineReplies status=experimental
Notifications status=stable
OnDeviceChange status=experimental
OrientationEvent
OriginTrials status=stable
// Define a sample API for testing integration with the Origin Trials Framework.
// The sample API is used in both unit and layout tests for the Origin Trials
// Framework. Do not change this flag to stable, as it exists solely to generate
// code used by the sample API implementation.
OriginTrialsSampleAPI origin_trial_feature_name=Frobulate
// For simulating Android's overlay fullscreen video in layout tests on Linux.
ForceOverlayFullscreenVideo
OverlayScrollbars
PagePopup status=stable
PaintUnderInvalidationChecking settable_from_internals=True
PassiveDocumentEventListeners status=stable
PassiveEventListenersDueToFling status=experimental
PassPaintVisualRectToCompositor
PaymentApp status=experimental
// PaymentRequest is enabled by default on Android
PaymentRequest status=experimental
PaymentRequestPayerName status=stable
PerformanceObserver status=stable
PermissionDelegation status=test
Permissions status=stable
PermissionsRequestRevoke status=experimental
PointerEvent status=stable
// For temporary compat testing of Edge-like model - crbug.com/640700
PointerEventV1SpecCapturing
PreciseMemoryInfo
PreferredImageRasterBounds settable_from_internals=True
// This feature is deprecated and we are evangelizing affected sites.
// See https://crbug.com/346236 for current status.
PrefixedVideoFullscreen status=stable
Presentation status=stable
PresentationReceiver status=test
PushMessaging status=stable
QuotaPromise status=experimental
ReducedReferrerGranularity
ReloadwithoutSubResourceCacheRevalidation
RemotePlayback status=experimental
RenderingPipelineThrottling status=stable
RenderingPipelineThrottlingLoadingIframes status=stable
RenderUnicodeControlCharacters status=stable
ResizeObserver status=experimental
// Handles frame scrolling via the root PaintLayer instead of the FrameView.
// crbug.com/417782 tracks enabling this by default.
RootLayerScrolling
RTCPeerConnectionNewGetStats status=test
ScriptedSpeech status=stable
// Scrolls to compensate for layout movements (bit.ly/scroll-anchoring).
ScrollAnchoring status=experimental, settable_from_internals=True
// Implements documentElement.scrollTop/Left and bodyElement.scrollTop/Left
// as per the spec, matching other Web engines.
ScrollTopLeftInterop status=experimental
Sensor status=experimental
ServiceWorkerNavigationPreload
SetRootScroller status=experimental
ShadowPiercingDescendantCombinator status=test
ShapeDetection status=experimental
SharedArrayBuffer
SharedWorker status=stable
SlimmingPaintInvalidation implied_by=SlimmingPaintV2
SlimmingPaintV2
SlimmingPaintStrictCullRectClipping
// Used as argument in attribute of stable-release functions/interfaces where
// a runtime-enabled feature name is required for correct IDL syntax.
// This is a global flag; do not change its status.
StableBlinkFeatures status=stable
StackedCSSPropertyAnimations status=experimental
StyleSharing status=stable
// Do not turn this flag into stable, because many interfaces that should not
// be shipped would be enabled. Instead, remove the flag from the shipping
// interface.
SpeculativeLaunchServiceWorker
StorageEstimate status=experimental
Suborigins status=experimental
TimerThrottlingForBackgroundTabs status=stable
TimerThrottlingForHiddenFrames status=stable
// Many websites disable mouse support when touch APIs are available. We'd
// like to enable this always but can't until more websites fix this bug.
// Chromium sets this conditionally (eg. based on the presence of a
// touchscreen) in ApplyWebPreferences.
Touch status=stable
TraceWrappables status=stable
TrustedEventsDefaultAction status=stable
UserSelectAll status=stable
WebAnimationsAPI status=experimental
WebAnimationsSVG status=experimental
WebAssemblySerialization status=test
// WebBluetooth is enabled by default on Android, ChromeOS and Mac.
WebBluetooth status=experimental
WebGLDraftExtensions status=experimental
WebGLImageChromium
WebUSB status=experimental, origin_trial_feature_name=WebUSB
WebVR origin_trial_feature_name=WebVR
WebVTTRegions status=experimental
V8BasedStructuredClone
V8IdleTasks
VisibilityChangeOnUnload status=stable
XSLT status=stable
smil status=stable
ScrollCustomization
AutoplayMutedVideos settable_from_internals=True
VisualViewportAPI status=experimental
WakeLock status=experimental
WebFontsInterventionV2With2G
WebFontsInterventionV2With3G
WebFontsInterventionV2WithSlow2G
WebFontsInterventionTrigger
WebShare status=experimental, origin_trial_feature_name=WebShare, origin_trial_os=android
Worklet status=experimental
LazyParseCSS status=experimental
ParseHTMLOnMainThread status=test
SendBeaconThrowForBlobWithNonSimpleType status=experimental
PerformanceNavigationTiming2 status=test