Firefox 66 面向开发者的发布说明

本文介绍 Firefox 66 中会影响开发者的变化。Firefox 66 已于 2019 年 3 月 19 日发布。

Web 开发人员的变更

开发者工具

HTML

  • 现在支持从 file: URL 加载 UTF-8 编码的 HTML(和纯文本)文件,无需 <meta charset="utf-8"> 或 UTF-8 BOM,这使得在将此类文件上传到服务器之前在本地处理它们变得更加容易。你仍然需要确保服务器在此类文件的 Content-Type HTTP 标头中发送 charset=utf-8,否则用于本地文件的检测机制会在网络情况下破坏增量加载 (Firefox bug 1071816)。

移除

CSS

SVG

无新增。

移除

JavaScript

无更改。

API

新的 API/变更

  • 在 66 版本成为 Firefox 正式版后不久,将默认阻止自动播放音频(Firefox bug 1487844,有关推出详情,请参阅 Firefox bug 1535667)。该功能将逐步向用户推出,直到所有人都能使用。

DOM

DOM 事件

  • 已实现 InputEvent.inputType 属性 (Firefox bug 1447239)。
  • Window.eventEvent.returnValue 属性——最初是 IE 的专有功能,后来为了兼容性目的也被其他浏览器支持——在 Firefox 66 中被重新引入,此前它们分别在 63 和 64 版本中首次添加,但随后因兼容性问题再次被移除。
  • 从 66 版本起,当 keypress 事件对象的 KeyboardEvent.keyCode 属性为 0 时,其值将与 KeyboardEvent.charCode 相同。反之,当 charCode 为 0 时,它将与 keyCode 相同。这种镜像行为与其他浏览器匹配,预计将解决大多数相关的兼容性问题,但用户代理嗅探可能会在某些 JavaScript 库中引起进一步的问题。请注意,从规范的角度来看,我们已经从分离模型切换到了合并模型(请参阅 UI 事件规范中的如何确定按键事件的 keyCode)。

媒体、Web Audio 和 WebRTC

  • 新的 AV1 视频编解码器现已在 macOS 和 Windows(适用于 Intel 处理器)上默认启用。Linux 支持将在 Firefox 67 中提供 (Firefox bug 1521181, Firefox bug 1452146, 和 Firefox bug 1534814)。
  • MediaDevicesgetDisplayMedia() 方法(可通过 navigator.mediaDevices.getDisplayMedia() 访问)已被添加并与规范同步。该方法允许你将屏幕或屏幕的一部分捕获为 MediaStream,以进行操作或共享 (Firefox bug 1321221)。
  • 作为最终弃用 Firefox 特有的基于 getUserMedia() 的屏幕和窗口内容捕获方法的一步,非标准的 mediaSource 约束现在将 screenwindow 这两个值视为相同。现在,两者都会向用户展示一个包含屏幕和窗口的列表供其选择 (Firefox bug 1474376)。
  • 已添加 RTCOutboundRtpStreamStats.qpSum。它测量了视频轨道上发送或接收的每一帧的量化参数值的总和。这个数字越高,流的压缩程度可能就越高 (Firefox bug 1347070)。
  • 作为在未来 Firefox 更新中实现功能策略支持过程中的一步,getUserMedia() 不能再在没有适当内容来源的情况下使用,例如在沙盒化的 <iframe> 中调用,或从用户在地址栏中输入的 data URL 调用。有关更多详细信息,请参阅 MediaDevices.getUserMedia() 页面上的安全部分 (Firefox bug 1371741)。

移除

  • 旧版的 WebRTC PeerConnection.getStats() 方法已被移除,相关的类型也一同移除 (Firefox bug 1328194)。

网络

安全

无更改。

插件

无更改。

WebDriver 符合性 (Marionette)

API 更改

  • 已添加 WebDriver:NewWindow 以支持打开新的浏览上下文,可以是窗口或标签页 (Firefox bug 1504756)。

  • 如果指定的元素不属于当前的浏览上下文,WebDriver:SwitchToFrame 现在会引发 no such element 错误 (Firefox bug 1517196)。

  • WebDriver:ExecuteScriptWebDriver:ExecuteAsyncScript 不再支持不符合规范的 scriptTimeout 参数。请改用 WebDriver:SetTimeouttimeouts 能力来定义此值 (Firefox bug 1510929)。

  • WebDriver:SetWindowRect 不再在其响应中返回窗口状态 (Firefox bug 1517587)。

错误修复

附加组件开发人员的变更

API 更改

  • “bookmark” type 的扩展菜单项也将出现在书签侧边栏 (Ctrl + B) 和库窗口 (Ctrl + Shift + B) 中 (Firefox bug 1419195)。

清单更改

无更改。

另见