Google 开发者博客:Chrome 60 Beta 新特性

738 阅读4分钟
除非另外注明,否则,下面介绍的更改均适用于最新 Chrome Beta 渠道版(Android、Chrome 操作系统、Linux、Mac 和 Windows)。

Paint Timing API

尽管并没有公认的标准能够在所有情况下完美地反映页面的 加载时间First Paint and First Contentful Paint仍然为衡量页面加载期间关键的用户参与环节提供了极具价值的数据。为了让开发者 更好地洞察 网站的加载性能,全新的 Paint Timing API 公开了捕获 First Paint and First Contentful Paint 的指标。 Screen Shot 2017-06-08 at 8.57.03 AM.png 

Google.com 的 First Paint and First Contentful Paint 截图,摘自 Google I/O 2017 上发布的 《网络性能:挖掘最影响用户体验的指标》(Web Performance: Leveraging the Metrics that Most Affect User Experience)


CSS font-display

可下载的网页字体经常用于创建视觉效果更丰富多彩的网页体验。历史上,为了确保视觉正确性,Chrome 一直延迟渲染文本,直至有指定的字体可用。然而,在网络连接不佳的情况下,下载字体可能需要几秒钟的时间,严重延迟了用户查看内容的时间。现在,Chrome 支持 CSS @font-face 描述符和相应的 font-display 属性 ,允许开发者指定 Chrome 在下载字体时如何以及何时显示文本内容

Credential Management API 的改进

为响应广大开发者的反馈,也为了使 Credential Management API 更易于用于所有网站,现在已不再需要自定义 fetch() 来访问存储的密码。从 Chrome 60 开始,用户的密码现在将直接作为 PasswordCredential 的一部分返回。
此外,为了更好地呼应我们在 网络身份验证工作组 中所做的工作,我们还做出了 一系列更改。这包括弃用 requireUserMediation ,已将其重命名为 preventSilentAccess 。

此版本中的其他特性

弃用和互操作性的改善

  • getElementsByTagName() 现在接受符合限定条件的名称,以响应针对 DOM 规范 的一项更新。
  • 现在,/deep/ 的行为类似于 descendant 组合符 ,事实上就是一个空操作。
  • 为了 改善用户体验 ,现在,如果用户未明确点按帧或任何嵌入帧,则对 Navigator.vibrate() 的调用会立即返回 false ,这与 cross-origin iframes 的行为相同。
  • WEBKIT_KEYFRAME_RULE 和 WEBKIT_KEYFRAMES_RULE 已移除,代之以无前缀的标准化 API,即 KEYFRAME_RULEKEYFRAMES_RULE
  • 现已从 document.createEvent() 移除对非标准 WebKitAnimationEvent 和 WebKitTransitionEvent 的支持。
  • 为了更好地符合 规范 ,NodeIterator.filter 和 TreeWalker.filter 不再包装 JavaScript 对象,并且已从 window.NodeFilter 移除 .prototype 。
  • 正在移除 RTCPeerConnection.getStreamById() ,推荐使用 polyfill 代替原方法。
  • SVGPathElement.getPathSegAtLength() 已被弃用,因为它已从 SVGPathElement 规格中移除。
  • 已从 Fetch API 移除Headers.prototype.getAll(),以适应从规范中移除该方法。