'Google Chrome 144' stable release, third-party cookie replacement features deprecated



The latest stable version of the Google Chrome web browser, version 144, has been released. All features that were designed to eliminate third-party cookies have been deprecated. Please note that websites that use these features will likely need to take action.

Chrome 144 | Release notes | Chrome for Developers
https://developer.chrome.com/release-notes/144

◆CSS in-page search highlight pseudo-class
The ::search-text pseudo-element exposes styling for search results. Similar to the highlight pseudo-element used for selections and misspellings, it allows you to change the foreground and background colors and add text decorations. This is useful if the highlight color is not suitable, for example because it does not contrast well with the default colors of the page.

◆ Matching with container names other than tree scope
Browsers now ignore tree scoping when matching container-name in @container queries. Previously, tree-scoped names or references were used for container-name matching in @container queries, which resulted in no match if the @container rule and the container-type property originated from different trees, even if they had the same name. With this update, identical container-name values will match regardless of the origin of the @container rule or container-type declaration.

◆CSS anchor placement using transforms
If the element specified for the anchor location has a transform or is contained in an element that has a transform, the browser resolves the anchor() and anchor-size() functions against the bounding box of the transformed anchor.

◆CSS caret-shape property
In native applications, caret shapes are commonly a vertical bar, underscore, or rectangular block, and may also change shape depending on the input mode, such as insert or replace. The CSS caret-shape property allows you to select one of the following shapes for the caret within an editable element:

auto : The browser determines the cursor shape (default value)
bar : A thin vertical bar displayed vertically between characters
block : A rectangle that overlaps with the character immediately after the insertion position
underscore : A horizontal line that appears under the character immediately after the insertion point

◆ Apply overscroll-behavior to a scroll container that cannot be scrolled
The overscroll-behavior property now applies to all scrolling container elements, regardless of whether the element has overflow content or whether the user can scroll to it. This means that you can now control overscroll behavior even for non-scrollable scrolling containers using the overscroll-behavior property, preventing scroll propagation without worrying about overflowing elements with an overflow: hidden backdrop or overflow: auto.

◆ Apply overscroll-behavior even with keyboard scrolling
Setting overscroll-behavior to a value other than 'auto' will cause the browser to not perform scroll chaining. Previously, this setting was applied to mouse or touch scrolling but ignored by keyboard scrolling. Now, it also applies to keyboard scrolling.

◆@scroll-state scrolled support
Web developers can style the descendants of a container based on the most recent scroll direction. UI patterns that respond to the user's scroll direction are frequently implemented. A typical example is a header that automatically hides when the user scrolls down the page and reappears when the user scrolls up. Traditionally, this functionality required using JavaScript to track the scroll position, which could add performance overhead and code complexity. The scroll-state (scrolled:) feature provides an efficient way to achieve similar functionality using only CSS.
[code]
.scrolling-up {
translate: 80px 0;
transition: 0.4s translate;
}

html {
container-type: scroll-state;
}

@container scroll-state(scrolled: top) {
.scrolling-up { translate: 0 0; }
}
[/code]


◆ The waitUntil() method to display the transition
A ViewTransition automatically builds a pseudo-element tree to display and animate the elements participating in the transition. This subtree is built when a view transition animation starts and is destroyed when all animations associated with the view transition pseudo-elements reach an end state (more precisely, a state other than running or paused). This is sufficient in most cases, but more advanced implementations are required if you want to maintain the view transition pseudo-tree beyond the end state of the animation. For example, you might want to run additional animations after a view transition animation has completed. With this update, you can now extend the time before the view transition pseudo-tree is destroyed by using the waitUntil() method of the ViewTransition object. The waitUntil() method accepts a Promise, and the view transition pseudo-tree is maintained until the Promise is resolved.

◆<geolocation> element
A new <geolocation> element is being added to HTML to provide user-activated, declarative control for accessing a user's location. The <geolocation> element not only handles the permission flow, but also provides location information directly to sites, often eliminating the need for a separate JavaScript API call. Embedding a browser-controlled element in a page also significantly improves the user experience of prompts, making user clicks a clear, intentional signal, and even providing a recovery path for users who previously denied permission.

◆WebGPU: uniform_buffer_standard_layout extension
WebGPU's new uniform_buffer_standard_layout extension allows uniform buffers and storage buffers to use the same memory layout constraints, making it easier to share data structures between them. Specifically, uniform buffer array elements no longer require 16-byte alignment , which also removes the need to pad nested struct offsets to a multiple of 16 bytes.
[code]
if (!navigator.gpu.wgslLanguageFeatures.has('uniform_buffer_standard_layout')) {
throw new Error(`WGSL uniform buffer standard layout is not available`);
}

const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();

