Chrome version: 151, 150, 149, 148, 147, 146, 145, 144, 143, 142, 141, 140, 139, 138, 137, 136, 135, 134, 133, 132, 131, 130, 129, 128, 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, 117, 116, 115, 114, 113, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
This release of Chrome had 19 new features.
Correct the error type thrown during WebAuthn credential creation for 'payment' credentials. Due to a historic specification mismatch, creating a 'payment' credential in a cross-origin iframe without a user activation would throw a SecurityError instead of a NotAllowedError, which is what is thrown for non-payment credentials. This is a breaking change, albeit a niche one. Code that previously detected the type of error thrown (e.g., `e instanceof SecurityError`) would be affected. Code that just generally handles errors during credential creation (e.g. `catch (e)`) will continue to function correctly. #
This feature was specified in this Spec.
In this feature, we are streamlining the SVG <use> element by loosening referencing requirements. Currently, authors need to explicitly reference fragments within the SVG document. If no fragment id is given <use> will not be able to resolve the target and nothing will be rendered/referred. For example: a <use> element referencing an external file with fragment identifier will look like: <svg> <use xlink:href="myshape.svg#icon"></use> </svg> In this example, #icon is the fragment identifier pointing to an element with id="icon" within myshape.svg. and without fragment identifier it will look like: <svg> <use xlink:href="myshape.svg"></use> </svg> With this feature, omitting fragments or just giving the external svg file name will automatically reference the root element, eliminating the need for authors to alter the referenced document just to assign an ID to the root. This enhancement simplifies this manual editing process and improves efficiency. #
This feature was specified in this Spec.
As a continuation of Storage Partitioning, Chromium will implement partitioning of Blob URL access by Storage Key (top-level site, frame origin, and the has-cross-site-ancestor boolean), with the exception of top-level navigations which will remain partitioned only by frame origin. This behavior is similar to what’s currently implemented by both Firefox and Safari, and aligns Blob URL usage with the partitioning scheme used by other storage APIs as part of Storage Partitioning. In addition, Chromium will enforce noopener on renderer-initiated top-level navigations to Blob URLs where the corresponding site is cross-site to the top-level site performing the navigation. This aligns Chromium with similar behavior in Safari, and the relevant specs have been updated to reflect these changes. This change can be temporarily reverted by setting the PartitionedBlobURLUsage policy. The policy will be deprecated when the other storage partitioning related enterprise policies are deprecated. Note: This launched for users with third-party cookies disabled in M137 and for all users in M142 #
The CSS if() function provides a concise way to express conditional values. It accepts a series of condition-value pairs, delimited by semicolons. The function evaluates each condition sequentially and returns the value associated with the first true condition. If none of the conditions evaluate to true, the function returns an empty token stream. This allows web authors to express complex conditional logic in a simple and concise way. Example: <style> div { color: var(--color); background-color: if(style(--color: white): black; else: white); } .dark { --color: black; } .light { --color: white; } </style> <div class="dark">dark</div> <div class="light">light</div> #
This feature was specified in this Spec.
The reading-flow CSS property controls the order in which elements in a flex, grid or block layout are exposed to accessibility tools and focused via TAB keyboard focus navigation. This change implements the CSS reading-flow keyword values: * normal * flex-visual * flex-flow * grid-rows * grid-columns * grid-order * source-order See spec: https://drafts.csswg.org/css-display-4/#reading-flow The reading-order CSS property allows authors to manually-override the order within a reading flow container. It is an integer with default value 0. See spec: https://drafts.csswg.org/css-display-4/#reading-order Please find more thorough examples of how TAB keyboard navigation and accessibility is improved by this feature here: https://chrome.dev/reading-flow-examples/ #
This feature was specified in this Spec.
Samples: https://chrome.dev/reading-flow-examples
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 unresponsiveness and fix it more easily. The JS call stack is included in the crash reporting API when the reason is unresponsive. #
This feature was specified in this Spec.
Docs: https://docs.google.com/document/d/19DpvHIiYbmB9wgIP0BdI4vOnfVLcAZFmfIAml7SqRQA/edit?usp=sharing
No linked samplesIntroduce 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 applications (e.g, medical visualization), high dynamic range content, and linear working color spaces. #
This feature was specified in this Spec.
Document-Isolation-Policy allows a document to enable crossOriginIsolation for itself, without having to deploy COOP or COEP, and regardless of the crossOriginIsolation status of the page. The policy is backed by process isolation. Additionally, the document non-CORS cross-origin subresources will either be loaded without credentials or will need to have a CORP header. #
This feature was specified in this Spec.
This feature adds support for Curve25519 algorithms in the Web Cryptography API, namely the signature algorithm Ed25519 #
This feature was specified in this Spec.
Docs: https://github.com/WICG/webcrypto-secure-curves/blob/main/explainer.mdhttps://docs.google.com/document/d/1fDTUY3HVAXehi-eSfbi7nxh8ZPw4MpSKM8U1fMdqJlU/edit?usp=sharing
No linked samplesChrome Enterprise is enhancing security monitoring and incident response capabilities by collecting and reporting local and remote IP addresses & sending those IP addresses to the Security Investigation Logs (SIT). In addition, Chrome Enterprise will allow admins to optionally send the IP addresses to 1P & 3P SIEM providers via the Chrome Enterprise Reporting connector. This will be available for Chrome Enterprise Core customers. This will be available in Chrome 137.
JavaScript Promise Integration (JSPI) is an API that allows WebAssembly applications to integrate with JavaScript Promises. It allows a WebAssembly program to act as the generator of a Promise, and it allows the WebAssembly program to interact with Promise-bearing APIs. In particular, when an application uses JSPI to call a Promise-bearing (JavaScript) API, the WebAssembly code is suspended; and the original caller to the WebAssembly program is given a Promise that will be fulfilled when the WebAssembly program finally completes. JSPI is described in more detail in https://github.com/WebAssembly/js-promise-integration which is part of the W3C WebAssembly standards track. See also https://github.com/WebAssembly/stack-switching and https://github.com/WebAssembly/meetings/tree/main/stack. #
This feature was specified in this Spec.
This feature ships two new API methods for the Selection API: * Selection.direction which returns the selection's direction as either "none", "forward" or "backward" * Selection.getComposedRanges() which returns a list of 0 or 1 “composed” StaticRange A “composed” StaticRange is allowed to cross shadow boundaries, which normal Ranges cannot. For example: const range = getSelection().getComposedRanges({ shadowRoots: [root] }); If the selection crosses a shadow root boundary that isn’t provided in the shadowRots list, then the StaticRange's endpoints will be “rescoped” to be outside that tree. This makes sure we do not expose unknown shadow trees. #
This feature was specified in this Spec.
Support offset-path: shape(), to allow using responsive shapes to set the animation path. #
This feature was specified in this Spec.
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 manipulate the entire SVG coordinate system or its contents as a whole, providing greater flexibility in creating dynamic, responsive, and interactive vector graphics. By supporting this attribute, the SVG element can be transformed without requiring additional wrapper elements or complex CSS workarounds, streamlining the process of building scalable and animated web graphics. #
This feature was specified in this Spec.
This feature empowers web developers to enhance the visual appeal of their websites by leveraging the operating system's accent color for form elements. By utilizing the "accent-color" CSS property, developers can ensure that form elements such as checkboxes, radio buttons, and progress bars automatically adopt the accent color defined by the user's operating system. This feature is an enhancement to existing feature that is already shipped in Chromium: https://groups.google.com/a/chromium.org/g/blink-dev/c/WwYkLjbGhoA #
This feature was specified in this Spec.
Improves the performance of compiled WebAssembly code by informing the engine that a particular branch instruction is very likely to take a specific path. This allows the engine to make better decisions for code layout (improving instruction cache hits) and register allocation. https://github.com/WebAssembly/branch-hinting/blob/main/proposals/branch-hinting/Overview.md
This feature was specified in this Spec.
Functionality added to the WebGPU spec after its first shipment in a browser. A GPUTextureView is now allowed to be used for an externalTexture binding when creating a GPUBindGroup. #
This feature was specified in this Spec.
Functionality added to the WebGPU spec after its first shipment in a browser. The GPUCommandEncoder copyBufferToBuffer() method now includes a simpler way to copy entire buffers using a new overload with optional offsets and size parameters.
This feature was specified in this Spec.
'match-element' generates a unique id based on the element's identity and renames the same for this element. This is used in Single Page App cases where the element is being moved around and the desire is to animate it with a view transition Note this is split off from https://chromestatus.com/feature/6575974796492800 which contains additional discussions #
This feature was specified in this Spec.
This release of Chrome had 3 new origin trials.
Adds a "media-playback-while-not-rendered" permission policy to allow embedder websites to pause media playback of embedded iframes which aren't rendered - i.e. have their "display" property set to "none". This should allow developers to build more user-friendly experiences and to also improve the performance by letting the browser handle the playback of content that is not visible to users. #
This feature was specified in this Spec.
Samples: https://gabrielsanbrito.github.io/media-playback-while-not-visible
The Rewriter API transforms and rephrases input text in requested ways, backed by an on-device AI language model. Developers may use this API to remove redundancies within a text in order to fit into a word limit, rephrase messages to suit the intended audience or to be more constructive if a message is found to use toxic language, rephrasing a post or article to use simpler words and concepts and more. An enterprise policy (GenAILocalFoundationalModelSettings) is available to disable the underlying model downloading which would render this API unavailable. #
This feature was specified in this Spec.
Samples: https://chrome.dev/web-ai-demos/writer-rewriter-api-playgroundhttps://ai.etiennenoel.com/rewriter-api
The Writer API can be used for writing new material given a writing task prompt, backed by an on-device AI language model. Developers will be able to use this API to generate textual explanations of structured data, composing a post about a product based on reviews or product description, expanding on pro and con lists into full views and more. An enterprise policy (GenAILocalFoundationalModelSettings) is available to disable the underlying model downloading which would render this API unavailable. #
This feature was specified in this Spec.
Samples: https://chrome.dev/web-ai-demos/writer-rewriter-api-playgroundhttps://ai.etiennenoel.com/writer-api
This release of Chrome had 2 are available behind a flag.
Adds a "media-playback-while-not-rendered" permission policy to allow embedder websites to pause media playback of embedded iframes which aren't rendered - i.e. have their "display" property set to "none". This should allow developers to build more user-friendly experiences and to also improve the performance by letting the browser handle the playback of content that is not visible to users. #
This feature was specified in this Spec.
Samples: https://gabrielsanbrito.github.io/media-playback-while-not-visible
Prompt API gives web developers direct access to a browser-provided on-device AI language model. The API design offers fine-grained control, aligned with cloud API shapes, for progressively enhancing sites with model interactions tailored to individualized use cases. This complements task-based language model APIs, for example, Summarizer API, as well as a variety of APIs and frameworks for generalized on-device inference with developer-supplied ML models. The initial implementation supports text, image, and audio inputs. In addition, response constraints ensure that generated text conforms with predefined regex and JSON schema formats. This supports a variety of use cases, from generating image captions and performing visual searches to transcribing audio, classifying sound events, generating text following specific instructions, and extracting information or insights from multi-modal source material. This API has been shipped in [Chrome Extensions](https://chromewebstore.google.com/category/extensions). An enterprise policy [GenAILocalFoundationalModelSettings](https://chromeenterprise.google/policies/#GenAILocalFoundationalModelSettings) is available to disable the underlying model downloading, which would render this API unavailable. Enterprise admins can also set the [BuiltInAIAPIsEnabled](https://chromeenterprise.google/policies/#BuiltInAIAPIsEnabled) policy to block Built-In AI API usage, while still permitting other on-device GenAI features. Language support log: - Chrome M139 and earlier only supported English ('en') - Chrome M140 added support for Spanish and Japanese ('es' and 'ja') #
This feature was specified in this Spec.
Samples: https://chrome.dev/web-ai-demos/prompt-api-playgroundhttps://chrome.dev/web-ai-demos/prompt-api-weatherhttps://ai.etiennenoel.com/prompt-apihttps://ai.etiennenoel.com/multimodal-prompt-apihttps://www.clarkduvall.com/ai
To keep the platform healthy, we sometimes remove APIs from the Web Platform which have run their course. There can be many reasons why we would remove an API, such as:
Some of these changes will have an effect on a very small number of sites. To mitigate issues ahead of time, we try to give developers advanced notice so they can make the required changes to keep their sites running.
Chrome currently has a process for deprecations and removals of API's, essentially:
You can find a list of all deprecated features on chromestatus.com using the deprecated filter and removed features by applying the removed filter. We will also try to summarize some of the changes, reasoning, and migration paths in these posts.
This release of Chrome had 0 features deprecated.
This release of Chrome had 0 features removed.