Firefox 65 面向开发者的发布说明
本文档提供了 Firefox 65 中将影响开发者的变更信息。Firefox 65 于 2019 年 1 月 29 日发布。
Web 开发人员的变更
开发者工具
- Flexbox 检查器现在默认启用。
- JavaScript 调试器已增加对 XHR 断点的支持(Firefox bug 821610)。
- 在辅助功能查看器中,右键单击辅助功能树中的项目,可以将其以 JSON 格式打印到 JSON 查看器。
- 辅助功能选择器的颜色对比度显示已更新,如果文本背景复杂(例如,渐变或复杂图像),它会显示一系列颜色对比度值。
- 网络监视器的“请求头”选项卡现在显示所选请求的 Referrer Policy(Firefox bug 1496742)。
- 在显示堆栈跟踪(例如,在控制台日志或 JavaScript 调试器中)时,对框架方法的调用默认会被识别并折叠,从而更容易定位到您的代码。
- 与原生终端类似,您现在可以使用反向搜索在 JavaScript 控制台历史记录中查找条目(Windows/Linux 上按
F9,或 macOS 上按Ctrl+R,然后输入搜索词,再按Ctrl+R/Ctrl+S切换结果)。 - JavaScript 控制台的
$0快捷方式(引用页面上当前检查的元素)现在提供自动补全功能,例如,您可以输入$0.te来获取$0.textContent等属性的自动补全建议。 - 您在检查器的“规则”视图中所做的编辑现在列在“更改”面板中(Firefox bug 1503920)。
HTML
- 事件现在在禁用的 HTML 元素上分派,即,设置了
disabled属性的<button>、<fieldset>、<input>、<select>和<textarea>元素(Firefox bug 329509)。 - 移除
<iframe>元素的src属性现在会导致about:blank加载到其中,使其与 Chrome 和 Safari 保持一致(Firefox bug 1507842)。以前移除src对iframe内容没有影响。 - 我们已增加对
<script>元素上的referrerpolicy属性的支持(Firefox bug 1460920)。
CSS
-
image-rendering属性的crisp-edges值现在已取消前缀(Firefox bug 1496617)。 -
scrollbar-color的auto值现在解析为auto,而不是两种颜色(Firefox bug 1501418)。 -
break-*属性已实现,并且旧版page-break-*属性已别名为它们(Firefox bug 775618)。break-before现在是page-break-before的别名。break-after现在是page-break-after的别名。break-inside现在是page-break-inside的别名。
-
overflow-wrap属性的anywhere值已实现(Firefox bug 1505786)。 -
新的步进位置关键字
jump-start、jump-end、jump-none和jump-both(可在steps()计时函数中使用)已实现(Firefox bug 1496619)。这与frames()计时函数的移除同时发生,后者是以前实现此类功能的方式,现已弃用。 -
为与其他浏览器兼容,已添加一些新的
-webkit-appearance值。特别是:meter,现在用作 UA 样式表中<meter>元素的默认值。现有值meterbar现在是meter的别名(Firefox bug 1501483)。progress-bar,现在用作 UA 样式表中<progress>元素的默认值。现有值progressbar现在是progress-bar的别名(Firefox bug 1501506)。textarea,现在用作 UA 样式表中<textarea>元素的默认值。现有值textfield-multiline现在是textarea的别名(Firefox bug 1507905)。
-
user-select的行为已更改,使其更与其他浏览器保持一致(Firefox bug 1506547)。具体来说:-
在元素上设置
user-select: all不再覆盖在该元素的子元素上设置的其他user-select值。例如,在以下代码片段中:html<div style="-webkit-user-select: all"> All <div style="-webkit-user-select: none">None</div> </div>设置了
none的<div>现在不可选。以前,此值会被父元素上设置的all值覆盖。 -
嵌套在
contenteditable元素中的非contenteditable元素现在可选择。 -
user-select现在在 Shadow DOM 内部和外部表现一致。 -
专有的
-moz-text值已被移除。
-
-
CSS 环境变量(
env()函数)已实现(Firefox bug 1462233)。
移除
layout.css.shape-outside.enabled首选项已移除;shape-outside、shape-margin和shape-image-threshold不再可以在about:config中禁用(Firefox bug 1504387)。user-select属性的几个 Firefox 专有值已被移除——-moz-all、-moz-text、tri-state、element、elements和toggle。请参阅 Firefox bug 1492958 和 Firefox bug 1506547。- 如上所述,
frames()计时函数已被移除(Firefox bug 1496619)。
SVG
无更改。
JavaScript
Intl.RelativeTimeFormat现在受支持(Firefox bug 1504334)。- 字符串的最大长度现在是
2**30 - 2(~1GB),而不是2**28 - 1(~256MB)(Firefox bug 1509542)。 - 始终指向顶层全局对象的
globalThis属性已实现(Firefox bug 1317422)。
API
新 API
- 可读流已默认启用(Firefox bug 1505122)。
- 存储访问 API 已默认启用(Firefox bug 1513021)。
DOM
Performance.toJSON()已暴露给 Web Workers(Firefox bug 1504958)。- 如果请求的内容类型是
Blob且请求方法不是GET,XMLHttpRequest请求现在将抛出NetworkError(Firefox bug 1502599)。 - 许多 全屏 API 功能的
-moz-前缀版本已被弃用,现在在 JavaScript 控制台中遇到时将显示弃用警告(Firefox bug 1504946)。 Window.createImageBitmap()和WorkerGlobalScope.createImageBitmap()现在支持 SVG 图像(SVGImageElement)作为图像源(Firefox bug 1500768)。
DOM 事件
- 今后,每个事件只允许一次
Window.open()调用(Firefox bug 675574)。 keyup和keydown事件现在在 IME 组合期间触发,以改善 CJKT 用户的跨浏览器兼容性(Firefox bug 354358)。
Web Workers
SharedWorkerGlobalScope.connect的事件对象是一个MessageEvent实例——其data属性现在是一个空字符串值而不是null(Firefox bug 1508824)。
Fetch 和 Service Workers
- 如果将无效 URL 指定为第一个参数,
Response.redirect()方法现在会正确抛出TypeError(Firefox bug 1503276)。 ServiceWorkerContainer.register()和WorkerGlobalScope.importScripts()(当由 Service Worker 使用时)方法现在将接受任何具有有效 JavaScript MIME 类型的文件(Firefox bug 1354577)。FetchEvent.replacesClientId和FetchEvent.resultingClientId属性现在受支持(Firefox bug 1264177)。ServiceWorkerGlobalScope.onmessageerror和ServiceWorkerContainer.onmessageerror处理程序属性已实现(Firefox bug 1399446)。- 对于方法为
HEAD或GET的 Fetch 请求,不再设置Origin请求头(Firefox bug 1508661)。
媒体、Web Audio 和 WebRTC
- WebRTC 的
RTCIceCandidateStats字典已根据最新的规范更改进行更新(Firefox bug 1324788, Firefox bug 1489040;有关具体更改的更多详细信息,请参阅 RTCIceCandidateStats 已更新至最新规范)。 MediaRecorder的pause和resume事件(以及它们对应的事件处理程序属性)以前没有实现,尽管兼容性表格声称它们已经实现。它们现在已经实现(Firefox bug 1458538, Firefox bug 1514016)。
Canvas 和 WebGL
- WebGL 的
EXT_texture_compression_bptc和EXT_texture_compression_rgtc纹理压缩扩展已暴露给 WebGL1 和 WebGL2 上下文(Firefox bug 1507263)。
移除
- 变动事件已在 Shadow Tree 中禁用(Firefox bug 1489858)。
- 非标准的
MediaStream属性currentTime已移除(Firefox bug 1502927)。 dom.webcomponents.shadowdom.enabled和dom.webcomponents.customelements.enabled首选项已移除——Shadow DOM 和自定义元素不再可以在about:config中禁用(Firefox bug 1503019)。- 非标准的 DOM
text事件——用于通知浏览器编辑器 UI IME 组合字符串数据和选择范围——已移除(Firefox bug 1288640)。 - 除
Enter键以及Shift+Enter和Ctrl+Enter组合键(为跨浏览器兼容性保留)外,不可打印键不再触发keypress事件(Firefox bug 968056)。
安全
- 现在对允许的请求头强制执行额外的 CORS 限制(Firefox bug 1483815,另请参阅 whatwg fetch issue 382: CORS-safelisted request headers should be restricted according to RFC 7231 获取更多详细信息)。
网络
无更改。
插件
无更改。
WebDriver 符合性 (Marionette)
API 更改
WebDriver:ElementSendKeys现在对<input type=file>的可交互性检查更加宽松,并允许这些元素隐藏而不再引发not interactable错误。如果需要严格的可交互性检查,可以使用strictFileInteractability功能(Firefox bug 1502864)。
错误修复
- 窗口操作命令
WebDriver:FullscreenWindow、WebDriver:MinimizeWindow、WebDriver:MaximizeWindow和WebDriver:SetWindowRect已变得更加稳定(Firefox bug 1492499)。这意味着在特殊情况下它们不再导致无限挂起,而是如果无法达到请求的窗口状态,将在 5 秒后超时(Firefox bug 1521527)。 WebDriver:ElementClick现在正确计算元素的中心点进行点击,这允许与 1x1 像素尺寸的元素进行交互(Firefox bug 1499360)。
其他
- 对于
unexpected alert open错误,提供了更具信息性的消息(Firefox bug 1502268)。
其他
-
已添加对 WebP 图像的支持(Firefox bug 1294490)。
- 此外,为了在某些情况下促进跨浏览器兼容性,WebP MIME 类型(
image/webp)已添加到 HTML 文件的标准 HTTP 请求Accept请求头中(Firefox bug 1507691)。
- 此外,为了在某些情况下促进跨浏览器兼容性,WebP MIME 类型(
-
AV1 编解码器现在在 Windows 上默认受支持(Firefox bug 1452146)。
附加组件开发人员的变更
API 更改
标签页
- tabs API 已增强,以支持标签页后继者——标签页可以分配一个后继者,即它关闭后将激活的标签页的 ID(Firefox bug 1500479,另请参阅 这篇博客文章 获取更多信息)。特别是:
tabs.Tab类型现在有一个successorId属性,可用于存储/检索标签页后继者的 ID。tabs.onActivated事件监听器的回调有一个新的可用参数previousTabId,其中包含先前激活的标签页的 ID(如果它仍然打开)。tabs.update()函数的updateProperties对象上有一个新的可选属性successorTabId,因此可用于更新它。successorTabId也由tabs.get()和tabs.query()等函数返回。- 新函数
tabs.moveInSuccession()允许批量操作标签页后继者。
清单更改
无更改。
其他
- WebExtension 主题的
headerURL/theme_frame属性现在在 Firefox for Android 上受支持(Firefox bug 1429488)。
另见
- Hacks 发布文章:Firefox 65:WebP 支持、Flexbox 检查器、新工具和平台更新