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 152 currentPolypane 30
▹ Document Policy JS Profiling Mode
DocumentPolicyJSProfilingModechromestatus.comIntroduces a new Document-Policy value "js-profiling-mode=eager|lazy". Setting "js-profiling-mode=lazy" authorizes JS Self-Profiling capability without incurring immediate initialization overhead during page load. Related WICG PR : https://github.com/WICG/js-self-profiling/pull/87 Related discussion for more context: https://github.com/WICG/js-self-profiling/issues/86
▹ Event Timing Matching HTML
EventTimingMatchingHTMLchromestatus.comAligns Blink's dispatch timing for animation "transitionrun" event and media query "change" event with the spec, making the timing interoperable with Gecko and WebKit. More precisely, as per HTML window event loop specification, "transitionrun" events will be fired at Step 3.11 even for animations created earlier in the same iteration (instead of delaying them for a later iteration), and the media query "change" event will be fired at Step 3.10 before firing any pending animation events (instead of intermixing them with animation events at Step 3.11).
▹ Gamepad Button Types
GamepadButtonTypeschromestatus.comGamepad API defines standard indices for 17 common gamepad buttons. The GamepadButton type attribute provides an alternate, interoperable identifier for common buttons that are not included in the standard set, like "trackpad".
- C D T New Cross Origin Handling
CDTNewCrossOriginHandlingC D T New DestinationCDTNewDestinationC D T New Referrer And Referrer Policy HandlingCDTNewReferrerAndReferrerPolicyHandlingConditional Tracing Lo A FConditionalTracingLoAFConnection Allowlist Embedded EnforcementConnectionAllowlistEmbeddedEnforcementDeclarative FragmentDeclarativeFragmentGenerate Drag Overlay Before Drag StartGenerateDragOverlayBeforeDragStartPermissions Policy APIPermissionsPolicyAPIRTC Encoded Audio Frame ConstructorRTCEncodedAudioFrameConstructorSpeculation Rules Moderate Viewport Heuristics ControlSpeculationRulesModerateViewportHeuristicsControlWeb Autocorrect By DefaultWebAutocorrectByDefaultWebGPU Experimental Resource TableWebGPUExperimentalResourceTable
Added in Chromium 151
▹ Digital Credentials Protocol Filter
DigitalCredentialsProtocolFilterchromestatus.comStarting in Chrome 151, Chrome will begin deprecating support for unspecified presentation and issuance protocols in the **Digital Credentials API**, with final removal scheduled for Chrome 160. The Digital Credentials API was originally designed to be an opaque pipeline for arbitrary exchange protocols. In November 2025, the [FedID WG resolved](https://github.com/w3c-fedid/digital-credentials/issues/396) to change this so that the spec normatively referenced only a specific set of exchange protocols. The removal of support for arbitrary, opaque pipelines ensures that only verified protocols are used, enabling a more robust privacy and security threat model for identity verification. This change aligns Chromium with updated industry specifications that normatively reference only a specific set of exchange protocols.
▹ Input Type Color Enhancements
InputTypeColorEnhancementschromestatus.comAdds support for the alpha and colorspace attributes on <input type=color>, matching the WHATWG HTML specification. When enabled, the color input gains an alpha boolean attribute (allowing non-opaque colors) and a colorspace attribute (limited-srgb or display-p3), and its CSS color parsing and serialization are expanded to support any CSS color value rather than only opaque hex colors. Both attributes are gated behind a single runtime flag.
▹ SVG Path Data API
SVGPathDataAPIchromestatus.comImplement `getPathData()`, `setPathData()`, and `getPathSegmentAtLength()` on `SVGPathElement`, three methods that give developers structured, segment-level access to <path> data as simple ` {type, values} ` dictionaries. A `getPathData({normalize: true}) ` option reduces all commands to the absolute M, L, C, Z subset. ``` dictionary SVGPathSegment { required DOMString type; required sequence<unrestricted float> values; }; dictionary SVGPathDataSettings { boolean normalize = false; }; partial interface SVGPathElement { sequence<SVGPathSegment> getPathData(optional SVGPathDataSettings settings = {}); undefined setPathData(sequence<SVGPathSegment> pathData); SVGPathSegment? getPathSegmentAtLength(unrestricted float distance); }; ```
▹ Web Rtc Sctp Snap
WebRtcSctpSnapchromestatus.comWebRTC Data Channels use the Stream Control Transmission Protocol (SCTP) over a Datagram Transport Layer Security (DTLS) association. The standard SCTP connection establishment requires a handshake that introduces latency. A new Internet draft specifies a method to accelerate the datachannel establishment by embedding the SCTP initialization parameters within the Session Description Protocol (SDP) offer/answer exchange. This reduces the time required to open a data channel by up to two network round-trip times.
- Annotation Space On Start
AnnotationSpaceOnStartAutocorrect By DefaultAutocorrectByDefaultCSS Timeline Name Conflict ResolutionCSSTimelineNameConflictResolutionDeclarative CSS Modules Style TagDeclarativeCSSModulesStyleTagDeclarative Performance ObserverDeclarativePerformanceObserverEmail Verification Status IndicatorEmailVerificationStatusIndicatorJava Script Import TextJavaScriptImportTextPrefetch And Prerender Activation BeaconPrefetchAndPrerenderActivationBeaconReplaced Normal Flow Stacking Inline PaintReplacedNormalFlowStackingInlinePaintRtc Rtp Header Encryption PolicyRtcRtpHeaderEncryptionPolicySelect Anchor In ViewportSelectAnchorInViewportSplit Qualified Name On First ColonSplitQualifiedNameOnFirstColonUser Media Element LegacyUserMediaElementLegacyWeb Transport Anticipated Concurrent Incoming StreamsWebTransportAnticipatedConcurrentIncomingStreamsWebXR Media BindingWebXRMediaBindingXML Viewer For IframesXMLViewerForIframes
Added in Chromium 150
▹ Approximate Geolocation Web Visible API
ApproximateGeolocationWebVisibleAPIchromestatus.comExtends the Geolocation API to enable sites to request approximate location data only. When calling navigator.geolocation.getCurrentPosition() or navigator.geolocation.watchPosition(), web developer can use the PositionOptions parameter accuracyMode, which can be either "precise" (default) or "approximate", to request either precise or approximate location.
▹ Basic Shape Corner Radius
BasicShapeCornerRadiuschromestatus.comThe circle() and ellipse() CSS basic-shape functions accept the closest-corner and farthest-corner radius keywords, in addition to the existing closest-side and farthest-side. These keywords resolve to the Euclidean distance from the shape center to the nearest or farthest corner of the reference box, matching the long-standing behavior of radial-gradient(). They work in clip-path, shape-outside, and offset-path, so the same shape syntax accepted by gradients now works for shapes. CL: https://chromium-review.googlesource.com/c/chromium/src/+/7767079
▹ CSS Media Element Pseudos
CSSMediaElementPseudoschromestatus.comThe :playing, :paused, :seeking, :buffering, :stalled, :muted, and :volume-locked CSS pseudo-classes match <audio> and <video> elements based on their state. This is one of the focus areas in https://wpt.fyi/interop-2026.
▹ CSS Text Decoration Skip Spaces
CSSTextDecorationSkipSpaceschromestatus.comThe text-decoration-skip-spaces CSS property controls whether text decoration lines (underlines, overlines, line-throughs, etc.) skip over whitespace characters. This allows authors to prevent decorations from being drawn under spaces, which is often more visually appealing.
▹ Desktop PWAs Additional Windowing Controls
DesktopPWAsAdditionalWindowingControlschromestatus.comEnable web applications to maximize, minimize, and restore their windows, control whether the window can be resized, and introspect the corresponding window state. The Window Management permission is required for new JS API controls (window.maximize()/minimize()/restore()/setResizable(bool)). The new CSS media features display-state and resizable are not gated behind a permission as they can follow the non-AWC API toggled states as well. This feature is an enhancement of the Window Management API: https://chromestatus.com/feature/5252960583942144
▹ RTC Diagnostic Logging
RTCDiagnosticLoggingchromestatus.comChrome 156 introduces an API for WebRTC diagnostic logging. This API allows an application to opt in to diagnostic logging. These logs contain information about the WebRTC activity by the application and are useful for local debugging or to file bugs. Logs can be optionally uploaded out of band to the browser vendor and can be used for diagnosing bugs. The application gets an ID that can be attached to a bug report, similar to crashes. Diagnostic logs are enabled via the enterprise policy [WebRtcDiagnosticLogCollectionAllowedForOrigins](https://chromeenterprise.google/policies/#WebRtcDiagnosticLogCollectionAllowedForOrigins).
▹ Scroll Axis Lock
ScrollAxisLockchromestatus.comscroll-axis-lock is a CSS property that authors can use to instruct browsers not to constrain a user's scrolling gesture to one axis. Web browsers often "lock" a user's scrolling gesture to a single axis when that gesture starts with significantly more movement in one axis than in the perpendicular axis. In many cases, this behavior improves the user's experience by avoiding accidental scrolls along the perpendicular axis when the user's intent was to scroll only one axis. However, in cases where an author wishes their element to always be diagonally scrollable, this locking behavior forces the user to start their gesture at an angle that doesn't trigger the locking, often not in alignment with the author's intended user experience.
▹ Text Stream Method
TextStreamMethodchromestatus.comAdd textStream() to interfaces that represent a byte stream (request, response, blob). This is equivalent to piping the byte stream through a TextDecoderStream().
▹ Web Speech Unspoken Punctuation
WebSpeechUnspokenPunctuationchromestatus.comAdds the unspokenPunctuation boolean attribute to the SpeechRecognition interface of the Web Speech API. When enabled (true), this attribute directs the speech recognition engine to automatically infer and insert punctuation marks (such as periods, commas, and question marks) based on the user's natural pauses, grammatical structure, and prosody, without requiring explicit spoken punctuation commands.
▹ Web Transport Receive Stream
WebTransportReceiveStreamchromestatus.comSupport BYOB(bring-your-own-buffer) readers for WebTransport to allow reading into a developer-supplied buffer. BYOB readers can minimize buffer copies, as well as reduce memory allocations.
- Approximate Geolocation Permission Accuracy Mode
ApproximateGeolocationPermissionAccuracyModeConcurrent Native Paint WorkletsConcurrentNativePaintWorkletsCSS Caret Color With Optional Second ValueCSSCaretColorWithOptionalSecondValueMedia Element Muted Default StateMediaElementMutedDefaultStateScroll Into View Align AutoScrollIntoViewAlignAutoSelect Web View Untrusted Event RemovalSelectWebViewUntrustedEventRemovalSvg Support Media FragmentsSvgSupportMediaFragmentsWeb Authentication Cmtg KeyWebAuthenticationCmtgKey
Added in Chromium 149
▹ Comma Separated Container Queries
CommaSeparatedContainerQuerieschromestatus.comSupport multiple queries per @container rule. The @container rule applies if at least one of the queries matches. This makes it possible to have fallback queries for features which are not supported in all browsers, for instance. Example: @container --name1 not-supported(--foo: bar), --name2 (width > 600px) {} Along with the support for multiple queries, the object model is extended to support the 'conditions' attribute on the CSSContainerRule API.
▹ CSS Polygon Rounding
CSSPolygonRoundingchromestatus.comAllows an optional corner-rounding parameter in the polygon() CSS shape function. Developers can specify a length value to round polygon corners without manually computing bezier curves. Interactive demo: https://codepen.io/yisi/pen/NPRLEQN CSSWG issue: https://github.com/w3c/csswg-drafts/issues/9843
▹ Css Text Fit
CssTextFitchromestatus.comScales the font size of text nodes to perfectly fit the width of its containing box. This property allows developers to ensure headlines or dynamic content fill the available horizontal space without manual font-size calculations or complex JavaScript workarounds. It provides a robust, CSS-native solution for responsive typography that maintains visual alignment across different screen sizes and varying text lengths.
▹ CSS URL Request Modifiers
CSSURLRequestModifierschromestatus.comCSS url() functions accept optional request modifiers after the quoted URL string: cross-origin(), integrity(), and referrer-policy(). These modifiers control the fetch behavior of the referenced resource directly from CSS, without requiring changes to HTML markup or JavaScript. For example, background-image: url("image.png" cross-origin(anonymous)) fetches the image using CORS anonymous mode. This gives authors fine-grained control over cross-origin access, subresource integrity, and referrer policy for CSS-loaded resources including images, fonts, SVG references, and imported stylesheets.
▹ Popover Hint New Behavior
PopoverHintNewBehaviorchromestatus.comThis change implements a revised and simplified stacking model for the popover=hint attribute and its interactions with popover=auto. Previously, the interactions between these two types of popovers could be complex in some corner case situations (such as nesting auto popovers inside hint popovers), and could lead to unexpected behavior. Under the new model, opening a hint popover will no longer inadvertently close unrelated auto popovers. Hint popovers are now only hidden when their ancestral auto popover is hidden, or when a new, unrelated auto popover is opened. Additionally, developers can now safely nest an auto popover inside a hint popover; instead of throwing an exception or breaking the stack, the nested auto popover will gracefully "downgrade" and behave as a hint popover. This allows use cases such as placing a customizable-<select> within a popover=hint. To further improve predictability and prevent complex state mutations, we are also tightening the behavior around opening and closing popovers from within the beforetoggle event. There were guards in place for some, but not all, of the possible cases before. This change revamps the mechanism used to detect these cases, so that it should more reliably throw InvalidStateErrors for all such cases. This ensures that popover state management remains stable and prevents looping reentrancy bugs. All of these changes were motivated by standards conversations with Mozilla on the spec PR here: https://github.com/whatwg/html/pull/12345.
▹ Two Phase View Transition
TwoPhaseViewTransitionchromestatus.comCurrently, cross-document view transitions are only captured when the new document's response arrives, and activated only when the new document is ready to render a frame. This delay, when long, can cause a jarring experience. Two-phase transitions allow starting a same-document view transition, as well as any other async operation, when the navigation start, with a guarantee that it will continue to the end without an abrupt cancellation due to a race with the navigation commit, as long as it is ready to present frames before the commit.
- Approximate Geolocation Permission API
ApproximateGeolocationPermissionAPIDesktop PWAs Additional Windowing Controls On MoveDesktopPWAsAdditionalWindowingControlsOnMoveHTML Interest For Interest Button PseudoHTMLInterestForInterestButtonPseudoInline Script Cache HintInlineScriptCacheHintSelectedcontent MultipleSelectedcontentMultipleSpeculation MeasurementSpeculationMeasurementStreaming SanitizerStreamingSanitizerWeb Assembly Custom Descriptors V2WebAssemblyCustomDescriptorsV2Web Transport Congestion ControlWebTransportCongestionControl
Build your next project with Polypane
- Use all features on all plans
- On Mac, Windows and Linux
- 14-day free trial – no credit card needed
