Unless otherwise noted, changes described below apply to the newest Chrome beta channel release for Android, Chrome OS, Linux, macOS, and Windows. Learn more about the features listed here through the provided links. Chrome 97 is beta as of November 18, 2021.
Next year, Chrome will release version 100. This will add a digit to the version number reported in Chrome’s user agent string. To help site owners test for the new string, Chrome 96 introduces a runtime flag that causes Chrome to return ‘100’ in its user agent string. This new flag called
chrome://flags/#force-major-version-to-100 is available from Chrome 96 onward.
Auto-expand Details Elements
Closed details elements are now searchable and can now be linked to. These hidden elements will also automatically expand when
ScrollToTextFragment, and element fragment navigation are used.
Content-Security-Policy Delivery via Response Headers for Dedicated Workers.
Dedicated workers are now governed by Content Security Policy. Previously, Chrome incorrectly applied the Content Security Policy of the owner document.
font-synthesis CSS property controls whether user agents are allowed to synthesize oblique, bold, and small-caps font faces when a font family lacks oblique, bold, and small-caps faces, respectively. Without the
font-synthesis property some web pages that do not have font families with the required variations may have unnatural forms of fonts
perspective() function now supports the value
'none' as an argument. This causes the function to behave as though it were passed an argument that is infinite. This makes it easier (or, in some cases, possible) to do animations involving the
perspective() function where one of the endpoints of the animation is the identity matrix.
Feature Policy for Keyboard API
Chrome supports a new
keyboard-map value for the allow list of a feature policy.
Keyboard.getLayoutMap() helps identify a key pressed key for different keyboard layouts such as English and French. This method is unavailable in iframe elements. The architecture of some web apps (Excel, Word, and PowerPoint) that could not use the Keyboard API can now do so.
HTMLScriptElement.supports() method provides a unified way to detect new features that use script elements. Currently there is no simple way to know what kind of types can be used for the type attribute of
Late Newline Normalization in Form Submission
Newlines in form entries are now normalized the same as Gecko and WebKit, solving a long-standing interoperability problem where Gecko and WebKit normalized newlines late, while Chrome did them early. Starting in Chrome 97, early normalization is removed and late normalization is extended to all encoding types.
Standardize Existing Client Hint Naming
Chrome 97 standardizes client hint names by prefixing them with
Sec-CH-. Affected client hints are
ect. Chrome will continue to support existing versions of these hints. Nevertheless, web developers should plan for their eventual deprecation and removal.
WebTransport is a protocol framework that enables clients constrained by the Web security model to communicate with a remote server using a secure multiplexed transport.
Currently, Web application developers have two APIs for bidirectional communications with a remote server:
WebSockets are TCP-based, thus having all of the drawbacks of TCP (head of line blocking, lack of support for unreliable data transport) that make it a poor fit for latency-sensitive applications.
RTCDataChannel is based on the Stream Control Transmission Protocol (SCTP), which does not have these drawbacks; however, it is designed to be used in a peer-to-peer context, which causes its use in client-server settings to be fairly low.
WebTransport provides a client-server API that supports bidirectional transfer of both unreliable and reliable data, using UDP-like datagrams and cancellable streams.
WebTransport calls are visible in the Network panel of DevTools and identified as such in the Type column.
For more information, see Experimenting with WebTransport.
Array and TypedArray findLast() and findLastIndex()
TypedArray now support the
fileLastIndex() static methods. These functions are analogous to
findIndex() but search from the end of an array instead of the beginning.
Remove SDES Key Exchange for WebRTC
The SDES key exchange mechanism for WebRTC has been declared a MUST NOT in the relevant IETF standards since 2013. The SDES specification has been declared historic by the IETF. Its usage in Chrome has declined significantly over the recent year. Consequently it is removed as of Chrome 97.
Remove WebSQL in Third-Party Contexts
WebSQL in third-party contexts is now removed. The Web SQL Database standard was first proposed in April 2009 and abandoned in November 2010. Gecko never implemented this feature and WebKit deprecated it in 2019. The W3C encourages Web Storage and Indexed Database for those needing alternatives.
Remove SDP Plan B
The Session Description Protocol (SDP) used to establish a session in WebRTC has been implemented with two different dialects in Chromium: Unified Plan and Plan B. Plan B is not cross-browser compatible and is hereby removed.