1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
|
// 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 experimental framework, so that the
// feature can 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.
AppBanner status=stable
AlwaysUseComplexText status=stable
ApplicationCache status=stable
AudioOutputDevices status=stable
AudioVideoTracks status=experimental
BackgroundSync status=stable
CacheIgnoreSearchOption status=experimental
Canvas2dImageChromium status=experimental
ClientHints status=stable
ColumnFill status=stable
CompositedSelectionUpdate
CompositorWorker status=experimental
ContextMenu status=experimental
CorsRFC1918 status=test
CredentialManager status=stable
CSS3Text status=experimental
CSS3TextDecorations status=experimental
CSSApplyAtRules status=experimental, depends_on=CSSVariables
CSSAdditiveAnimations status=experimental, depends_on=StackedCSSPropertyAnimations
CSSBackdropFilter status=experimental
CSSCompositing status=stable
CSSContainment status=experimental
CSSFontDisplay status=experimental
CSSFontSizeAdjust status=experimental
CSSGridLayout status=experimental
CSSIndependentTransformProperties status=experimental
CSSMaskSourceType status=experimental
CSSOMSmoothScroll status=experimental
CSSPaintAPI
CSSPropertyD status=experimental
CSSSnapSize status=experimental
CSSStickyPosition
CSSTouchActionPanDirections status=experimental
CSSTypedOM status=experimental
CSSVariables status=stable
CSSViewport status=experimental
CSSScrollSnapPoints status=test
CustomSchemeHandler depends_on=NavigatorContentUtils, status=experimental
Database status=stable
DecodeToYUV status=experimental
DeviceLight status=experimental
DeviceOrientationAbsolute status=stable
DisplayList2dCanvas status=stable
DurableStorage status=experimental
ForceDisplayList2dCanvas
// See crbug.com/585250.
ForceDisable2dCanvasCopyOnWrite
ExecCommandInJavaScript status=test
ComputedAccessibilityInfo status=experimental
EventListenerOptions status=stable
ExperimentalCanvasFeatures status=test
ExperimentalContentSecurityPolicyFeatures status=experimental
ExperimentalFramework status=stable
// Define a sample API for testing integration with the Experimental Framework.
// The sample API is used in both unit and layout tests for the Experimental
// Framework. Do not change this flag to stable, as it exists solely to generate
// code used by the sample API implementation.
ExperimentalFrameworkSampleAPI origin_trial_feature_name=Frobulate
ExperimentalV8Extras status=experimental
FastMobileScrolling
FileAPIBlobClose status=experimental
FileSystem status=stable
ForeignFetch status=experimental
FormDataNewMethods status=stable
FullscreenUnprefixed status=test
FrameTimingSupport status=experimental
Geofencing status=experimental
GeometryInterfaces status=test
GetUserMedia depends_on=MediaDevices, status=experimental
GlobalCacheStorage status=stable
HiResEventTimeStamp status=stable
ImageColorProfiles
ImageOrientation status=test
ImageRenderingPixelated status=stable
IndexedDBExperimental status=experimental
InertTopControls status=experimental
InputDeviceCapabilities status=stable
InputEvent status=experimental
InputModeAttribute status=experimental
InstalledApp status=experimental
IntersectionObserver status=experimental
KeyboardEventCode status=stable
KeyboardEventKey status=experimental
LangAttributeAwareFormControlUI
LinkPreconnect status=stable
LinkPreload status=stable
LinkHeader status=stable
FractionalScrollOffsets status=experimental
MediaCapture
MediaCaptureFromCanvas status=experimental
MediaCaptureFromVideo status=test
MediaConstraints status=experimental
MediaDevices status=stable
MediaRecorder status=stable
MediaSession
MediaSourceExperimental status=experimental
MediaStreamSpeech status=experimental
MemoryInfoInWorkers status=experimental
MobileLayoutTheme
ModuleScripts status=test
NavigatorConnect status=experimental
NavigatorContentUtils
WebNFC status=experimental
NetworkInformation status=stable
NetInfoDownlinkMax status=stable
NewMediaPlaybackUi
NotificationConstructor status=stable
NotificationExperimental status=test
NotificationActionIcons status=stable
NotificationBadge status=experimental
Notifications status=stable
OrientationEvent
// For simulating Android's overlay fullscreen video in layout tests on Linux.
ForceOverlayFullscreenVideo
OverlayScrollbars
PagePopup status=stable
PassiveEventListeners status=stable
PassPaintVisualRectToCompositor
PathOpsSVGClipping status=stable
PaymentRequest status=experimental
PerformanceObserver status=experimental
Permissions status=stable
PermissionsRequestRevoke status=experimental
PointerEvent
PreciseMemoryInfo
// 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
PromiseRejectionEvent status=stable
PushMessaging status=stable
PushMessagingData status=stable
PushSubscriptionRestrictions status=experimental
QuotaPromise status=experimental
ReducedReferrerGranularity
RemotePlayback status=experimental
RenderingPipelineThrottling status=experimental
RequestIdleCallback status=stable
RequestAutocomplete status=test
ResponseConstructedWithReadableStream status=experimental
RestrictIFramePermissions
SandboxBlocksModals status=stable
ScreenOrientation status=stable
ScriptedSpeech status=stable
// Scrolls to compensate for layout movements (bit.ly/scroll-anchoring).
ScrollAnchoring
// Implements documentElement.scrollTop/Left and bodyElement.scrollTop/Left
// as per the spec, matching other Web engines.
ScrollTopLeftInterop status=experimental
ServiceWorkerClientAttributes status=stable
ServiceWorkerExtendableMessageEvent status=experimental
ServiceWorkerClientsGetID status=stable
ServiceWorkerWindowClientNavigate status=stable
ShadowDOMV1 status=experimental
ShadowRootDelegatesFocus status=experimental
SharedArrayBuffer
SharedWorker status=stable
SlimmingPaintInvalidation
SlimmingPaintV2
SlimmingPaintStrictCullRectClipping
SlimmingPaintUnderInvalidationChecking
StackedCSSPropertyAnimations status=experimental
StyleSharing status=stable
StyleMatchedPropertiesCache 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.
ExperimentalStream status=experimental
Suborigins status=experimental
// 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
TrustedEvents status=stable
TrustedEventsDefaultAction
UnsafeES3APIs
UnsandboxedAuxiliary status=stable
UserSelectAll status=experimental
WebAnimationsAPI status=experimental
WebAnimationsSVG status=experimental
// TODO(https://crbug.com/584113) Enable Web Bluetooth Experiment.
// WebBluetooth origin_trial_feature_name=WebBluetooth
WebBluetooth
WebGLDraftExtensions status=experimental
WebGLImageChromium
WebUSB status=experimental
WebVR depends_on=GeometryInterfaces, status=test
WebVTTRegions status=experimental
V8IdleTasks
VisibilityChangeOnUnload status=test
XSLT status=stable
smil status=stable
ScrollCustomization
ScrollRestoration status=stable
WakeLock status=experimental
WebFontsIntervention status=experimental
WebFontsInterventionTrigger
Worklet status=test
|