Firefox 64 面向开发者的发布说明
本文档提供了 Firefox 64 中影响开发者的变更信息。Firefox 64 于 2018 年 12 月 11 日发布。
Web 开发人员的变更
开发者工具
-
无障碍信息栏已增强,可包含页面上文本或图像的颜色对比度信息(Firefox bug 1473037)。
-
响应式设计模式的设备选择现在会在会话之间保存(Firefox bug 1248619)。
-
可能受跟踪保护影响的资源现在在网络监视器中显示(Firefox bug 1333994)。
-
Web 控制台在代码输入和评估方面有所改进
- 控制台表达式的自动补全现在不区分大小写(Firefox bug 672733)。
- 现在可以使用类似 bash 的反向搜索逐步遍历控制台表达式历史记录(Firefox bug 1024913)。
- 控制台中评估的代码现在在输入和输出中都进行了语法高亮显示(Firefox bug 1463669)。
-
JavaScript 调试器中的单步调试也有一些改进
- 调试器中从函数跳出现在会跳过返回值(Firefox bug 923975)。
移除
- 开发者工具 GCLI 已移除(Firefox bug 1429421)。
HTML
无更改。
CSS
- CSS 滚动条规范功能已默认启用(Firefox bug 1492012)。
- 实现了交互媒体特性,包括
pointer:coarse(Firefox bug 1035774)。有关any-pointer和any-hover的实现,请参阅 Firefox bug 1483111。 - Firefox for Android 现在支持
prefers-reduced-motion媒体特性(Firefox bug 1478505)。 - CSS
<gradient>值现在支持多位置颜色停止语法,例如,yellow 25%, yellow 50%现在可以写成yellow 25% 50%(Firefox bug 1352643)。 text-transform属性现在接受full-size-kana值(Firefox bug 1498148)。- 添加了对
-webkit-appearance的支持,以缓解相关的 Web 兼容性问题(Firefox bug 1368555)。 - 与上述更新密切相关,我们还移除了大部分 Firefox 特定的
-moz-appearance值(Firefox bug 1496720)。 display:list-item现在支持在<legend>元素上(Firefox bug 1486602)。- SVG
path(),可在offset-path中使用,现在可动画化(Firefox bug 1486094)。 - 如果选择器链或组包含以
-webkit-为前缀的伪元素,该伪元素不再使其无效(详见 Firefox bug 1424106,并参阅 Firefox bug 1486325 以启用此功能)。
移除
- 非标准
-moz-box和-moz-inline-boxdisplay值已对 Web 内容隐藏(Firefox bug 1496961)。 - 非标准
::-moz-tree伪元素已对 Web 内容隐藏(Firefox bug 1496961)。 layout.css.filters.enabled首选项已移除;CSS 滤镜不再可禁用(Firefox bug 1408841)。- 之前的一项更改——交换 2 值
overflow语法的值,以便先指定块级,后指定行内(Firefox bug 1481866)——已恢复(Firefox bug 1492567)。有关原因,请参阅 Bug 1481866 comment 14。
SVG
无更改。
JavaScript
- TC39 Well-formed JSON.stringify 提案已实现,以防止
JSON.stringify返回格式错误的 Unicode 字符串(Firefox bug 1469021)。 - 代理函数现在可以与
Function.prototype.toString一起使用(Firefox bug 1440468)。 - 在
WebAssembly.Global()构造函数中,如果未指定值,则使用类型化的 0 值。这由DefaultValue算法指定(Firefox bug 1490286)。
API
DOM
-
已实现与 全屏 API 相关的一些更改
- API 已取消前缀(Firefox bug 1269276)。
Element.requestFullscreen()和Document.exitFullscreen()方法现在都返回一个Promise,该 Promise 在模式更改完成后解析(Firefox bug 1188256 和 Firefox bug 1491212)。- 以前,
fullscreenchange和fullscreenerror事件首先分派给Document,然后是Element。现在已颠倒顺序,元素首先接收事件。这与最新规范以及 Google Chrome 的行为相匹配(Firefox bug 1375319)。
-
WebVR API (1.1) 现在在 macOS 中重新启用(Firefox bug 1476091)。
-
已实现
Window.screenLeft和Window.screenTop,作为Window.screenX和Window.screenY的别名(Firefox bug 1498860)。 -
XMLHttpRequest.getAllResponseHeaders()方法现在按照规范返回小写字母的头部名称(Firefox bug 1398718)。 -
根据最近的 规范更新,旧版
HTMLAllCollection接口已更新(Firefox bug 1398354)。 -
Navigator.buildID现在返回一个固定的时间戳,作为隐私保护措施(Firefox bug 583181)。 -
以下
Document.execCommand()UI 功能命令已默认禁用(Firefox bug 1490641enableObjectResizingenableInlineTableEditingenableAbsolutePositionEditor
Service Workers
媒体、Web Audio 和 WebRTC
PannerNode.refDistance、PannerNode.maxDistance、PannerNode.rolloffFactor和PannerNode.coneOuterGain属性现在在设置为超出其接受范围的值时正确抛出异常(Firefox bug 1487963)。- 通过
RTCRtpSender.setParameters()更改的RTCRtpEncodingParameters设置在通话期间更改时曾经无法更新。它们现在将实时更新,无需重新协商(Firefox bug 1253499)。 - 已实现
RTCIceCandidateStats.relayProtocol——这是RTCIceCandidateStats.mozLocalTransport的标准化版本,后者现已弃用(Firefox bug 1435789)。 - 自动增益控制 (AGC) 现已默认启用;这可以通过首选项
media.getusermedia.agc_enabled更改(Firefox bug 1496714)。
移除
- 为解决 Web 兼容性问题而在 Firefox 63 中添加的
Window.event属性,由于发现其他问题,目前已通过首选项 (dom.window.event.enabled) 禁用,并在发布版本中默认禁用(Firefox bug 1493869)。请注意,这实际上是在 Firefox 63 发布周期后期完成的,但我们在此提及以防万一。 LocalMediaStream接口及其stop()方法已移除(Firefox bug 1258143)。随着LocalMediaStream的弃用,此方法不再可用。请参阅停止视频流部分以了解如何停止整个流。AudioStreamTrack和VideoStreamTrack接口已移除,因为它们都已弃用一段时间(Firefox bug 1377146)。它们的功能已合并到MediaStreamTrack中;轨道现在通过其kind属性的值(例如audio或video)进行标识。
安全
- Symantec CA 不信任计划已实施(请参阅 Firefox bug 1409257;另请参阅 Mozilla's Plan for Symantec Roots 讨论以获取更多详细信息)。
Referrer-Policy现在可用于管理通过样式表获取的资源(Firefox bug 1330487)——有关更多信息,请参阅 与 CSS 集成。
插件
无更改。
WebDriver 符合性 (Marionette)
API 更改
- 已移除没有
Marionette:、L10n:或Addon:前缀的已弃用命令端点(包括singeTap)(Firefox bug 1504478,Firefox bug 1504940)。
错误修复
- 通过
WebDriver:PerformActions合成的Shift键事件未能导致大写字母(Firefox bug 1405370)。 - 如果在导航期间选项卡的基础内容进程多次更改,
WebDriver:Navigate可能会导致无限挂起(Firefox bug 1504807)。 - 为了提高 Firefox 的性能并减少内存占用,新选项卡或窗口的默认加载页面不再是
about:newtab,而是about:blank(Firefox bug 1506643)。 - 内容阻止介绍面板,它显示在各种网页上并导致元素交互失败,现在默认禁用(Firefox bug 1488826)。
附加组件开发人员的变更
API 更改
菜单
-
一个新 API
menus.overrideContext(),可以在contextmenuDOM 事件中调用,以在扩展页面中设置自定义上下文菜单。此 API 允许扩展程序隐藏所有默认的 Firefox 菜单项,以提供自定义上下文菜单 UI。此上下文菜单可以包含来自扩展程序的多个顶级菜单项,并且可以选择包含来自其他扩展程序的选项卡或书签上下文菜单项。有关更多详细信息,请参阅此博客文章。menus.overrideContext()在(Firefox bug 1280347)中实现。showDefaults: false选项,可用于隐藏默认上下文菜单选项,在(Firefox bug 1367160)中实现。documentURLPatterns现在可以用于匹配moz-extension://文档 URL,即使使用了menus.overrideContext()。这样,它可以可靠地用于将自定义菜单项限制到某些文档(Firefox bug 1498896)。
-
您现在可以使用
menus.create()和menus.update()中的新viewTypes属性来限制上下文菜单在附加组件中出现的位置(Firefox bug 1416839)。 -
menus.update()现在可用于更新现有菜单项的图标(Firefox bug 1414566)。 -
扩展现在可以检测到单击菜单项时使用了哪个鼠标按钮——这可以通过
menus.OnClickData的新button属性找到(Firefox bug 1469148)。
Windows
windows.create()方法现在有一个新选项可用——cookieStoreId——它指定了在窗口打开时为所有创建的选项卡使用的CookieStoreId(Firefox bug 1393570)。
隐私
privacy.websitescookieConfig属性是一个可以接受behavior属性的对象——此属性现在可以接受一个新值reject_trackers,它指示扩展程序拒绝跟踪 cookie(Firefox bug 1493057)。
devtools.panels API
- 现已支持
devtools.panels.elementsSidebar.setPage()方法(Firefox bug 1398734)。
清单更改
page_action清单键的新pinned属性使扩展程序能够控制其页面操作是否应在安装时固定到地址栏(Firefox bug 1494135)。- 在 Windows 上的原生清单中,将首先检查 32 位注册表视图(Wow6432Node)中的注册表项,然后是“原生”注册表视图;您应该使用适合您应用程序的视图(Firefox bug 1494709)。
chrome_settings_overrides字段的search_provider对象现在可以包含新属性——suggest_url和suggest_url_post_params(Firefox bug 1486819),以及search_url_post_params。
另见
- Hacks 发布帖子:Firefox 64 发布