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 126 currentPolypane 20
- Dispatch Selectionchange Event Per Element
DispatchSelectionchangeEventPerElement
chromestatus.comDispatches selectionchange event per element when this element(input/textarea) provides a text selection or its selection changes. This is to match the latest specification of selectionchange event. This also matches Safari behavior.
- Import Map Integrity
ImportMapIntegrity
chromestatus.comImported ES modules can't currently have their integrity checked, and hence cannot run in environments that require Subresource Integrity or with `require-sri-for` CSP directives. This feature adds an `integrity` section to import maps, enabling developers to map ES module URLs to their integrity metadata, and ensure they only load when they match their expected hashes.
- Private Aggregation Api Filtering Ids
PrivateAggregationApiFilteringIds
chromestatus.comModifies the Private Aggregation API to add a 'filtering ID' to the aggregatable reports' encrypted payloads. This ID allows histogram contributions with different filtering IDs to be processed separately on the aggregation service. A list of filtering IDs could be provided in an aggregation query and any contributions not matching a listed ID will be filtered out, not contributing to the result. To support the new feature, we update the report version to "1.0" (from "0.1"). By the time this is launched to Stable, all valid aggregation service releases will support the new report version, avoiding backwards compatibility concerns. (Old releases are deprecated on a regular schedule.)
- Ruby Line Breakable
RubyLineBreakable
chromestatus.comLine-breaks are possible within elements with `display: ruby`. A single pair of a ruby-base and a ruby-text has never been line-breakable, and it has been pushed to the next line if the current line had no enough space for the entire pair. Now each of the ruby-base and the ruby-text can be split into multiple lines.
- New features in Chromium 126 with missing descriptionContinue Event Timing Recording When Buffer Is Full
ContinueEventTimingRecordingWhenBufferIsFull
CSS Content Multi Arg Alt TextCSSContentMultiArgAltText
CSS Reading Order ItemsCSSReadingOrderItems
CSS Scroll Start TargetCSSScrollStartTarget
Fed Cm With Storage Access APIFedCmWithStorageAccessAPI
Fill Scrolling Contents LayerFillScrollingContentsLayer
Find Text In Readonly Text InputFindTextInReadonlyTextInput
Font Variation SequencesFontVariationSequences
Ruby Line Edge AlignmentRubyLineEdgeAlignment
Secure Payment Confirmation Network And Issuer IconsSecurePaymentConfirmationNetworkAndIssuerIcons
Added in Chromium 125
- Document Policy Include JS Call Stacks In Crash Reports
DocumentPolicyIncludeJSCallStacksInCrashReports
chromestatus.comThis feature captures the JS call stack when a web page becomes unresponsive due to JavaScript code running an infinite loop or other very long computation. This helps developers to identify the cause of the unresponsiveness and fix it more easily. The JS call stack is included in the crash reporting API when the reason is unresponsive.
- Media Session Chapter Information
MediaSessionChapterInformation
chromestatus.comThe corresponding implementation on the blink layer based on the w3c api change, which is to add the `ChapterInformation` attribute in the existing `MediaMetadata`. ThisChapterInformation applies to audio as well as video, since MediaSession is for both audio and video. See the propose: https://github.com/w3c/mediasession/issues/273 And the specs change pr: https://github.com/w3c/mediasession/pull/308
- Visual Viewport On Scroll End
VisualViewportOnScrollEnd
chromestatus.comScrollend is a JavaScript event that fires to signal that a scrolling operation has come to an end. Similar to the Element interface[1], the visualViewport interface[2] includes an onscrollend event handler that should be invoked when a scrolling operation on the visualViewport has ended. Chromium already supports adding a scrollend event listener via `visualViewport.addEventListener("scrollend")`. This just makes it possible to also add an event listener using `visualViewport.onscrollend`. [1]https://html.spec.whatwg.org/multipage/webappapis.html#handler-onscrollend [2]https://drafts.csswg.org/cssom-view/#dom-visualviewport-onscrollend.
- Window Placement Permission Alias
WindowPlacementPermissionAlias
chromestatus.comChrome 125 removes the window-placement alias for permission and permission policy descriptors. All instances of window-placement are replaced with window-management, which better describes the related API functionality. This is a follow-up to Window Management API feature enhancements and renaming from "Multi-Screen Window Placement API"; for more details, see https://chromestatus.com/feature/5146352391028736
- New features in Chromium 125 with missing descriptionCSS Pseudo Scroll Markers
CSSPseudoScrollMarkers
CSS Scroll Snap EventsCSSScrollSnapEvents
CSS Snap Changed EventCSSSnapChangedEvent
CSS Snap Changing EventCSSSnapChangingEvent
Exclude Transparent Texts From Being Lcp EligibleExcludeTransparentTextsFromBeingLcpEligible
HTML Anchor AttributeHTMLAnchorAttribute
Web Codecs H B D FormatsWebCodecsHBDFormats
Added in Chromium 124 Polypane 19.0.2
- Selection Respects Colors
SelectionRespectsColors
chromestatus.comChromium currently checks all selection highlight colors against the text color and inverts the highlight color if it matches the text. Hence, author-defined ::selection CSS properties may be modified by the browser despite explicit author intent. For example, a CSS rule "::selection { color: cyan; background: cyan; }" the background is inverted and red color is used. In https://github.com/w3c/csswg-drafts/issues/6150 the CSS working Group resolved to disallow the chromium behavior. We propose to implement this spec change and bring chromium into compatibility with other browsers.
- Used Color Scheme Root Scrollbars
UsedColorSchemeRootScrollbars
chromestatus.comMakes the browser use the user's preferred color scheme to render the viewport scrollbars if the value of "page’s supported color schemes" is 'normal' or not specified, and the computed value of the color-scheme for the root element is 'normal'. Viewport scrollbars can be considered to be outside the web content. Therefore, the user agents should honor the user's preferred color scheme when rendering viewport scrollbars if page authors have not explicitly specified support for color schemes.
- Web XR Spec Parity
WebXRSpecParity
chromestatus.comUpdates our implementation of the WebXR specification to provide a few attributes that have been added over time. These are generally attributes that developers find useful or enable small performance improvements. These include but are not limited to: Setting/Querying the framerate on an XRSession (including supported framerates), Angular/Linear Velocities, Predicted Display Time of a Frame, isSystemKeyboardSupported, and XRWebGLLayer fixedFoveation
- New features in Chromium 124 with missing descriptionAuto Picture In Picture Video Heuristics
AutoPictureInPictureVideoHeuristics
Canvas WebGPU AccessCanvasWebGPUAccess
HTML Interest Target AttributeHTMLInterestTargetAttribute
HTML Popover Action HoverHTMLPopoverActionHover
Speaker SelectionSpeakerSelection
Static Animation OptimizationStaticAnimationOptimization
Web Transport StatsWebTransportStats
Added in Chromium 123
- Element Get HTML
ElementGetHTML
chromestatus.comThe prototype implementation (which was shipped in 2020 and then shape-changed in 2023) contained a method called `getInnerHTML()` that could be used to serialize DOM trees containing shadow roots. That part of the prototype was not standardized with the rest of declarative shadow dom, and only recently has it reached spec consensus (https://github.com/whatwg/html/issues/8867). As part of that consensus, the shape of the getInnerHTML API changed. This feature represents the desire to ship the new, agreed-upon shape, which is: - getHTML({serializableShadowRoots:bool, shadowRoots:[roots]}).
- Nested Top Layer Support
NestedTopLayerSupport
chromestatus.comThe prior behavior caused issues if a top layer element (dialog, fullscreen, etc.) was DOM-nested within a popover. The inner element, when promoted to the top layer, would cause the outer popover to be hidden, which also (via CSS display:none) hid the inner element. That, in turn, caused issues at least for dialogs, which inert the entire page. This change makes top layer elements "nestable" within popovers.
- Shadow Root Clonable
ShadowRootClonable
chromestatus.comThis enables individual control over whether a shadow root is clonable (via standard platform cloning commands such as `cloneNode()`). Imperative shadow roots can now be controlled via a parameter to `attachShadow({clonable:true})`. Declarative shadow roots can be controlled via a new attribute, `<template shadowrootmode=open shadowrootclonable>`.
- WebGPU Experimental Features
WebGPUExperimentalFeatures
chromestatus.comFunctionality added to the WebGPU spec after its first shipment in a browser. ServiceWorker and SharedWorker support is added to WebGPU, aligning with existing WebGL capabilities.
- Writing Suggestions
WritingSuggestions
chromestatus.comUAs are starting to provide writing suggestions to users as they type on various editable fields across the web. While this is generally useful for users, there are cases when developers may want to turn off UA-provided writing assistance, such as extensions or sites that wish to provide similar functionality on their own. To that end, developers need a solution that would turn on/off UA-provided writing assistance. The new attribute 'writingsuggestions' has values 'true'/'false' that would allow developers to turn on/off browser-provided writing suggestions. The attribute's state for an element can also be inherited from ancestor elements, thereby allowing developers to control this functionality at a per-element or per-document/sub-document scale.
- New features in Chromium 123 with missing descriptionCSS Calc Size Function
CSSCalcSizeFunction
CSS Custom State New SyntaxCSSCustomStateNewSyntax
CSS Pseudo Open ClosedCSSPseudoOpenClosed
Dialog Close When Open RemovedDialogCloseWhenOpenRemoved
Display Contents FocusableDisplayContentsFocusable
Page Conceal EventPageConcealEvent
Web Assembly JS Promise IntegrationWebAssemblyJSPromiseIntegration
Build your next project with Polypane
- Use all features on all plans
- On Mac, Window and Linux
- 14-day free trial – no credit card needed
![Polypane UI](/static/e98b34625bfeefaf638e6c795b9ee053/5f1c8/overview-dark.png)