// 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.
// status=deprecated -> Alias for "test", will be removed at some point.
// Features without a status are not enabled anywhere by default.
//
// "stable" features listed here should be rare, as anything which we've shipped stable
// can have its runtime flag removed soon after.
//
// condition=ENABLE_NAME is used for wrapping features in compile-time
// #if ENABLE(FEATURE) guards.  These are deprecated and should all be removed.

AnyPointerMediaQueries status=experimental
AudioVideoTracks depends_on=Media, status=experimental
AuthorShadowDOMForAnyElement
Beacon status=stable

// This feature is deprecated and we are evangalizing affected sites.
// See https://crbug.com/346236 for current status.
PrefixedVideoFullscreen status=stable

// Enable bleeding-edge code to make Blink draw content faster.
// The changes enabled behind this flag are very likely to break lots of content.
// ** DO NOT use this flag unless you know what you are doing. **
BleedingEdgeFastPaths

ClientHintsDpr status=experimental
Crypto status=stable
CSSAnimationUnprefixed status=experimental
CSSAttributeCaseSensitivity status=experimental
CSSMaskSourceType status=experimental
CSSOMSmoothScroll status=experimental
CSSTouchActionDelay status=test
CSSViewport status=experimental
CSS3Text status=experimental
CSS3TextDecorations status=experimental
CompositedSelectionUpdates
CustomSchemeHandler depends_on=NavigatorContentUtils, status=experimental
Database status=stable
DeviceLight status=experimental
SVGFontsOnNonGDIPlatforms
EncodingAPI status=stable
EncryptedMedia status=test
EncryptedMediaAnyVersion status=stable
ExecCommandInJavaScript status=test
ExperimentalCanvasFeatures status=test
ExperimentalWebSocket status=stable
FastMobileScrolling
FileAPIBlobClose status=experimental
FileConstructor status=stable
FileSystem status=stable
FullscreenUnprefixed status=test
Geofencing status=test
GeometryInterfaces status=test
IMEAPI status=experimental
ImageDataConstructor status=experimental
ImageRenderingPixelated status=stable
IndexedDBExperimental status=experimental
InputModeAttribute status=experimental
LangAttributeAwareFormControlUI
LayerSquashing status=stable
PrefixedEncryptedMedia status=stable
LocalStorage status=stable
Manifest status=test
Media status=stable
MediaCapture
MediaQueryParser status=stable
MediaSource status=stable
MediaSourceExperimental depends_on=MediaSource, status=experimental
NavigationTransitions status=experimental
NavigatorContentUtils
NetworkInformation status=stable
Notifications status=stable
ObjectFitPosition status=stable
OrientationEvent
// Only enabled on Android, and for certain layout tests on Linux.
OverlayFullscreenVideo
PathOpsSVGClipping status=stable
PreciseMemoryInfo
PushMessaging status=experimental
QuotaPromise status=experimental
OverlayScrollbars status=stable
RegionBasedColumns status=experimental

RequestAutocomplete status=test
ScreenOrientation status=stable

// Implements documentElement.scrollTop/Left and bodyElement.scrollTop/Left
// as per the spec, matching other Web engines.
ScrollTopLeftInterop status=experimental

SessionStorage status=stable
PictureSizes status=stable
Picture status=stable

// Lax Mixed Content checking for WebSockets, XHR, etc. is deprecated and slated for removal. crbug.com/389089
LaxMixedContentChecking status=deprecated

Stream status=experimental
SubpixelFontScaling status=stable

// Enable optimizations to recalculate style on the fewest possible number of
// elements when updating classes, ids or attributes of DOM elements.
TargetedStyleRecalc 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

// Temporary setting to allow easy rollback of change to hover media feature.
HoverMediaQueryKeywords status=stable

TextBlob
TouchIconLoading
UserSelectAll status=experimental
WebAnimationsAPI status=experimental
WebGLDraftExtensions status=experimental
WebGLImageChromium
WOFF2 status=stable

PseudoClassesInMatchingCriteriaInAuthorShadowTrees status=test

CredentialManager status=test
