Chrome 59 Beta:无外设 Chromium、macOS 上的本机通知以及服务工作线程导航预加载

996 阅读4分钟
Chrome 59 Beta:无外设 Chromium、macOS 上的本机通知以及服务工作线程导航预加载 2017年5月5日星期五 除非另外注明,否则下面介绍的更改均适用于最新 Chrome Beta 渠道版(Android、Chrome 操作系统、Linux、Mac 和 Windows)。

无外设 Chromium

无外设 Chromium 用于在没有界面或外设的自动化环境 中运行 Chromium。举例来说,它支持的用例有通过 Selenium自动执行设备测试以及将网页转换成 PDF。

为无外设 Chromium 提供技术支持的是 Chromium 和 Blink 所提供的各类现代网络平台功能。目前支持 Mac 和 Linux 平台,不久即会在 Windows 平台上进行技术实现。

macOS 上的本机通知

Chrome 以往自带通知系统,供网络和扩展程序开发者向用户发送通知。许多用户对 macOS 推出自有丰富通知系统的反应是,要求整合这两个通知系统。 


在 Chrome 59 中,当开发者通过 Notifications APIchrome.notifications 发送通知时,macOS 本机通知系统会直接显示这些通知。这一变化改善了用户体验,但现在不建议使用某些使用率较低的 API 功能,因为它们会造成 macOS 上体验下降,这在 迁移指南中有相关记述。


TMPNOTIF.png 与本机通知系统整合前后的 Chrome 通知对比。

服务工作线程导航预加载

Service Worker Navigation Preload API 让浏览器能够在服务工作线程启动时预加载导航请求。这些请求会先行启动,然后才会在服务工作线程中执行 fetch 事件处理程序,对目标网址进行拦截。这使服务工作线程能够获取 fetch 事件处理程序内的 preload 响应,从而让工作线程能够以最低延迟处理导航请求。

此版本中的其他特性

  • 开发者现在可以使用 MediaError.message 获取由 <audio> 或 <video> 产生的 MediaError 的更多详情。
  • WritableStreams 现在作为 Streams API 的一部分提供,用于处理数据流,同时提供标准抽象,以便向内置背压 和队列的接收器写入流式传输数据。
  • Streams API 进行了扩展,具备了在 ReadableStreams WritableStreams 之间(通过 pipeTo()pipeThrough() 方法)建立管道的能力,从而简化了流式传输数据的使用。
  • 开发者现在可以利用 getInstalledRelatedApps 函数,通过建议提供推送通知的时间和平台,以智能方式合并相关网络应用与本机应用之间的推送通知。
  • Image Capture API 现在允许网站 拍摄更高分辨率的图像,从而全面掌控变焦、ISO 和白平衡等相机设置。
  • 为增强私密性,CSS 样式表现在可以通过 HTTP 标头自行指定 引用站点政策 ,而不是像原来那样,一律继承最初引用它的文档的引用站点政策。
  • 为避免过多地提示用户,Chrome 现在会在第三次拒绝某个来源的权限请求后 暂时 阻止该来源请求权限。
  • 触摸事件 现已对齐 requestAnimationFrame ,从而确保将输入作为文档生命周期的一部分进行处理,以及形成更高效的自适应输入响应。
  • 新增的 worker-src 内容安全政策指令限制可作为 WorkerSharedWorkerServiceWorker 进行加载的网址。

弃用和互操作性的改善

  • 默认情况下 <dialog> 元素已从 display: inline 更改为 block,以便更符合 规范 要求。
  • 作为从媒体查询规范 中移除 的后续措施,取消了对 hover: on-demand 和 any-hover: on-demand 媒体查询的支持。
  • 为更符合规范要求以及帮助避免竞态问题, decodeAudioData 现在会分离给定 ArrayBuffer 后再进行下列操作:解码、从对象中移除全部内容以及令对象无法被重复使用或检查。
  • 为提高安全性,Chrome 不再支持通过 HTTP 请求通知权限。
  • -internal-media-controls-cast-button CSS 选择器已移除,代之以 Remote Playback API
  • -internal-media-controls-text-track-list* CSS 选择器已移除,代之以自定义构建视频控件。
  • 作为从规范移除的后续措施, SVGTests.requiredFeatures 属性已经弃用。
  • 为迎合弃用初始化函数并转向构造函数这一规范趋势,initDeviceMotionEvent() 和 initDeviceOrientationEvent() 已移除,代之以 DeviceOrientationEvent() 和 DeviceMotionEvent()
  • 为保持各浏览器之间的一致性, sample 属性现在将列入 违规 报告(以及相关 SecurityPolicyViolationEvent 对象),前提是违反的指令中存在 report-sample 表达式。
  • 为提高安全性,Chrome 现在会屏蔽对包含嵌入式凭据的子资源的请求,改为将它们作为网络错误进行处理。
  • 为提高安全性,Chrome 现在会屏蔽 HTTP/HTTPS 文档向 ftp: 网址发出的请求。
  • 为保持各浏览器之间的一致性,Chrome for Mac 不再支持通过 AppleScript 注入 JavaScript。
  • 从非主框架调用 Notification.requestPermission() 的功能已弃用,以使通知权限要求与推送通知要求保持一致,以及减小开发者的阻力。
  • 对共享词典压缩 (SDCH) 的支持已 禁用 ,持续到稳定 API 标准化为止。

发布人:无外设大腕 Sami Kyostila