1 // http://dev.chromium.org/blink/runtime-enabled-features
3 // This list is used to generate RuntimeEnabledFeatures.h/cpp which contains
4 // a class that stores static enablers for all experimental features.
6 // Each feature can be assigned a "status":
7 // status=stable -> Enable this in all Blink configurations. We are committed to these APIs indefinitely.
8 // status=experimental -> In-progress features, Web Developers might play with, but are not on by default in stable.
9 // status=test -> Enabled in ContentShell for testing, otherwise off.
10 // status=deprecated -> Alias for "test", will be removed at some point.
11 // Features without a status are not enabled anywhere by default.
13 // "implied_by" or "depends_on" specifies relationship to other features:
14 // implied_by=feature1[,feature2,...] -> The feature is automatically enabled if any implied_by features is enabled;
15 // depends_on=feature1[,feature2,...] -> The feature is enabled only if all depends_on features are enabled.
16 // Only one of "implied_by" and "depends_on" can be specified.
18 // "stable" features listed here should be rare, as anything which we've shipped stable
19 // can have its runtime flag removed soon after.
21 // condition=ENABLE_NAME is used for wrapping features in compile-time
22 // #if ENABLE(FEATURE) guards. These are deprecated and should all be removed.
24 AdditiveAnimations status=experimental, depends_on=StackedCSSPropertyAnimations
25 AppBanner status=stable
27 ApplicationCache status=stable
28 AudioOutputDevices status=experimental
29 AudioVideoTracks depends_on=Media, status=experimental
30 AuthorShadowDOMForAnyElement
31 BackgroundSync status=experimental
32 BackgroundSyncPeriodic status=experimental
33 BackgroundSyncV2 status=experimental
34 // Enable bleeding-edge code to make Blink draw content faster.
35 // The changes enabled behind this flag are very likely to break lots of content.
36 // ** DO NOT use this flag unless you know what you are doing. **
38 CacheStorageMatchAll status=stable
39 ClientHints status=stable
40 ColumnFill status=experimental
41 CompositedSelectionUpdate
42 CompositorWorker status=experimental
43 // Unified Chrome Compositor and Blink Animations engine (Project Heaviside). crbug.com/394772
44 CompositorAnimationTimelines
45 ContextMenu status=experimental
46 CreateShadowRootWithParameter status=experimental
47 CredentialManager status=test
48 CSS3Text status=experimental
49 CSS3TextDecorations status=experimental
50 CSSAttributeCaseSensitivity status=experimental
51 CSSBackdropFilter status=experimental
52 CSSCompositing status=stable
53 CSSFontSizeAdjust status=experimental
54 CSSGridLayout status=experimental
55 CSSIndependentTransformProperties status=experimental
56 CSSMaskSourceType status=experimental
57 CSSMotionPath status=stable
58 CSSOMSmoothScroll status=experimental
60 CSSTouchActionPanDirections status=experimental
61 CSSViewport status=experimental
62 CSSScrollSnapPoints status=test
63 // getPropertyCSSValue, CSSValue, etc. will be removed once layout tests no longer depend on them. crbug.com/331608
64 CustomSchemeHandler depends_on=NavigatorContentUtils, status=experimental
65 Database status=stable
66 DecodeToYUV status=experimental
67 DeviceLight status=experimental
68 DisplayList2dCanvas status=stable
69 DurableStorage status=experimental
70 ForceDisplayList2dCanvas
71 EncryptedMedia status=stable
72 ExecCommandInJavaScript status=test
73 ComputedAccessibilityInfo status=experimental
74 ExperimentalCanvasFeatures status=test
75 ExperimentalContentSecurityPolicyFeatures status=experimental
77 FileAPIBlobClose status=experimental
78 FileSystem status=stable
79 FormDataNewMethods status=experimental
80 FullscreenUnprefixed status=test
81 FrameTimingSupport status=experimental
82 Geofencing status=experimental
83 GeometryInterfaces status=test
84 GetUserMedia depends_on=MediaDevices, status=experimental
85 GlobalCacheStorage status=stable
87 ImageOrientation status=test
88 ImageRenderingPixelated status=stable
89 IndexedDBExperimental status=experimental
90 InputDeviceCapabilities status=stable
91 InputModeAttribute status=experimental
92 KeyboardEventCode status=experimental
93 KeyboardEventKey status=test
94 LangAttributeAwareFormControlUI
95 LinkPreconnect status=stable
96 LinkPreload status=experimental
97 LinkHeader status=stable
98 FractionalScrollOffsets status=experimental
101 MediaController depends_on=Media, status=experimental
102 MediaDevices status=stable
103 MediaRecorder status=test
105 MediaSource status=stable
106 MediaSourceExperimental depends_on=MediaSource, status=experimental
107 MediaStreamSpeech status=experimental
108 MemoryInfoInWorkers status=experimental
109 NavigatorConnect status=experimental
110 NavigatorContentUtils
111 WebNFC status=experimental
112 NetworkInformation status=stable
113 NetInfoDownlinkMax status=experimental
115 NotificationConstructor status=stable
116 NotificationExperimental status=test
117 Notifications status=stable
119 // For simulating Android's overlay fullscreen video in layout tests on Linux.
120 ForceOverlayFullscreenVideo
122 PagePopup status=stable
123 PathOpsSVGClipping status=stable
124 PerformanceObserver status=experimental
125 Permissions status=stable
126 PermissionsRequestRevoke status=experimental
129 PrefixedEncryptedMedia status=deprecated
130 // This feature is deprecated and we are evangelizing affected sites.
131 // See https://crbug.com/346236 for current status.
132 PrefixedVideoFullscreen status=stable
133 Presentation status=stable
134 PromiseRejectionEvent status=experimental
135 PushMessaging status=stable
136 // Push messaging payloads are blocked on the Push API supporting encryption.
137 PushMessagingData status=test
138 QuotaPromise status=experimental
139 ReducedReferrerGranularity
140 RequestIdleCallback status=experimental
141 RequestAutocomplete status=test
142 RestrictIFramePermissions
143 SandboxBlocksModals status=stable
144 ScreenOrientation status=stable
145 ScriptedSpeech status=stable
146 // Implements documentElement.scrollTop/Left and bodyElement.scrollTop/Left
147 // as per the spec, matching other Web engines.
148 ScrollTopLeftInterop status=experimental
149 SelectionForComposedTree status=stable
150 SelectionPaintingWithoutSelectionGaps
151 ServiceWorkerClientAttributes status=stable
152 ServiceWorkerPerformanceTimeline status=stable
153 ServiceWorkerWindowClientNavigate status=experimental
154 ShadowRootClosedMode status=experimental
155 ShadowRootDelegatesFocus status=experimental
157 SharedWorker status=stable
159 SlimmingPaintUnderInvalidationChecking
160 SlimmingPaintStrictCullRectClipping
161 SlimmingPaintSubsequenceCaching implied_by=SlimmingPaintV2
162 StackedCSSPropertyAnimations status=experimental
163 StyleSharing status=stable
164 StyleMatchedPropertiesCache status=stable
165 // Do not turn this flag into stable, because many interfaces that should not
166 // be shipped would be enabled. Instead, remove the flag from the shipping
168 ExperimentalStream status=experimental
169 ReferrerPolicyAttribute status=experimental
170 Suborigins status=experimental
171 ThreadedParserDataReceiver
172 // Many websites disable mouse support when touch APIs are available. We'd
173 // like to enable this always but can't until more websites fix this bug.
174 // Chromium sets this conditionally (eg. based on the presence of a
175 // touchscreen) in ApplyWebPreferences.
178 TrustedEvents status=stable
179 TrustedEventsDefaultAction
181 UnsandboxedAuxiliary status=stable
182 UserSelectAll status=experimental
183 WebAnimationsAPI status=experimental
184 WebAnimationsSVG status=experimental
185 WebAudio condition=WEB_AUDIO, status=stable
187 WebGLDraftExtensions status=experimental
189 WebUSB status=experimental
190 WebVR depends_on=GeometryInterfaces
191 WebVTTRegions depends_on=Media, status=experimental
194 SVG1DOM status=stable
197 ScrollRestoration status=stable
198 WakeLock status=experimental