category
Miscellaneous
Features that don't fit a single theme — interop fixes, platform hygiene, niche APIs.
142 of 157 demos built, across 28 releases.
Chrome 157 (1)
-
Disallow spaces in non-file:// URL hosts
According to the [URL Standard specification](https://url.spec.whatwg.org/#forbidden-host-code-point), URL hosts cannot contain the space character, but currently URL parsing in Chromium allows spaces in the host. This c...
Chrome 156 (8)
-
Avoid caching module failures
Currently 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 ...
-
closest-corner and farthest-corner radii for circle() and ellipse() basic shapes
The 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 dist...
-
CSS corner shorthand properties
Implements the CSS corner shorthand and per-corner sub-shorthands (corner-top-left, corner-top-right, corner-bottom-left, corner-bottom-right) as well as physical (corner-top, corner-bottom) and logical (corner-block-sta...
-
CSS Image Animation
Introduces a new CSS property and pseudo-class to control and detect animated images like GIFs and APNGs. 1. image-animation: Can be set to "normal", "running", or "paused" to control image animation playback. 2. :anim...
-
Deferred imports evaluation ("import defer")
`import defer` allows lazily evaluating ES modules, to reduce the startup impact of modules that are not actually needed for the first JavaScript execution. This provides an easier-to-use alternative to dynamic import. ...
-
Media element pseudo-classes
The :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-202...
-
Optional descriptors for registered custom properties
Allows authors to omit any descriptor in an @property rule and the corresponding optional members of CSS.registerProperty(). Omitted values default to universal syntax, inheritance, and the guaranteed-invalid initial v...
-
SVG textPath side attribute
The side attribute on the SVG <textPath> element places text on the opposite side of the path, equivalent to reversing the path direction. This lets authors label a shape's interior or exterior (e.g. text inside vs. outs...
Chrome 155 (9)
-
Additional Windowing Controls
Enables web applications with the window-management permission to maximize(), minimize(), and restore() their windows, and to prevent resizing through setResizable(). Additionally, new CSS media features display-state an...
-
Algorithm Updates in WebCrypto
Add post-quantum cryptography and a common symmetric AEAD to the set of cryptographic algorithms available in the Web Cryptography API. This will enable developers to have access browser-provided implementations of commo...
-
CSS Symbols()
The CSS symbols() function lets authors define a counter style inline instead of first declaring a named @counter-style at-rule. It builds an anonymous counter style from a list of string symbols plus an optional countin...
-
Import Text (Text Modules)
A TC39 proposal to add module `import … with { type: "text" }` statements to JavaScript. The import attribute loads text data as a string value.
-
JPEG XL decoding support (image/jxl) in blink
Adds support for decoding JPEG XL (image/jxl) images in Blink using jxl-rs, a memory-safe pure Rust decoder (https://github.com/libjxl/jxl-rs). JPEG XL is a modern image format standardized as ISO/IEC 18181 that offers p...
-
Margin-trim
The `margin-trim` CSS property may be used to omit margins before or after the first or last child of a container. This is supported on regular block containers and multicol containers. This is somewhat similar to the e...
-
Pause media playback on not-visible iframes
Adds a "media-playback-while-not-visible" permission policy to allow embedders to pause audible media playback of embedded iframes which are currently hidden - i.e. "display" property set to "none"; "visibility" property...
-
PredefinedColorSpace srgb-linear and display-p3-linear
Add srgb-linear and display-p3-linear color spaces (as defined by CSS) to PredefinedColorSpace for use with canvases.
-
Stricter enterprise policy enforcement for chrome.debugger API
The `chrome.debugger` extension API enforces an all-or-nothing permission model on managed browsers by validating enterprise host and screenshot policies upfront when `chrome.debugger.attach()` is called. This upfront ch...
Chrome 154 (5)
-
FontFace width attribute and font-width descriptor
Exposes the width attribute on FontFace and the @font-face font-width descriptor as aliases for stretch and font-stretch. Aligns Chromium with the updated CSS Font Loading and CSS Fonts 4 specifications. Developers can n...
-
Iterator Includes
A TC39 proposal to allow the developer to ask whether an iterator yields a given value. Analogue to `Array.prototype.includes`.
-
Private Verification Tokens
Automated traffic is increasing across the web, and many websites have responded with more user friction in the form of CAPTCHAs and other challenges to combat unwanted traffic. This degrades the web user experience for ...
-
Responsively-sized <iframe>
Allow sites to opt into iframes having responsive sizing (sizing the <iframe> element in the parent document to the iframe document's layout overflow sizing, so that scrolling in the child document is avoided).
-
Window Shape API
Window Shape API enables allowlisted [Isolated Web Apps](https://chromeos.dev/en/web/isolated-web-apps) on ChromeOS to have a customized window shape. By enabling non-rectangular and non-contiguous window layouts, develo...
Chrome 153 (7)
-
Capability elements: <camera> and <microphone>
The <camera> and <microphone> capability elements are declarative, user-activated HTML controls that share the same underlying mechanism as the <usermedia> MVP element, with one key distinction: they are designed to requ...
-
Iterator Join
A TC39 proposal to add to JavaScript a means to concatenate the contents of an iterator into a string. The `join()` method of Iterator instances is similar to `Array.prototype.join()`: it returns a string that is the con...
-
Joint Iteration
A TC39 proposal to synchronise the advancement of multiple iterators, often called zip.
-
JS Self-Profiling Markers
The JavaScript Self-Profiling API lets a web application sample its own call stacks to measure performance on real user devices. This feature adds an optional marker field to each captured sample that identifies the type...
-
scroll-axis-lock
scroll-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 gestu...
-
Single-axis scroll containers
Extends the `overflow` property to support scrollable values together with `clip` (for example, `overflow: scroll clip`). This allows `position: sticky` to be constrained by different ancestor scroll containers per axis,...
-
Spell Check Custom Dictionary API
We are proposing a Spell Check Custom Dictionary API: a per‑document based, transient dictionary that supplements the browser's built-in spell-checking dictionaries. It does not change how those built-in dictionaries beh...
Chrome 152 (6)
-
Expose the 'autocorrect' global html attribute
The HTML autocorrect attribute allows web authors to control whether autocorrection should be applied to user input in editable elements including <input>, <textarea>, and contenteditable hosts. The feature makes the 'au...
-
MediaCapabilities.decodingInfo.encryptionScheme
Adds the `encryptionScheme` attribute to the `KeySystemTrackConfiguration` dictionary used in `navigator.mediaCapabilities.decodingInfo()`. This allows web applications to query whether a specific encryption scheme (such...
-
Notification attribution for PWAs on macOS
Chrome 152 rolls out notification attribution for installed Progressive Web Apps (PWAs) on macOS. When a PWA is installed on macOS, its notifications are now attributed to the PWA itself (using its own name and icon in t...
-
Sub apps for IWAs
Sub apps allow developers to create multiple apps under a single Isolated Web App ([IWA](https://chromeos.dev/en/web/isolated-web-apps)) installation. Each Sub app has its own distinct name, icons and OS integrations. ...
-
Suspicious site warnings
Suspicious site warnings are a new feature for users of **Safe Browsing > Enhanced protection**, to warn against potentially malicious sites. In Chrome 152, when a user enrolled in enhanced Safe Browsing visits a site ...
-
User Agent Image Replacement API
Modern browsers can provide capabilities to augment the browsing experience by modifying media in the page on behalf of the user. The advent of generative AI makes it more likely that browsers will add such features. So...
Chrome 151 (5)
-
Algorithm Updates in WebCrypto
Add post-quantum cryptography and a common symmetric AEAD to the set of cryptographic algorithms available in the Web Cryptography API. This will enable developers to have access browser-provided implementations of commo...
-
Change the "position-anchor" initial value to "normal"
We are changing the initial value of the "position-anchor" CSS property from "none" to normal to align with other browsers and the specification. "normal" behaves like "none" if the "position-area" CSS property is "none...
-
Cross-origin redirect timing opt-in
Currently developers have no way to measure cross-origin redirects for navigations, even ones under their control, or ones that choose to opt-in to be measured. This feature enables servers to opt-in to have their redir...
-
LanguageDetector support for Traditional vs. Simplified Chinese
Two new detectable language codes, "zh-Hant" and "zh-Hans" will be added. Detection results that previously returned "zh" will now return one of these new values. While this is a developer-visible change it fits within ...
-
No Auto-Rewind for AnimationTrigger Play Methods
AnimationTrigger Play Methods will not auto-rewind, i.e. will not restart a finished animation. "play", "play-forwards" and "play-backwards" are values that, when specified in the association between an AnimationTrigger...
Chrome 150 (11)
-
Algorithm Updates in WebCrypto
Add post-quantum cryptography and a common symmetric AEAD to the set of cryptographic algorithms available in the Web Cryptography API. This will enable developers to have access browser-provided implementations of commo...
-
Allow optional rounding parameter for `polygon()`
Allows 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://codepe...
-
Animatable zoom
The CSS zoom property is animatable and interpolates as a <number>. Developers can transition and animate zoom to smoothly scale elements and their layout, complementing existing transform-based scaling.
-
CSS `text-fit` property
Scales 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 ca...
-
CSS image(<color>) function
The image() function allows an author to easily generate a solid-color image from any color. Its syntax is: image() = image( <color> )
-
CSS URL request modifiers
CSS 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 C...
-
Disable SVG filters on plugins and iFrames
Chrome 150 will prevent Scalable Vector Graphics (SVG) filters from being applied to embedded plugins (for example, PDFs) and cross-origin or restricted iFrames (for example, sandboxed ones). When a plugin or iFrame woul...
-
Expose unprintable areas via CSS
Printers usually have a small area at each of the four edges of a sheet of paper that they are not capable of marking reliably, usually due to the printer’s paper handling mechanism. The default page margins are expected...
-
Speculative load measurement
Expose measurement data regarding speculative loads (preloads, prefetches and prerenders) as part of a newly exposed `performance.getSpeculations()` method. That would enable developers to measure the efficacy of various...
-
Sub apps for IWAs
Sub apps allow developers to create multiple apps under a single Isolated Web App ([IWA](https://chromeos.dev/en/web/isolated-web-apps)) installation. Each Sub app has its own distinct name, icons and OS integrations. ...
-
Support 'path-length' as a CSS property.
This change introduces a new CSS property, 'path-length', which maps to the existing SVG 'pathLength' presentation attribute. It applies to SVG geometry elements that support 'pathLength' (including <path>, <circle>, <re...
Chrome 149 (6)
-
CSS Gap Decorations
CSS Gap Decorations enables styling of gaps in container layouts like Grid and Flexbox, similar to ‘column-rule’ in multicol layout. This feature is highly requested by web authors who must use hacks to style the gaps in...
-
Payment Request: Allow payment handlers to report back internal errors
Enables payment handlers that are accessed via the Payment Request API to return distinct errors for "user cancelled" vs "internal payment app error". This allows web developers to build better flows for users, e.g. by r...
-
Support path() and shape() in shape-outside
Adds support for the path() and shape() shape functions in the CSS shape-outside property. These functions allow developers to define the shape of `shape-outside` more flexibly and support animation. Demo: - https://cod...
-
Support rect() and xywh() in shape-outside
Adds support for the rect() and xywh() basic shape functions in the CSS shape-outside property. These functions allow developers to define float exclusion shapes using rectangle coordinates, aligning Chrome with Firefox ...
-
User action pseudo class top layer boundary
This feature represents the behavior described in this section of the CSS spec: https://www.w3.org/TR/selectors-4/#useraction-pseudos which says that :hover, :active, and :focus-within match on the parents of elements,...
-
WebMCP
WebMCP is a proposal for a web API that enables web pages to provide agent-specific paths in their UI. With WebMCP, agent-service interaction takes place via app-controlled UI, providing a shared context available to app...
Chrome 148 (4)
-
Lazy loading for video and audio elements
Adds the loading attribute to <video> and <audio> elements, allowing developers to defer media resource loading until the element is near the viewport using loading="lazy". This matches the existing lazy loading behavior...
-
The revert-rule keyword
The revert-rule keyword rolls back the cascade to the previous rule, similar to how revert-layer rolls back the cascade to the previous layer. For example: ``` div { color: green; } div { color: revert-rule; /* Effe...
-
User action pseudo class top layer boundary
This feature represents the behavior described in this section of the CSS spec: https://www.w3.org/TR/selectors-4/#useraction-pseudos which says that :hover, :active, and :focus-within match on the parents of elements,...
-
Web Authentication Immediate UI mode
A new mode for navigator.credentials.get() that causes browser sign-in UI to be displayed to the user if there is a passkey or password for the site that is immediately known to the browser, or else rejects the promise w...
Chrome 147 (10)
-
CSS border-shape
CSS border-shape enables creating non-rectangular borders, with any arbitrary shape (polygon, circle, shape(), etc). Though border-shape accepts the same shapes as clip-path, it is fundamentally different: border-shap...
-
CSS contrast-color()
This function is used to meet contrast requirements for accessibility. The contrast-color() function can be used anywhere in CSS where a color value is expected. It takes a color value argument, and returns either 'blac...
-
CSS update: decoupling of Width and Style properties
Chrome 147 aligns with updated [CSS specifications](https://www.w3.org/TR/css-2025/) regarding the behavior of `border-width`, `outline-width`, and `column-rule-width` properties. Previously, if the corresponding `border...
-
CSSPseudoElement interface
CSSPseudoElement interface is a way to represent a pseudo-element in JS. CSSPseudoElement is returned from Element.pseudo(type), where `type` is currently: ::after, ::before, ::marker. CSSPseudoElement is a proxy object...
-
Lazy loading for video and audio elements
Adds the loading attribute to <video> and <audio> elements, allowing developers to defer media resource loading until the element is near the viewport using loading="lazy". This matches the existing lazy loading behavior...
-
Math.sumPrecise
A TC39 proposal to add a method to sum multiple values to JavaScript. Add an iterable-taking `Math.sumPrecise` method which returns the sum of the values in the iterable using a more precise algorithm than naive summati...
-
Support path attribute on SVG <textpath> element
This change adds support for the path attribute on the SVG <textPath> element, allowing authors to define text path geometry inline using SVG path data and reducing the need for separately defined <path> elements. <text...
-
Update Device Memory API limits
Update to a new set of possible values for the Device Memory API: - Android: 1, 2, 4, 8 - Others: 2, 4, 8, 16, 32 Replacing the old values of 0.25, 0.5, 1, 2, 4, 8 which have grown outdated. This will reduce the fingerp...
-
Web Printing API
Enables deeper integration with printer-related functionality in Isolated Web Apps. This API is targeted at Isolated Web Apps only and it's following the https://www.chromium.org/blink/launching-features/isolated-web-a...
-
X25519Kyber768 key encapsulation for TLS
Chrome 124 enabled by default on all desktop platforms a new post-quantum secure TLS key encapsulation mechanism [X25519Kyber768](https://developer.chrome.com/blog/chrome-124-beta#x25519kyber768_key_encapsulation_for_tls...
Chrome 146 (11)
-
Iterator Sequencing
A TC39 proposal to create iterators by sequencing existing iterators. Introduces Iterator.concat ( ...items ).
-
LCP: Match specced behavior for emitting candidates
Changes the LCP algorithm to emit candidates based on the largest painted image instead of the largest pending-but-not-yet-painted image. This might cause more intermediate candidates to be emitted to the performance tim...
-
meta name="text-scale"
Makes the root element's default font size scale in proportion to both the operating system's and browser's text scale setting. This allows pages that follow best practices around font-relative units (i.e. use rem and em...
-
Populate targetURL during file handling
Update the Launch Handler implementation to ensure LaunchParams.targetURL is populated when a PWA is launched via File Handling. Previously, this property was null when a file launch was directed to an existing window. T...
-
Sanitizer API
The Sanitizer API offers an easy to use and safe by default HTML Sanitizer API, which developers can use to remove content that may execute script from arbitrary, user-supplied HTML content. The goal is to make it easier...
-
Scoped Custom Element Registry
This feature allows for multiple custom element definitions for a single tag name to exist within a page to prevent custom element name conflicts when a web app uses libraries from multiple sources. This is achieved by a...
-
Selective Permissions Intervention
When a user grants a website permission to access a powerful API (specifically Bluetooth, Camera, Clipboard, DisplayCapture, Geolocation, Microphone, Serial, and USB), their consent is intended for the site, not necessa...
-
Stop re-queueing LaunchParams on reload
Prevent the launchQueue from re-sending the last LaunchParams (including file handles) when a user reloads the page. Currently, a page refresh triggers the launch consumer again with the data from the original launch. Th...
-
Support the `hanging` and `each-line` for the `text-indent` property
The two optional keywords for the `text-indent` property extends the capability and the usability of the property. The `hanging` keyword changes indentation to "hanging", that is, all lines except the first line will be...
-
trigger-scope
trigger-scope gives authors the ability to limit the names of animation triggers declared by trigger-instantiating properties. Trigger-Instantiating properties, such as timeline-trigger, declare names which can be refer...
-
WebMCP
WebMCP is a proposal for a web API that enables web pages to provide agent-specific paths in their UI. With WebMCP, agent-service interaction takes place via app-controlled UI, providing a shared context available to app...
Chrome 145 (8)
-
`text-justify` CSS property
Support of `text-justify` CSS property Web authors can control how text is justified when `text-align: justify` is applied by using the `text-justify` property. For example, they can force justification by expanding in...
-
Column wrapping for multicol
Add support for the `column-wrap` and `column-height` CSS properties, from multicol Level 2. https://drafts.csswg.org/css-multicol-2/#cwr https://drafts.csswg.org/css-multicol-2/#ch This allows for vertical colum...
-
Enable monochrome emoji rendering in forced colors mode.
This change updates Chromium’s emoji rendering behavior in Forced Colors Mode. During computed-value resolution, emoji whose font-variant-emoji value computes to normal or unicode are rendered using their monochrome glyp...
-
Reduced User-Agent strings by default
Starting in Chrome 145, we will remove the **UserAgentReduction** policy. This policy was previously available to control whether Chrome sent a reduced or full User-Agent string. To enhance user privacy and reduce pas...
-
Refine border-radius shadow edge computation for high border-radius
This improvement ensures that shadows and clip boundaries on near-circular elements (where border-radius is close to 50%) precisely match the visual contour of the curved edge. This produces a more consistent rendering ...
-
Show true window position on Android
Chrome on Android accurately reports the browser window's position and size using window.screenX, window.screenY, window.outerWidth, and window.outerHeight. Previously Chrome incorrectly assumed all browser windows on A...
-
Trusted Types spec alignment
Trusted Types (https://developer.mozilla.org/en-US/docs/Web/API/Trusted_Types_API) was originally implemented and launched in Chromium in 2019, and has since found use in numerous websites. It has recently gained interes...
-
Use of CssPixels in LayoutShift API
This feature changes the attribution data (`prevRect` and `currentRect`) in the [LayoutShift API](https://wicg.github.io/layout-instability/) to be reported in CSS pixels instead of physical pixels. The current behavior ...
Chrome 144 (5)
-
CSS color space display-p3-linear
Add display-p3-linear CSS color space
-
CSS find-in-page highlight pseudos
This feature exposes **find-in-page** search result styling to authors as a highlight pseudo-element, like selection and spelling errors. This allows authors to change the foreground and background colors or add text dec...
-
Support ping, hreflang, type and referrerPolicy for SVGAElement
Adds support for ping, hreflang, type, and referrerPolicy attributes on SVGAElement, aligning its behavior with HTMLAnchorElement for consistent link handling across HTML and SVG.
-
SVG2 CSS Cascading
Align the Blink implementation with the SVG2 specification for matching CSS rules in <use> element trees. Match selectors against the <use> instantiation elements instead of the originating element subtree. This means s...
-
The <geolocation> element
Introduces the <geolocation> element, a declarative, user-activated control for accessing the user's location. It streamlines the user and developer journey by not only handling the permission flow but also directly prov...
Chrome 143 (1)
-
Menu elements
A menu is a way to group menu items together and provide users the ability to execute commands. The existing <menu> element represents a “toolbar” listing of commands, and despite its name, it is not programmatically exp...
Chrome 142 (3)
-
:target-before and :target-after pseudo-classes
These pseudo-classes match scroll markers that are, respectively, before or after the active marker (the one matching :target-current) within the same scroll marker group, as determined by flat tree order: * :target-b...
-
Sticky user activation across same-origin renderer-initiated navigations
This feature preserves the sticky user activation state after a page navigates to another same-origin page. The lack of user activation in the post-navigation page prevents some use cases like showing virtual keyboards o...
-
Support `download` attribute in SVG <a> element
This feature introduces support for the download attribute on the SVGAElement interface in Chromium, aligning with the SVG 2 specification. The download attribute enables authors to specify that the target of an SVG hype...
Chrome 141 (3)
-
:target-before and :target-after pseudo-classes
These pseudo-classes match scroll markers that are, respectively, before or after the active marker (the one matching :target-current) within the same scroll marker group, as determined by flat tree order: * :target-b...
-
Custom property enumeration in getComputedStyle()
When iterating over window.getComputedStyle(element) in Chromium, there is a bug where it forgets to include any custom properties set on the element. (length() on the returned object forgets to account for the number of...
-
Support width and height as presentation attributes on nested <svg> elements
This feature supports applying width and height as presentation attributes on nested <svg> elements through both SVG markup and CSS. This dual approach provides even greater flexibility for developers, allowing them to m...
Chrome 140 (3)
-
highlightsFromPoint API
The highlightsFromPoint API enables developers to interact with custom highlights by detecting which highlights exist at a specific point within a document. This interactivity is valuable for complex web features where m...
-
Incoming Call Notifications
Extend the Notifications API to allow installed PWA's to send incoming call notifications - i.e., notifications with call-styled buttons and a ringtone. This extension will help VoIP web apps to create more engaging expe...
-
ScrollIntoView container option
The ScrollIntoViewOptions container option allows developers to perform a scrollIntoView only scrolling the nearest ancestor scroll container. For example, the following snippet only scrolls the scroll container of targe...
Chrome 139 (4)
-
Continue running transitions when switching to initial transition value.
When the transition related properties change, they are only supposed to affect newly started transitions. This means that if you change the transition properties, unless you also change the properties which have active ...
-
CSS Gap Decorations
CSS Gap Decorations enables styling of gaps in container layouts like Grid and Flexbox, similar to ‘column-rule’ in multicol layout. This feature is highly requested by web authors who must use hacks to style the gaps in...
-
securePaymentConfirmationAvailability API
This is a Javascript API to provide an easier way to check if the Secure Payment Confirmation[1] feature is available. Currently, the only way to determine SPC’s availability is to create a PaymentRequest with the requir...
-
Web Authentication Immediate UI mode
A new mode for navigator.credentials.get() that causes browser sign-in UI to be displayed to the user if there is a passkey or password for the site that is immediately known to the browser, or else rejects the promise w...
Chrome 138 (3)
-
CSS 'stretch' sizing keyword
A keyword for CSS sizing properties (e.g. 'width', 'height') that allows elements to grow to exactly fill their containing block's available space. It is similar to '100%', except the resulting size is applied to the ele...
-
ScrollIntoView container option
The ScrollIntoViewOptions container option allows developers to perform a scrollIntoView only scrolling the nearest ancestor scroll container. For example, the following snippet only scrolls the scroll container of targe...
-
Viewport Segments Enumeration API
The Viewport Segments API allows developers to adapt their website/webapp layout to target foldable devices. The viewport segments defines the position and dimensions of a logically separate region of the viewport. Viewp...
Chrome 137 (6)
-
Call stacks in crash reports from unresponsive web pages
This 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 unresponsive...
-
Canvas Floating Point Color Types
Introduce the the ability to use floating point pixel formats (as opposed to 8-bit fixed point) with CanvasRenderingContext2D, OffscreenCanvasRenderingContext2D, and ImageData. This is necessary for high precision appli...
-
Ed25519 in Web Cryptography
This feature adds support for Curve25519 algorithms in the Web Cryptography API, namely the signature algorithm Ed25519
-
Pause media playback on not-visible iframes
Adds a "media-playback-while-not-visible" permission policy to allow embedders to pause audible media playback of embedded iframes which are currently hidden - i.e. "display" property set to "none"; "visibility" property...
-
Support offset-path: shape()
Support offset-path: shape(), to allow using responsive shapes to set the animation path.
-
Support transform attribute on SVGSVGElement
This feature enables the application of transformation properties—such as scaling, rotation, translation, and skewing—directly to the <svg> root element via its transform attribute. This enhancement allows developers to ...
Chrome 136 (6)
-
AudioContext Interrupted State
The current Web Audio API lacks a mechanism for the User Agent (UA) to interrupt playback for scenarios such as exclusive audio access (VoIP) or when a laptop lid is closed. To address this, we propose adding an "interru...
-
Fluent Scrollbars.
This feature modernizes the Chromium scrollbars (both overlay and non-overlay) on Windows and Linux to fit the Windows 11 Fluent design language. Non-overlay Fluent scrollbars will be enabled by default in Linux and Win...
-
Language support for CanvasTextDrawingStyles
The <canvas> DOM element, like all DOM elements, accepts a `lang` attribute that is used to define language specific treatment for font selection (when fonts have locale specific glyphs). Browsers respect this attribute....
-
Structured Headings, the headingoffset & headingreset attributes, and the :heading pseudo class
A system for creating structured headings within a document. The `headingoffset=` attribute can be added to elements that influences the child `h1`-`h6` elements' heading levels, for example a `headingoffset=1` will mea...
-
Type-agnostic var() fallback
The fallback part of a var() function does not validate against the type of the custom property being referenced.
-
Web Authentication Immediate UI mode
A new mode for navigator.credentials.get() that causes browser sign-in UI to be displayed to the user if there is a passkey or password for the site that is immediately known to the browser, or else rejects the promise w...
Chrome 135 (7)
-
CSS find-in-page highlight pseudos
This feature exposes **find-in-page** search result styling to authors as a highlight pseudo-element, like selection and spelling errors. This allows authors to change the foreground and background colors or add text dec...
-
CSS Inertness
The interactivity property specifies whether an element and its flat tree descendants (including text runs) are inert or not. Making an element inert affects whether it can be focused, edited, selected, and searchable b...
-
Incoming Call Notifications
Extend the Notifications API to allow installed PWA's to send incoming call notifications - i.e., notifications with call-styled buttons and a ringtone. This extension will help VoIP web apps to create more engaging expe...
-
Language support for CanvasTextDrawingStyles
The <canvas> DOM element, like all DOM elements, accepts a `lang` attribute that is used to define language specific treatment for font selection (when fonts have locale specific glyphs). Browsers respect this attribute....
-
Nested pseudo elements styling
Allows to style pseudo elements that are nested inside other pseudo elements. So far, support is defined for: ::before::marker ::after::marker With ::column::scroll-marker being supported in the future.
-
NotRestoredReasons API reason name change
NotRestoredReasons API has been launched as part of PerformanceNavigationTiming API. This PR specified the names of the reasons that User Agents can choose to expose. https://github.com/whatwg/html/pull/10154 This ent...
-
Support rel / relList attributes for SVGAElement
The SVGAElement interface in SVG 2.0 allows manipulation of <a> elements similar to HTML anchor elements. Supporting the rel and relList attributes enhances security and privacy for developers. This alignment with HTML a...
Chrome 134 (5)
-
Camera Effects Status: Background Blur
Exposes read-only camera effect state on VideoFrameMetadata. This allows web developers to monitor changes in platform video effects like background blur. The pattern can be extended to support additional platform effec...
-
CSS Highlight Inheritance
With CSS Highlight Inheritance, the CSS Highlight pseudo classes, such as ::selection and ::highlight, inherit their properties through the pseudo highlight chain, rather than the element chain. The result is a more intu...
-
Error.isError
Adds the Error.isError(obj) static method. It returns true for JS native errors and DOMExceptions, and false otherwise.
-
Expose CSSFontFeaturesValueRule
We were accidentally missing the [Exposed=Window] on the CSSFontFeaturesValueRule interface, so window.CSSFontFeaturesValueRule is incorrectly undefined even though the API was otherwise exposed. This interface has no c...
-
OffscreenCanvas getContextAttributes
Add the getContextAttributes interface from CanvasRenderingContext2D to OffscreenCanvasRenderingContext2D.
Chrome 133 (7)
-
Animation.overallProgress
Adds an "overallProgress" property to the JavaScript class Animation[1]. This property provides authors with a convenient and consistent representation of how far along an animation has advanced across its iterations an...
-
CSS :open pseudo-class
The :open pseudo-class matches <dialog> and <details> when they are in their open state, and matches <select> and <input> when they are in modes which have a picker and the picker is showing.
-
Error.isError
Adds the Error.isError(obj) static method. It returns true for JS native errors and DOMExceptions, and false otherwise.
-
Expose attributionsrc attribute on <area>
For Attribution Reporting, the attributionsrc attribute was already unintentionally processed on <area> elements due to code shared with <a>, which intentionally supported that attribute. For completeness, we expose the ...
-
Fluent Scrollbars.
This feature modernizes the Chromium scrollbars (both overlay and non-overlay) on Windows and Linux to fit the Windows 11 Fluent design language. Non-overlay Fluent scrollbars will be enabled by default in Linux and Win...
-
Secure Rust Font Stack
The Rust font stack for Chrome integrates the Fontations font libraries into Chromium as a safe replacement for FreeType (https://github.com/googlefonts/fontations/). This project is a collaboration between Chrome and Go...
-
X25519 algorithm of the Web Cryptography API
The "X25519" algorithm provides tools to perform key agreement using the X25519 function specified in [RFC7748]. The "X25519" algorithm identifier can be used in the SubtleCrypto interface to access the implemented opera...
Chrome 132 (4)
-
CSS Inertness
The interactivity property specifies whether an element and its flat tree descendants (including text runs) are inert or not. Making an element inert affects whether it can be focused, edited, selected, and searchable b...
-
Device Posture API
This API helps developers to detect the current posture of a foldable device. The device posture is the physical position in which a device holds which may be derived from sensors in addition to the angle. From enhan...
-
PushMessageData::bytes()
The PushMessageData interface mimics the Body interface, which was amended earlier this year with a new bytes() method, following the principle that APIs should generally vend byte buffers as Uint8Arrays.
-
Saved queries in sharedStorage.selectURL
sharedStorage.selectURL() now allows queries to be saved and reused on a per-page basis, where the two per-page-load budgets are charged the first time a saved query is run but not for subsequent runs of the saved query ...
Chrome 131 (4)
-
:has-slotted pseudo selector
The :has-slotted pseudo class represents a slot element with slotted content, such as a text node or element. This can be used to style elements based on whether or not they are using slot fallback content.
-
Nested pseudo elements styling
Allows to style pseudo elements that are nested inside other pseudo elements. So far, support is defined for: ::before::marker ::after::marker With ::column::scroll-marker being supported in the future.
-
Support external SVG resources for 'clip-path', 'fill', 'stroke' and 'marker-*' properties
Allow external references for clip paths, markers, and paint servers (for the 'fill' and 'stroke' properties). For example, clip-path: url("resources.svg#myPath").
-
X25519Kyber768 key encapsulation for TLS
Chrome 124 enabled by default on all desktop platforms a new post-quantum secure TLS key encapsulation mechanism [X25519Kyber768](https://developer.chrome.com/blog/chrome-124-beta#x25519kyber768_key_encapsulation_for_tls...
Chrome 130 (5)
-
allow more pseudo-elements and pseudo-classes after ::part()
CSS selectors that use the ::part() pseudo-element are allowed to have other CSS pseudo-elements (except ::part()) and many types of other CSS pseudo-classes after them. (Combinators are still not allowed after :part(),...
-
Concurrent Smooth scrollIntoViews
This feature allows scrollIntoView with behavior: "smooth" to run concurrently on scroll containers which are neither descendants nor ancestors of one another. scrollIntoView with behavior: "smooth" is a JavaScript meth...
-
meter element fallback styles
With this change <meter> elements with `appearance: none` will have a reasonable fallback style that matches Safari and Firefox instead of just disappearing from the page. As well developers will be able to custom style ...
-
Notification attribution for PWAs on macOS
Chrome 152 rolls out notification attribution for installed Progressive Web Apps (PWAs) on macOS. When a PWA is installed on macOS, its notifications are now attributed to the PWA itself (using its own name and icon in t...
-
Support non-special scheme URLs
Support non-special scheme URLs correctly. Previously, Chromium's URL parser doesn't support non-special URLs. The parser parses non-special URLs as if they had an “opaque path”, which is not aligned with the URL Standa...