在几乎所有版本的 Chrome 中,我们都会看到大量的更新, 产品改进、性能以及 Web 功能 平台。本文介绍了 Chrome 60 此功能自 6 月 8 日起处于 Beta 版阶段。此列表随时可能更改。
安全
crypto.subtle 现在需要安全源
Web Crypto API
已支持,因为 Chrome 37 一直运行不安全的
来源。得益于 Chrome 长期以来的政策,
更倾向于通过安全的源提供强大的功能
crypto.subtle
仅在安全源上可见。
移除内容启动的顶部帧导航到数据网址
由于非技术性浏览器用户不熟悉
data:
方案被用于欺骗和钓鱼式攻击的越来越多
攻击。为防止出现这种情况,我们禁止网页加载 data:
个网址
放在顶部框架中这适用于 <a>
个标记、window.open
、
window.location
和类似机制。data:
架构对
加载的资源
此功能已在 Chrome 58 中弃用,现在已被移除。
打算移除 | Chromestatus Tracker | Chromium bug
针对某些 blob 暂时停用 navigator.sendBeacon()
navigator.sendBeacon()
函数已可供使用
自 Chrome 39 起。
按照最初的实现方式,函数的 data
参数可以包含
类型未在 CORS 安全列出的任意 blob。我们认为,这有可能
但还没有任何人尝试利用它。因为我们不会
有合理的立即解决此问题时,sendBeacon()
无法
不再可对类型未在 CORS 安全列出的 blob 上调用。
虽然此更改是针对 Chrome 60 实施的,但后来已合并 返回 Chrome 59。
CSS
使影子穿孔后代组合器的行为类似于后代组合器
影子穿孔后代组合器 (>>>
),属于
CSS 范围模块级别 1
,旨在匹配特定祖先元素的子元素
即使它们出现在影子树中也是如此。这种做法存在一些限制。
首先,根据规范,
只能用于 JavaScript 调用,例如 querySelector()
,
使用样式表。更重要的是,浏览器供应商无法使
工作范围会超出 Shadow DOM 的一个级别。
因此,已从相关规范中移除后代组合器 包括 Shadow DOM v1。移除此选择器即可中断网页 因此我们选择将 将 combinator 映射到后代 combinator。原始行为 已在 Chrome 45 中弃用。 新行为是在 Chrome 61 中实现的。
打算移除 | Chromestatus Tracker | Chromium bug
JavaScript
弃用并移除了 RTCPeerConnection.getStreamById()
大约两年前,getStreamById()
已被从 WebRTC 规范中移除。大多数其他浏览器
已从其实施中将其移除。尽管这个函数是
一般被认为很少被用过,还认为
与除 Safari 以外的基于 Edge 和 WebKit 的浏览器之间的互操作性风险
其中 getStreamById()
仍然受支持。开发者需要替代解决方案
具体实现可在下面的“移除 intent”中找到示例代码。
Chrome 62 中移除了此功能。
打算移除 | Chromestatus Tracker | Chromium bug
弃用了 SVGPathElement.getPathSegAtLength
两年前,getPathSegAtLength()
已被从 SVG 规范中移除。
由于 httparchive 中使用此方法的命中次数较少,
在 Chrome 60 中弃用我们预计会在 Chrome 62 中将其移除
会在 10 月初或中旬发货。
打算弃用 | Chromestatus Tracker | Chromium bug
将 getContextAttributes() 移到了标志后面
以下系统支持 getContextAttributes()
函数:
CanvasRenderingContext2D
从 2013 年开始。不过,该功能不属于任何标准,也尚未成为
其中一部分。它应该在
--enable-experimental-canvas-features
命令行 flag,但被误认为
错误。在 Chrome 60 中,这一问题得到了纠正。我们认为,
因为没有任何数据表明有人在使用该方法。
移除 Headers.prototype.getAll()
Headers.prototype.getAll()
函数正在根据最新要求移除
Fetch 规范的版本。
打算移除 | Chromestatus Tracker | Chromium bug
移除 indexDB.webkitGetDatabaseNames()
当索引型数据库在 Chrome 中相对较新且带有前缀时,我们添加了此功能 这也太疯狂了API 异步返回现有数据库的列表 这似乎很有道理。
遗憾的是,该设计存在缺陷,结果可能会立即过时 因此它只能用于日志记录,而不是用于严重的 应用逻辑通过 GitHub 问题跟踪/链接 关于替代方法的讨论,这就需要采用不同的方法。 由于缺乏跨界, 浏览器进度,库作者已经解决了这个问题。
需要此功能的开发者需要开发自己的解决方案。 例如,像 Dexie.js 这样的库使用全局表 而后者本身就是另一个用于跟踪数据库名称的数据库。
此功能已在 Chrome 58 中弃用,现在已被移除。
打算移除 |Chromestatus Tracker | Chromium bug
删除 WEBKIT_KEYFRAMES_RULE 和 WEBKIT_KEYFRAME_RULE
非标准 WEBKIT_KEYFRAMES_RULE
和 WEBKIT_KEYFRAME_RULE
常量
已从
CSS 规则。
开发者应改用 KEYFRAMES_RULE
和 KEYFRAME_RULE
。
打算移除 |Chromestatus Tracker | Chromium bug
界面
beforeunload 对话框需要用户手势
从 Chrome 60 开始,beforeunload
对话框仅在
尝试显示已收到用户手势或用户互动(或者
任何嵌入的帧已收到此类手势)。需要明确的是,这不是
对 beforeunload
事件的调度有所更改。它只是更改为
该对话框是否显示
beforeunload
对话框是应用模态对话框。因此,
是用户恶意的,也就是说,它会通过询问用户
决策。此功能具有正面用途。例如,它常用于
在通过导航会丢失数据时,警告用户。
虽然页面为 beforeunload
对话框提供文本的功能原为
不久前就被移除了,但 beforeunload
对话框仍然会成为滥用行为的途径。在
特别是,beforeunload
对话框是诈骗网站的成分,
自动播放音频和威胁性文字提供了 Chromium 的背景信息
提供“你确定要离开此页面吗”消息就会变得令人担忧
我们希望能够顺利完成各项工作,并且只允许合理使用 beforeunload
对话框。对话框的理想用法是用户所处的状态可能
。如果用户从未与网页互动过,则用户无法
这样我们就不会因
在这种情况下,此对话框会停止显示。