Chrome 51 中的 API 弃用和移除情况

Joe Medley
Joe Medley

在几乎每个版本的 Chrome 中,我们都看到了针对产品及其性能以及网络平台功能的大量更新和改进。

Chrome 51(2016 年 4 月)我们对 Chrome 进行了多项更改。

取消对 SPDY/3.1 的支持

要点:对 HTTP/2 的支持非常广泛,以至于可能会放弃对 SPDY/3.1 的支持。

意图移除 | Chromestatus Tracker | Chromium 错误

SPDY/3.1 是一种实验性应用层协议,可提供高于 HTTP/1.1 的性能。它是通过连接多路复用和服务器推送来实现的。它的许多功能均已整合到 HTTP/2,而 HTTP/2 已于去年 5 月以 RFC 的形式发布。由于 HTTP/2 受主要服务器和客户端的支持,因此是时候从 Chrome 中移除 SPDY/3.1 了。

移除 TLS 下一次协议协商 (NPN)

要点:在弃用 SPDY 的过程中,移除了 NPN,之前已替换为 ALPN。

意图移除 | Chromestatus Tracker | Chromium 错误

NPN 过去是用于协商 SPDY(以及在过渡时为 HTTP/2)的 TLS 扩展。 在标准化过程中,NPN 被 ALPN 取代,并于 2014 年 7 月发布为 RFC 7301。我们打算在移除 SPDY 的同时移除 NPN。

移除 onbeforeunload 对话框中的自定义消息

TL;DR:窗口的 onbeforeunload 属性不再支持自定义字符串。

意图移除 | Chromestatus Tracker | Chromium 错误

可以将窗口的 onbeforeunload 属性设置为一个函数,该函数会返回在对话框中向用户显示的字符串,以确认用户是否要离开。这是为了防止用户在导航过程中丢失数据。遗憾的是,它常常被用来欺骗用户。

从 Chrome 51 开始,系统将不再向用户显示自定义字符串。Chrome 仍会显示对话框以防止用户丢失数据,但对话框内容将由浏览器(而非网页)设置。

进行此项更改后,Chrome 将与 Safari 9.1 及更新版本,以及 Firefox 4 及更新版本保持一致。

<input type=search> 已废弃的结果属性

要点:我们即将弃用 results 属性,因为它不属于任何标准,并且在各浏览器中的实现方式也不一致。

意图移除 | Chromestatus Tracker | Chromium 错误

results 值仅在 webkit 中实现,在采用该属性时行为方式不一致。例如,Chrome 会向输入框添加一个放大镜图标,而在 Safari 桌面版上,它会通过点击放大镜图标控制在弹出式窗口中显示的已提交查询数量。由于此 API 不属于任何标准,因此即将被弃用。

如果您仍需在输入字段中添加搜索图标,则必须为元素添加一些自定义样式。为此,您可以添加背景图片,并在输入字段上指定左内边距。

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

我们预计会在 Chrome 53 中将其移除。