面向开发者的 Firefox 121

本文提供有关影响开发者的 Firefox 121 更改的信息。Firefox 121 于 2023 年 12 月 19 日 发布。

针对 Web 开发者的更改

HTML

  • 现在支持 <iframe> 元素的 延迟加载,允许开发人员暗示某些 <iframe> 元素应该只在它们变为可见时(如果变为可见)才加载。这可以通过减少页面加载时需要获取的资源来加快初始加载时间(某些 <iframe> 元素可能根本不需要获取)。可以通过 loading 属性在 <iframe> 元素上提供提示,或者在 JavaScript 中使用 HTMLIFrameElement.loading。(Firefox 错误 1622090).

CSS

  • text-wrap 属性已更新,支持 balancestable 值。balance 值用于短内容块,例如标题,并将确保内容在跨多行分布时保持平衡且易于阅读。stable 值确保可编辑内容在用户编辑时不会重新排列 (Firefox 错误 1731541).
  • 现在支持 :has() 选择器,通常称为父选择器。它允许开发人员根据相关元素应用样式,例如 li:has(ul) 将匹配包含子列表的列表,或者 h1:has(+ p) 将匹配其后紧跟着段落的标题。
  • 现在 text-indent CSS 属性支持 each-linehanging 属性值 (Firefox 错误 784648),使开发人员可以更轻松地指定某些文本缩进样式。此外,开发人员现在可以组合多个 text-indent 属性值以获得更大的创意,例如 text-indent: 3em hanging each-line

JavaScript

API

DOM

WebAssembly

  • WebAssembly 现在通过新的 return_callreturn_call_indirect 来支持尾调用优化,它们是 call 指令的替代方案。这提高了性能,减少了堆栈空间的使用,并增强了与使用尾调用的编程语言的兼容性。(Firefox 错误 1858855)。

WebDriver 一致性(WebDriver BiDi,Marionette)

WebDriver BiDi

Marionette

实验性 Web 功能

这些功能已在 Firefox 121 中新发布,但默认情况下处于禁用状态。要试验它们,请在 about:config 页面上搜索相应的首选项,并将其设置为 true。您可以在 实验性功能 页面上找到更多此类功能。

自定义元素状态伪类:dom.element.customstateset.enabled

自定义元素可以通过 states 属性以 CustomStateSet 的形式公开其内部状态。CSS 自定义状态伪类,例如 :--somestate,可以匹配该元素的状态。(Firefox 错误 1861466)

showPicker() 方法用于 HTML 选择元素:dom.select.showPicker.enabled

HTMLSelectElement.showPicker() 方法以编程方式启动 <select> 元素的浏览器选择器,由用户交互触发。(Firefox 错误 1854112)

针对附加组件开发者的更改

  • 修复了一个错误,该错误导致在 manifest.json 的 background 键中包含 service_workerscripts 声明时,后台页面无法启动(Firefox 错误 1860304)。

    注意: 巧合的是,Chrome 121 中的变化导致在与 service_worker 属性一起指定时忽略 scripts 属性。以前,Chrome 拒绝加载包含这两个属性的扩展程序(Chromium 错误 1418934)。有关更多信息,请参阅 background 清单键的浏览器支持

旧版本