Firefox 70 开发者发行说明
本文档提供有关 Firefox 70 中将影响开发人员的更改的信息。Firefox 70 于 2019 年 10 月 22 日发布。
Web 开发人员的变更
开发者工具
调试器更新
- 在调试器中,您现在可以为DOM 变动设置断点,因此当节点或其属性发生更改或节点从 DOM 中移除时,执行将暂停(Firefox bug 1576219)。
- 调试器现在在页面暂停时显示一个覆盖层,带有基本的单步执行按钮,让您可以单步执行和继续(Firefox bug 1574646)。
- 调试器现在显示已被引擎丢弃的源(通常是在页面加载期间执行一次的脚本),因此您可以正确设置断点以在其下次执行时进行调试(Firefox bug 1572280)。
- 调试器的作用域面板分组已简化,整合了以前显示在顶级函数之上的其他作用域(例如,由
let、with或if/else创建的块)(Firefox bug 1448166)。 - 调试器现在在单步执行时保留作用域面板中当前选定和展开的变量(Firefox bug 1405402)。
- 调试器现在可以正确处理异步函数的单步执行,使异步函数调试更容易(Firefox bug 1570178)。
- 在容器会话中调试时(有助于测试不同的登录),调试器中的源现在正确显示(Firefox bug 1375036)。
debugger语句现在可以通过在其上设置断点并将断点切换到“从不在此处暂停”来在调试器中禁用(Firefox bug 925269)。- WebExtensions 开发者可以从“存储”选项卡下的“扩展存储”项检查
browser.storage.local(Firefox bug 1585499)。
其他更新
- 在页面检查器的规则视图中,不活动的 CSS 属性旁边会显示一个图标,您可以将鼠标悬停在该图标上以获取有关其为何不活动的信息(Firefox bug 1306054)。
- 在CSS 规则视图中,前景颜色上的颜色选择器现在会告诉您其与背景颜色的对比度是否符合可访问性一致性标准(Firefox bug 1478156)。
- 可访问性检查器的检查问题下拉菜单现在包含键盘可访问性检查(Firefox bug 1564968)。
HTML
- Firefox 现在可以在以下情况下向用户建议安全生成的密码:
- 一个
<input>元素具有autocomplete="new-password"属性值。 - 用户在任何密码输入元素上打开上下文菜单,即使它不用于新密码。
- 一个
CSS
-
诸如
opacity或stop-opacity等不透明度值现在可以是百分比(Firefox bug 1562086)。 -
grid-auto-columns和grid-auto-rows现在接受多个轨道大小值(Firefox bug 1339672)。 -
一些与文本相关的 CSS 属性已默认启用(Firefox bug 1573631)。
text-decoration-thickness.text-underline-offset.text-decoration-skip-ink。默认值为auto,这意味着默认情况下,下划线和上划线现在会在它们跨越字形的地方中断。
-
display属性现在接受两个表示内部和外部显示类型的关键字值(Firefox bug 1038294、WebKit bug 1105868和WebKit bug 1557825)。 -
font-size属性现在接受新的关键字值xxx-large。(Firefox bug 1553545)。 -
出于逻辑和性能原因,
:visited伪类不再匹配<link>元素(Firefox bug 1572246;有关更多原因,请参阅意图发布:使<link>元素始终未访问和[选择器] :link 和 <link>)。 -
我们现在支持
quotes属性的auto值(Firefox bug 1421938)。 -
包含在
<style>元素中的样式表现在被缓存以供重用,以提高性能(Firefox bug 1480146)。请注意,这目前不包括包含@import规则的样式表。 -
<ratio>类型现在接受<number>/<number>或单个<number>作为值。(Firefox bug 1565562)。
移除
- 我们已停止支持 3 值<position>(不包括背景)(Firefox bug 1559276)。
none值现在在counter()/counters()中无效——此更改使 Level 3 规范与 CSS 2.1 匹配(Firefox bug 1576821)。
SVG
- 剪切、复制和粘贴事件现在分派到 SVG 图形元素(Firefox bug 1569474)。
MathML
<math>元素上已弃用的mode属性已被移除(Firefox bug 1573438)。- 不再支持非零无单位长度值,例如
5表示500%。 - 以点结尾的长度值,例如
2.或34.px,现在也不受支持。
JavaScript
- 现在支持数字分隔符(Firefox bug 1435818)。
Intl.RelativeTimeFormat.formatToParts()方法已实现(Firefox bug 1473229)。BigInt.prototype.toLocaleString()方法已更新,以根据 ECMAScript 402 Intl API 使用locales和options参数。此外,Intl.NumberFormat.format()和Intl.NumberFormat.formatToParts()现在接受BigInt值(Firefox bug 1543677)。- 根据最新的 ECMAScript 规范,BigInt 字面量现在绝不允许前导零,这使得
08n和09n无效,类似于使用旧式八进制数(如07n)时已有的错误。对于八进制BigInt数,始终使用带字母“o”(小写或大写)的前导零(即0o755n而不是0755n)。请参阅Firefox bug 1568619。 - 现在支持
Intl.RelativeTimeFormat构造函数的 Unicode 扩展键“nu”,并且Intl.RelativeTimeFormat.resolvedOptions()方法现在也返回numberingSystem(Firefox bug 1521819)。
API
DOM
back()、forward()和go()方法现在是异步的。添加popstate事件的监听器以获取导航完成的通知(Firefox bug 1563587)。- 我们已在 Web Workers 中添加了对
DOMMatrix、DOMPoint等的支持(Firefox bug 1420580)。 - 更多的成员已从
HTMLDocument移动到Document,包括Document.all、Document.clear、Document.captureEvents和Document.clear(Firefox bug 1558570、Firefox bug 1558571)。 - 不再允许在跨域
<iframe>中请求通知权限(Firefox bug 1560741)。
媒体、Web Audio 和 WebRTC
- 已添加
RTCPeerConnection.restartIce()方法。这是实现新“完美协商”机制所需的四个更改之一;其余将在未来的 Firefox 更新中提供(Firefox bug 1551316)。 RTCPeerConnection.setRemoteDescription()方法现在可以不带参数调用。这是另一个“完美协商”更新(Firefox bug 1568292)。- 现在支持
MediaTrackSupportedConstraints.groupId,并且由于现在支持MediaTrackConstraints.groupId属性,因此返回true(Firefox bug 1561254)。 - 已实现/更新一些新的 Web Audio API 功能:
- 实现了
AudioContext.getOutputTimestamp()(Firefox bug 1324545)。 - 实现了
AudioContext.baseLatency和AudioContext.outputLatency(Firefox bug 1324552)。 - 实现了
MediaElementAudioSourceNode.mediaElement和MediaStreamAudioSourceNode.mediaStream(Firefox bug 1350973)。 - 如果尝试将
channelCount和channelCountMode设置为无效值,ChannelMergerNode()构造函数现在会抛出错误(Firefox bug 1456263)。
- 实现了
Canvas 和 WebGL
- 我们现在支持
CanvasRenderingContext2D.getTransform(),以及接受矩阵对象作为参数而不是表示矩阵各个组件的多个参数的更新版本CanvasRenderingContext2D.setTransform()(Firefox bug 928150)。
HTTP
- 当增强跟踪保护开启时,第三方跟踪资源的默认 referrer policy 现在是
strict-origin-when-cross-origin(Firefox bug 1569996)。 Referer请求头的长度现在限制为 4 KB(4,096 字节)。如果过长的 referer 超过定义限制,将只发送原始部分(Firefox bug 1557346)。- HTTP 缓存现在按顶级文档的源进行分区(Firefox bug 1536058)。
移除
X-Frame-Options的allow-from uri指令已被移除。请改用带有frame-ancestors指令的Content-Security-Policy头(Firefox bug 1301529)。
WebDriver 符合性 (Marionette)
- 更新了
WebDriver:TakeScreenshot命令以兼容Fission。这意味着来自跨域 iframe 的内容现在包含在页面截图中。或者当从 chrome 作用域使用它时,活动选项卡的内容现在在浏览器窗口中可见。(Firefox bug 1559592)。 WebDriver:TakeScreenshot不再接受用于高亮的 DOM 元素列表(Firefox bug 1575511)。WebDriver:ExecuteScript和WebDriver:ExecuteAsyncScript不再以 Web 可访问的方式设置window.onunload(Firefox bug 1568991)。
附加组件开发人员的变更
API 更改
- 向
topSites.get()方法添加了一个新参数,该参数导致该方法返回用户打开新选项卡时出现的页面列表(Firefox bug 1568617)。 - 已修改
privacy.network属性的webRTCIPHandlingPolicy子属性的允许值(在Firefox bug 1452713中),以匹配 Chrome 中观察到的行为,如下所示:disable_non_proxied_udp以前在未配置代理时阻止使用 WebRTC。现在,如果配置了代理,则始终使用代理,否则允许非代理连接。proxy_only可用于提供旧行为;这会产生仅允许通过使用代理的 TCP 上的 TURN 进行 ICE 协商的效果;不允许其他连接。
清单更改
移除
以下主题键属性(为基于 Chromium 的浏览器中使用的主题键提供了别名)已被移除:
images属性headerURL,主题现在应使用theme_frame。colors属性accentcolor,主题现在应使用frame。textcolor,主题现在应使用tab_background_text。
另见
- Hacks 发布文章:Firefox 70 — 丰硕的发布