API Deprecations and Removals in Chrome 51

Joe Medley
Joe Medley

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.

In Chrome 51 (April, 2016) there are a number of changes to Chrome.

Remove support for SPDY/3.1

TL;DR: Support for HTTP/2 is widespread enough that SPDY/3.1 support can be dropped.

Intent to Remove | Chromestatus Tracker | Chromium Bug

SPDY/3.1 was an experimental application layer protocol that provided performance improvements over HTTP/1.1. It did this by, for example, connection multiplexing and server push. Many of its features were incorporated into HTTP/2, which was published as an RFC last May. Since HTTP/2 is supported by major servers and clients, it's time to remove SPDY/3.1 from Chrome.

Remove TLS next protocol negotiation (NPN)

TL;DR: As part of deprecation of SPDY, NPN is removed, having previously been replaced with ALPN.

Intent to Remove | Chromestatus Tracker | Chromium Bug

NPN was the TLS extension used to negotiate SPDY (and, in transition, HTTP/2). During the standardization process, NPN was replaced with ALPN, published as RFC 7301 in July 2014. We intend to remove NPN at the same time as the SPDY removal.

Remove custom messages in onbeforeunload dialogs

TL;DR: A window's onbeforeunload property no longer supports a custom string.

Intent to Remove | Chromestatus Tracker | Chromium Bug

A window’s onbeforeunload property may be set to a function that returns a string that is shown to the user in a dialog box to confirm that the user wants to navigate away. This was intended to prevent users from losing data during navigation. Unfortunately, it is often used to scam users.

Starting in Chrome 51, a custom string will no longer be shown to the user. Chrome will still show a dialog to prevent users from losing data, but it's contents will be set by the browser instead of the web page.

With this change, Chrome will be consistent with Safari 9.1 and later, as well as Firefox 4 and later.

Deprecated results attribute for <input type=search>

TL;DR: The results attribute is being deprecated because it's not part of any standard and is inconsistently implemented across browsers.

Intent to Remove | Chromestatus Tracker | Chromium Bug

The results value is only implemented in webkit and behaves highly inconsistently on those that do. For example, Chrome adds a magnifier icon to the input box, while on Safari desktop, it controls how many submitted queries are shown in a popup shown by clicking the magnifier icon. Since this isn't part of any standard, it's being deprecated.

If you still need to include the search icon in your input field then you will have to add some custom styling to the element. You can do this by including a background image and specifying a left padding on the input field.

    input[type=search] {
      background: url(some-great-icon.png) no-repeat scroll 15px 15px;

Removal is expected in Chrome 53.