Experimental Chromium Web Platform Features
Experimental web platform features are not yet part of the official web platform specifications and are marked as “experimental” in Chromium.
Polypane ships with these features (and more) enabled by default. Other Chromium browsers let you enable these on a “flags” settings page.
Added in Chromium 156 current
▹ CSS Link Parameters Property
CSSLinkParametersPropertychromestatus.comExternal SVGs referenced by an element or a CSS image property cannot be styled by the page that references them. CSS Linked Parameters lets a page pass named CSS values into such an SVG, so one cached file can be reused with different themes. Parameters are declared with 'param(<dashed-ident>, <declaration-value>?)' and supplied through either the new link-parameters CSS property, a link parameter directive in the URL, or a param() modifier in url(). The SVG reads each one as a custom environment variable through env(), which also provides a fallback when no value is passed. For example, the page writes: img { link-parameters: param(--color, green); } and the SVG writes: circle { fill: env(--color, black); } The circle is green when the page supplies --color, and black otherwise.
▹ No Synchronous Throw For Cross Origin Blocked Worker
NoSynchronousThrowForCrossOriginBlockedWorkerchromestatus.comTo match the spec and the WHATWG issue resolution about the cross-origin violation check for the worker script URL fetching, remove the synchronous SecurityError throw on worker construction and dispatch an error event via the worker's error handler for the cross-origin failure, similar to how DedicatedWorker and SharedWorker already handle Content Security Policy failures.
▹ Position Visibility Singular Values
PositionVisibilitySingularValueschromestatus.comThe CSSWG resolved to rename `anchors-valid` --> `anchor-valid` [1] and `anchors-visible` --> `anchor-visible` [2]. To accomplish this, we'll rename the properties to the singular variants, and add aliases from the plural versions to the singular versions. At a later date, we will remove the plural variants. This chromestatus is only about shipping the new versions, and deprecating the old ones (but not removing them). [1] https://github.com/w3c/csswg-drafts/issues/10201#issuecomment-4180411971 [2] https://github.com/w3c/csswg-drafts/issues/10201#issuecomment-4390233490
- CSS Background Layer Count Independence
CSSBackgroundLayerCountIndependenceCSS Timeline Scope GlobalCSSTimelineScopeGlobalCSS Tree Scoped Scroll TimelineCSSTreeScopedScrollTimeline
Added in Chromium 155 Polypane 31
▹ CSS Flow Start And End
CSSFlowStartAndEndchromestatus.comIt was resolved in the CSSWG that we should introduce the flow-start/end keywords as value aliases for the existing flex-start/end keywords. These are needed for alignment in the case of placement reversals. flow-start in CSS Grid-Lanes would indicate the starting edge of the container at which placement begins, which is useful in the case where placement is reversed (`fill-reverse`, `track-reverse`, discussed in this CSSWG issue: [css-grid-3][masonry] item-flow row vs. column in masonry layouts · Issue #12803 · w3c/csswg-drafts). Because these are acting as value aliases, we expect flex-start/end to follow the logical directions in Grid Lanes, as well, which will expand the definition of these keywords from only applying special behavior in flexbox to applying to any layout mode whose logical start/end is different from its physical start/end. For serialization, if either flex-start/end or flow-start/end is used, the returned serialized value should be flow-start/end.
▹ CSS Scroll Snap Type Pair
CSSScrollSnapTypePairchromestatus.comhttps://github.com/w3c/csswg-drafts/issues/9519 Add a "pair" keyword to scroll-snap-type. If used, when the container scroll snaps to an element on one axis, it should snap to the same element on the other axis. In the existing spec, the "both" keyword allows the scroll container to select snap targets in X and Y axes independently and snap to different targets.
▹ Module Map Do Not Cache Failed Fetch
ModuleMapDoNotCacheFailedFetchchromestatus.comCurrently web developers cannot retry failed module loads, as these failures are being cached (and retries just result in immediate failures). This change to the module loading behavior enables failed module loads to be manually retried (e.g. by calling `import()` again), solving real developer (and user) pain when it comes to using modules over unstable networks.
▹ Spec Compliant Xml Mime Types
SpecCompliantXmlMimeTypeschromestatus.comTo fully align with Web standards, Chrome is updating how it detects [XML MIME](https://www.rfc-editor.org/info/rfc7303/) types. Chrome will now recognize valid MIME types whose subtype ends in `+xml` as XML across Chrome and Android WebView, including non-application types such as `text/example+xml` and `image/example+xml`. For these responses, `PerformanceResourceTiming.contentType` returns application/xml. The value for image/svg+xml remains unchanged. Enterprise web applications that rely on previous `contentType` values may observe behavior changes. Chrome Actor also uses this shared XML classification for dangerous MIME type navigation checks, so it may block navigations to additional non-application +xml responses. Admins should check whether their applications depend on these MIME types or the previous `contentType` values.
▹ Web Transport Datagrams Readable Type
WebTransportDatagramsReadableTypechromestatus.comAdds the WebTransportOptions.datagramsReadableType constructor option. By default, incoming WebTransport Datagrams are exposed through a default ReadableStream . Applications that require BYOB reading can request a readable byte stream by setting datagramsReadableType: "bytes" .
▹ Web Transport Reliability
WebTransportReliabilitychromestatus.comAdds the WebTransport.reliability instance attribute and static WebTransport.supportsReliableOnly attribute. These APIs indicate whether the user agent supports WebTransport over exclusively reliable connections and whether an established session supports unreliable transport such as datagrams. In Chromium, reliability initially returns "pending" and changes to "supports-unreliable" after an HTTP/3 WebTransport connection is established. Since Chromium does not currently support HTTP/2 fallback, WebTransport.supportsReliableOnly returns false; any successfully established session uses HTTP/3 and supports unreliable datagrams.
- Annotation Space For Multi Col
AnnotationSpaceForMultiColAvoid Embedded Content View LocationAvoidEmbeddedContentViewLocationCanvas2d Deferred FlushCanvas2dDeferredFlushClean Up Activation BehaviorCleanUpActivationBehaviorCSS Custom Highlight Universal SelectorCSSCustomHighlightUniversalSelectorFontations PrintingFontationsPrintingFractional Scroll OffsetsFractionalScrollOffsetsRTC Encoded SourceRTCEncodedSourceWebGL Tone MappingWebGLToneMappingWebGPU External Image HDR HeadroomWebGPUExternalImageHDRHeadroom
Added in Chromium 154
▹ Email Verification Protocol
EmailVerificationProtocolchromestatus.comThe EVP (email verification protocol) helps users create, access and recover accounts by providing cryptographic proof of ownership seamlessly rather than email OTPs manually.
▹ Navigation Source Pseudo Class
NavigationSourcePseudoClasschromestatus.comSelects the element that initiated the navigation, whether it's a link/button/form. The element stays selected throughout the navigation.
▹ Single Axis Scroll Containers For Scroll Snap
SingleAxisScrollContainersForScrollSnapchromestatus.comThis feature lets a single-axis scroll container (for example, one with overflow: auto clip) handle scroll snap area propagation and alignment separately for each axis. Single-axis scroll containers are now supported (https://chromestatus.com/feature/5067363861004288). Without this feature, such a container captures a snap area on both axes, even the axis it can't scroll. The snap area then can't align on that axis. With this feature, if a snap area sets alignment on both axes, the single-axis container handles only the axis it scrolls. The other axis goes up to the nearest ancestor scroll container that scrolls in that direction.
▹ SVG Text Path Side Attribute
SVGTextPathSideAttributechromestatus.comAllows authors to choose which side of a path SVG text follows using the side attribute on the textPath element. Setting side="right" effectively reverses the path direction for text layout, making it easy to place text inside or outside a circular path without duplicating or manually reversing the path data.
▹ Web Haptics
WebHapticschromestatus.comProvides a JavaScript API for triggering semantic haptic feedback, such as hints, ticks, alignment confirmations, and boundary signals. User agents translate these semantic effects into platform-appropriate haptic feedback based on the available hardware and operating system.
▹ Web Transport Datagrams Writable
WebTransportDatagramsWritablechromestatus.comAdds the modern WebTransport Datagram sending API. WebTransportDatagramDuplexStream.createWritable() creates independent WebTransportDatagramsWritable streams. Each writable has mutable sendGroup and sendOrder attributes for expressing relative priority among queued WebTransport data in the same send group. Chromium currently applies this ordering among Datagram writables. The implementation also reports the negotiated maximum outgoing Datagram payload size and discards oversized writes as required by the WebTransport specification.
- Animation Range Reject Relative Lengths
AnimationRangeRejectRelativeLengthsAudio Worklet Shared PortAudioWorkletSharedPortCSS PrivateCSSPrivateEmail Verification Status IndicatorEmailVerificationStatusIndicatorFed Cm Active Mode Multiple Identity ProvidersFedCmActiveModeMultipleIdentityProvidersRTC Encoded Video Frame ConstructorRTCEncodedVideoFrameConstructorWeb VTT Line And Position AlignmentWebVTTLineAndPositionAlignment
Added in Chromium 153
▹ CSS Text Decoration Inset
CSSTextDecorationInsetchromestatus.comCSS text-decoration-inset controls how far underlines, overlines, and line-through decorations are inset from or extended beyond text run edges. It supports auto, length, and percentage values, including one-value and two-value syntax for setting the start and end offsets. This lets developers adjust decoration spacing and create reveal effects with native text decorations instead of background gradients or additional elements. sampler: https://static.januschka.com/i-468928416/?asddsaasd MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/text-decoration-inset CL: https://chromium-review.googlesource.com/c/chromium/src/+/7748204
▹ Focusgroup V2
FocusgroupV2chromestatus.comExtends the declarative `focusgroup` attribute to richer composite widgets. The new `itemcontrols` modifier (name pending bikeshedding) makes nested controls sequentially reachable only for the active item; `feed` models ARIA-style content streams; and `grid` provides two-dimensional focus navigation with configurable wrapping and flow. These additions reduce custom focus-management code for cards, chat threads, feeds, and grid-based UI.
▹ Forward Reason To Fetch Body Abort
ForwardReasonToFetchBodyAbortchromestatus.comSurfaces the abort reason, if one is provided, to the methods of the Response object and its ReadableStream, rather than just the fetch promise. This fills a gap in our compliance with the standard, surfacing the developer-supplied abort reason everywhere it is intended to.
▹ Local Network Access Web Sockets Target Address Space
LocalNetworkAccessWebSocketsTargetAddressSpacechromestatus.comAdd support for passing a targetAddressSpace option in the WebSocket constructor. This allows developers to specify that a WebSocket connection to a public hostname should be treated as going to a "local" or "loopback" destination, matching the existing support on the Fetch API. The main use case is to offer an escape hatch to bypass mixed content restrictions for connecting to local servers that cannot yet support HTTPS (as Local Network Access permissions require a secure context). Example: A public site that connects to a local server can use a hostname to avoid needing manual configuration of the exact private IP address in use: `const ws = new WebSocket("ws://local-server.example", { targetAddressSpace: "local"}` This will flag the WebSocket connection as going to a local address, bypassing mixed content blocking when run in a secure context. The user must grant the site the local network permission for the WebSocket connection to succeed, and the hostname must resolve to a local IP address (otherwise it will be blocked). This builds on https://chromestatus.com/feature/5080055102439424 which adds an options bag to the WebSocket constructor.
▹ Text Overflow String
TextOverflowStringchromestatus.comAdds a <string> value to the text-overflow property. This allows web authors to specify a custom string (e.g., "(more)") to indicate that text has been clipped. This provides more design flexibility and can be used to create more user-friendly and context-aware overflow indicators.
▹ Web Socket Option Bag
WebSocketOptionBagchromestatus.comAdd support for passing an option bag (WebSocketInit dictionary) as the second argument to the WebSocket constructor. The option bag will initially support a "protocols" option, allowing developers to specify subprotocols (mirroring the existing protocols argument), and also serves as an extension point for future options. Before, this would be written `const socket = new WebSocket("wss://example.com:8080", "soap")`. After, this could also be written `const socket = new WebSocket("wss://example.com:8080", { protocols: "soap" })`. See https://github.com/whatwg/websockets/issues/42 and spec PR https://github.com/whatwg/websockets/pull/76 for this change.
▹ Web Speech Timestamps
WebSpeechTimestampschromestatus.comThe Web Speech API currently does not expose the acoustic timing bounds of recognized speech segments, making it difficult to associate transcribed text with media timelines or generate synchronized subtitle cues. We propose adding speechStartTime and speechEndTime (double, in seconds relative to stream start) attributes on the SpeechRecognitionResult interface.
▹ Web Transport Draining
WebTransportDrainingchromestatus.comWebTransport.draining is a promise that resolves when the server indicates that the WebTransport session will be gracefully retired. Applications can use this signal to establish a replacement session while existing streams and the current session remain usable.
▹ Web Transport Headers
WebTransportHeaderschromestatus.comAdds support for passing custom HTTP request headers via WebTransportOptions and inspecting server response headers through the WebTransport instance. This allows web applications to supply metadata, authentication tokens, and custom parameters during the initial CONNECT handshake and access server-provided headers once the connection is established.
- CSS Counter Style Symbols Function
CSSCounterStyleSymbolsFunctionElement Canvas TransformElementCanvasTransformGlobal Privacy Control TestGlobalPrivacyControlTestHTML Switch AttributeHTMLSwitchAttributeMemory Consumer For N G Shape CacheMemoryConsumerForNGShapeCacheNavigation StateNavigationStateNavigation Type And PhaseNavigationTypeAndPhaseSerialize Invalid Selectors In Forgiving Selector ListSerializeInvalidSelectorsInForgivingSelectorList
Build the way you already build, without missing anything.
Free 14 day trial, no credit card needed.
- 1 Create your account. Takes a minute.
- 2 Download the app. For Windows, Mac & Linux.
- 3 Build your next project with Polypane
