Learn how Chrome removes features that don't work well, while minimizing disruption to end users and developers.
Chrome is continually adding new features and functionality, but sometimes features need to be removed.
Feature removal can reduce the complexity of the browser codebase, and help keep browsers safe and secure by reducing potential attack vectors. A carefully coordinated approach across the web platform ensures that browser vendors can remove platform features which don't work well, while minimizing disruption to end users and developers.
Removal of browser features
If browsers removed features without warning, that would cause websites to break, and make it difficult for developers to plan migration to alternative technologies. Instead, browser vendors take a systematic approach, by providing warnings, supporting resources, and detailed timelines well in advance of feature removal.
Deprecation and removal
There are two main phases to removing a feature from Chrome:
- Deprecation: Warn developers that a feature is scheduled for removal, and provide resources to help sites migrate to alternatives. Warnings are displayed in Chrome DevTools Issues panel when deprecated features are used, and information about deprecation timelines and support is published on Chrome Platform Status and in Chrome for Developers articles and blog posts.
- Removal: Initially, disable the feature by default, but allow developers to continue using the feature temporarily by setting a Chrome flag or by participating in a deprecation trial. Once sites are no longer relying on the disabled feature, remove the code.
Blink Intents
Chromium-based web browsers such as Chrome use the Blink rendering engine to transform code and resources into web pages you can view and interact with. When engineers want to make a change to Blink, they post on the blink-dev mailing list to get approval to proceed. These mailing list posts are called Blink Intents.
When engineers intend to deprecate and then remove a feature from Blink, they post an Intent to Deprecate on the blink-dev mailing list, followed by an Intent to Remove. The two Intents are often combined as an Intent to Deprecate and Remove.
Intent to Deprecate
An Intent to Deprecate is posted by Blink engineers when they want to start warning developers that a browser feature is planned for removal. At this point, the feature will continue to be available, but developers will be provided with support and information from Chrome DevTools, as well as in blog posts, on chromestatus.com, and in feature documentation on MDN and elsewhere.
Example: Intent to Deprecate: Mutation Events
Intent to Remove
An Intent to Remove is posted when Blink engineers intend to deactivate a feature and remove code for it. An Intent to Remove is often combined with an Intent to Deprecate, as an Intent to Deprecate and Remove.
Example: Intent to Deprecate and Remove: Web SQL
Minimize disruption to users and developers
Chrome avoids removing features whenever possible.
Chrome engineers always review feature usage rates and other data before proceeding with deprecations. A feature will only be removed if, for example, it's only used by a very small proportion of users and better alternatives are available, or if ecosystem changes mean that the feature may now pose severe security vulnerabilities. A feature is not usually removed from Chrome if other browsers plan to continue supporting it: feature removal must be coordinated between browser engines.
In addition to Intent posts on the blink-dev mailing list, deprecations are announced on the Chrome developer blog. Warnings and support information are also provided in Chrome DevTools, and in feature documentation. Timelines are also published within the chromestatus.com entry for a deprecated feature.
Temporarily re-enable a deprecated feature
Deprecation trials are a type of origin trial that allows a feature that has been changed, or disabled by default prior to removal, to be temporarily re-enabled. For example, mutation events were removed, starting in Chrome 127. Sites that needed extra time before removing these events could register for the deprecation trial to re-enable the events temporarily, on specified sites, giving them more time to migrate to alternative functionality.
For some deprecated features, a Chrome flag is made available to provide temporary access to the feature for an individual user, such as developers working on migration to alternatives.
Take action
As a developer you need to be ready for web platform changes.
You can check release notes for every new version of every browser, but you should also use pre-Stable browser channels to test and adapt your sites so they're ready for upcoming changes, including removals. At a minimum, ensure your development team uses both Chrome Dev channel and Chrome Stable to access sites you work on. As a developer, you can run multiple channels simultaneously. That lets you test with future versions of Chrome, as well as experiencing your site in Chrome Stable, which is likely to be the channel used by the vast majority of your users.
Regularly check the Chrome DevTools console for deprecation warnings. DevTools provides information and links to resources to help you migrate away from deprecated features. You should also use multiple Chrome channels for automated and manual testing.