Deprecations and removals in Chrome 99
Chrome 99 beta was released on February 3, 2022 and is expected to become the stable version in early March, 2022.
Remove Battery Status API on insecure origins
Battery Status API is no longer supported on insecure origins, such as HTTP pages or HTTPS iframes embedded in HTTP pages. The Battery Status API allows web developers to access, among other things, a system's battery charging level and whether it is being charged. It is a powerful feature that has been around for over a decade and, as such, was originally designed with different security constraints.
Remove font-family -webkit-standard
This version of Chrome removes support for the
"-webkit-standard". This value is merely an alias for the proprietary keyword
"-webkit-body" and is only exposed because it's inherited from WebKit. Removing this improves alignment with the CSS specifications and with Firefox.
navigator.getGamepads() method now returns an array of
Gamepad objects instead of a GamepadList.
GamepadList is no longer supported in Chrome. This brings Chrome in line with specification and with Gecko and Webkit. For information on Gamepads generally, see Play the Chrome dino game with your gamepad.
Update WebCodecs to match the specification
Chrome has removed two items because of recent changes in the WebCodecs specification.
EncodedVideoChunkOutputCallback() method takes an
EncodedVideoChunkMetadata dictionary. Previously a member called
temporalLayerId was located at
EncodedVideoChunkMetadata.temporalLayerId. In line with the specification, it is now located at
The specification requires that the
VideoFrame() constructor include a timestamp argument (
CanvasImageSource types that don't implicitly have a timestamp (for example,
HTMLCanvasElement). Failing to include the timestamp should result in a
TypeError, but Chrome previously defaulted the timestamp to zero. This seems helpful, but is problematic if you then send the
VideoFrame to a
VideoEncoder, where timestamps are used to guide bitrate control.
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:
- They are superseded by newer APIs.
- They are updated to reflect changes to specifications to bring alignment and consistency with other browsers.
- They are early experiments that never came to fruition in other browsers and thus can increase the burden of support for web developers.
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:
- Announce on the blink-dev mailing list.
- Set warnings and give time scales in the Chrome DevTools Console when usage is detected on the page.
- Wait, monitor, and then remove the feature as usage drops.
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.