In nearly every version of Chrome, we see a significant number of updates and improvements to the product, its performance, and also capabilities of the Web Platform. This article describes the deprecations and removals in Chrome 58, which is in beta as of March 16. This list is subject to change at any time.
Remove case-insensitive matching for usemap attribute
usemap attribute was formerly defined as caseless. Unfortunately
implementing this was complicated enough that no browsers implemented it
correctly. Research suggested that such a complicated algorithm is unnecessary,
and even ASCII case-insensitive matching is unnecessary.
Consequently, the specification was updated so that case-sensitive matching is applied. The old behavior was deprecated in Chrome 57, and is now removed.
Remove legacy caller for HTMLEmbedElement and HTMLObjectElement
That an interface has a legacy caller means that an instance can be called as a
HTMLObjectElement support this
functionality. In Chrome 57 this ability was deprecated. Starting with Chrome
58, calling will throw and exception.
This change brings Chrome in line with recent spec changes. The legacy behavior is not supported in Edge or Safari, and it is being removed from Firefox.
Mouse on Android stops firing TouchEvents
Until Chrome 57, Android low-level mouse events in Chrome primarily followed an
event path designed for touch interactions. For example, mouse drag motion while
a mouse button is pressed generates
MotionEvents delivered through
But since touch events cannot support hover, hovering mousemoves followed a
separate path. The design had many side-effects including mouse interactions
TouchEvents, all mouse buttons appearing as left mouse buttons, and
MouseEvents being suppressed by
Starting with Chrome 58, a mouse on Android M or later will:
- No longer fire
- Fire a consistent sequence of
MouseEventswith appropriate buttons and other properties.
Remove support for commonName matching in certificates
RFC 2818 describes two methods to match a
domain name against a certificate: using the available names within the
subjectAlternativeName extension, or, in the absence of a SAN extension,
falling back to the
commonName. The fallback to the
deprecated in RFC 2818 (published in 2000), but support remains in a number of
TLS clients, often incorrectly.
The use of the
subjectAlternativeName fields leaves it unambiguous whether a
certificate is expressing a binding to an IP address or a domain name, and is
fully defined in terms of its interaction with Name Constraints. However, the
commonName is ambiguous, and because of this, support for it has been a source
of security bugs in Chrome, the libraries it uses, and within the TLS ecosystem
The compatibility risk for removing
commonName is low. RFC 2818 has
deprecated this for nearly two decades, and the
(which all publicly trusted certificate authorities must abide by) has required
the presence of a
subjectAltName since 2012. Firefox already requires the
subjectAltName for any newly issued publicly trusted certificates since
VTTRegion-related bits of TextTrack
The interface elements regions,
removeRegion(), have been
removed from the WebVTT spec and is removed in Chrome 58 to comply with
the latest spec. We expect little impact from
this removal since the feature was never enabled by default (meaning it was
behind a flag). Those needing an alternative can use the
property which is being added in Chrome 58.
WebAudio: remove AudioSourceNode interface
AudioSourceNode interface is not part of the
Web Audio specification,
is not constructible, and has no attributes so it basically has no developer-
accessible functionality. Therefore it is being removed.
Remove webkitdropzone global attribute
dropzone global attribute was introduced by the
HTML5 drag and drop specification
as a declarative method for specifying an HTML element's willingness to be the
target of a drag-and-drop operation, the content types that can be dropped onto
the element, and the drag-and-drop operation (copy/move/link).
The attribute failed to gain traction among browser vendors. Blink and WebKit
only implement a prefixed form of the attribute,
webkitdropzone. Because the
dropzone attribute was removed from the spec in
early March 2017
the prefixed version is being removed from Chrome.
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.