日前,Chrome 59 Beta在谷歌Chrome官网上线,谷歌开发者也在其官方博客中宣布了该版本的主要新特性,重点包括无外设Chromium、macOS上的本机通知以及服务工作线程导航预加载等,具体如下。
Chrome 59 Beta主要更新:
——无外设Chromium
无外设Chromium用于在没有界面或外设的自动化环境中运行Chromium。举例来说,它支持的用例有通过Selenium自动执行设备测试以及将网页转换成 PDF。
为无外设Chromium提供技术支持的是Chromium和Blink所提供的各类现代网络平台功能。目前支持Mac和Linux平台,不久即会在Windows平台上进行技术实现。
——macOS上的本机通知
Chrome以往自带通知系统,供网络和扩展程序开发者向用户发送通知。许多用户对 macOS 推出自有丰富通知系统的反应是,要求整合这两个通知系统。
在Chrome 59中,当开发者通过Notifications API或chrome.notifications发送通知时,macOS本机通知系统会直接显示这些通知。这一变化改善了用户体验,但现在不建议使用某些使用率较低的 API 功能,因为它们会造成 macOS 上体验下降,这在迁移指南中有相关记述。
与本机通知系统整合前后的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 内容安全政策指令限制可作为Worker、SharedWorker或ServiceWorker进行加载的网址。
——弃用和互操作性的改善
— 默认情况下 <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标准化为止。
Chrome 59 Beta下载地址:点击这里