const shaderModule = device.createShaderModule({ code: `
requires uniform_buffer_standard_layout;

struct S {
x: f32
}
struct Uniforms {
a: S,
b: f32
// b is placed at offset 4. Without a standard layout, the alignment rules
// b is located at offset 16 (or a multiple of 16), so you can either pad it with an extra field or
// You must use the @align attribute.
}

@group(0) @binding(0) var u: Uniforms;

@fragment fn fs_main() -> @location(0) vec4 {
return vec4 (uax);
}`,
});
[/code]


◆WebGPU: subgroup_id function
Enabling the subgroup extension provides built-in values 'subgroup_id' and 'num_subgroups' that improve the process of scheduling work between subgroups in WebGPU compute shaders.

subgroup_id : ID of the subgroup within the current workgroup
num_subgroups : Number of subgroups in the workgroup
[code]
if (!navigator.gpu.wgslLanguageFeatures.has('subgroup_id')) {
throw new Error(`WGSL subgroup_id and num_subgroups built-in values are not available`);
}

const adapter = await navigator.gpu.requestAdapter();
if (!adapter.features.has('subgroups')) {
throw new Error('Subgroups support is not available');
}
const device = await adapter.requestDevice({ requiredFeatures: ['subgroups'] });

const shaderModule = device.createShaderModule({ code: `
enable subgroups;
requires subgroup_id;

@compute @workgroup_size(64, 1, 1)
fn main(@builtin(subgroup_id) subgroup_id : u32,
@builtin(num_subgroups) num_subgroups : u32) {
// [TODO]: Implement using 'subgroup_id' and 'num_subgroups'
}`,
});
[/code]


◆ECMA262: Temporal API
As anyone who has ever tried to display dates in ECMAScript knows, dates and times have long been a pain point in ECMAScript. Date objects are not immutable and handle time zones poorly, often leading to ambiguities and bugs. The Temporal API provides a new standard way to work with dates and times, covering many common use cases for manipulating them.

◆SVGAElement: Supports ping, hreflang, type, and referrerPolicy
Added support for the ping, hreflang, type, and referrerPolicy attributes to SVGAElement, aligning its behavior with HTMLAnchorElement to unify link handling between HTML and SVG.

Ping : Specify a URL to be notified when a link is clicked, allowing lightweight tracking and analysis without interrupting navigation.
hreflang : improves accessibility by indicating the language of the linked resource
type : Declares the MIME type of the linked resource, allowing for smarter processing and performance optimization.
referrerPolicy : Controls how much referrer information is sent on navigation.

◆Performance/Event Timing: Interaction Count
The Event Timing API is part of the Performance Timeline and measures the performance of user interactions. Some events are assigned an interactionId value, allowing you to group multiple events related to the same user action. This update adds performance.interactionCount, which is the total number of interactions that occurred on a page, and makes it useful for producing the Interaction to Next Paint (INP) metric value.

Interoperable changes to pointer and mouse boundary events after DOM changes
After an event target is removed from the DOM, the logical target of the pointer should be the nearest ancestor that is still attached to the DOM, as indicated by pointer and mouse boundary events (over, out, enter, and leave events). However, Chrome continued to track nodes after they were removed from the DOM, which could result in incorrect boundary events being fired when the pointer leaves the node if the pointer was over a descendant of the removed node. With this update, Chrome now behaves like other browsers and no longer tracks nodes after they've been removed from the DOM.

For example, if hit-test node A was removed from the DOM and the pointer was then moved to new node B, the boundary event sequence (pointerover, pointerout, pointerenter, pointerleave events and corresponding mouse events) behaved as if the pointer had moved from the 'now-removed A' to B. With this update, the event sequence now correctly shows the pointer moving from 'A's parent element' to B.

◆Other updates
・SVG2 CSS cascade
- Support for edge-relative syntax for background-position-x / background-position-y shorthand
- Added XRVisibilityMaskChange event
Mirroring MathML operators in RTL languages
- Support for clipboardchange event
User-Agent client hint: ch-ua-high-entropy-values permission policy
Android: Pointer lock support
- Added RTCDegradationPreference enumeration value maintain-framerate-and-resolution
Independent Web Apps (IWA) : Multicast support for Direct Sockets API

◆ Deprecation (third-party cookie related)
With the repeal of the third-party cookie deprecation, the following features have been deprecated. Websites that use these features should be aware that they will likely need to take action. Features that were only listed in the beta release information are also listed here, as they are likely to be treated the same way in the end.

・Private Aggregation API
・Shared Storage API
・Protected Audience API
Beta only : Attribution Reporting API
Beta only : Related Website Sets (RWS)
Beta only : document.requestStorageAccessFor(rSAFor) API

◆ Deprecations (Other)
・XML parsing: external entities and DTD loading

◆Trial Origin
Context-aware media elements
Canvas API: TextMetrics extension

Google Chrome 144 also includes 10 security bug fixes .

The next stable version, Google Chrome 145, is scheduled to be released on February 10, 2026 local time.

in Software, Posted by log1c_sh