Firefox 122 开发者发布说明

本文档提供了关于 Firefox 122 中影响开发者的更改信息。Firefox 122 已于 2024 年 1 月 23 日 发布。

Web 开发人员的变更

HTML

  • <hr> 元素现在允许作为 <select> 元素的子元素。这是一项新功能,可提高选项较多的选择列表的可读性。(Firefox bug 1830909)。
  • <ol> 中,如果 type HTML 属性设置为 nonedisccirclesquare,则不再生效;在 <ul> 中,如果设置为 1aAiI,则不再生效。由于 type<ul><ol> 列表的已弃用属性,因此应使用 list-style-type CSS 属性进行样式设置。(Firefox bug 1868087)。

CSS

JavaScript

  • ArrayBuffer.prototype.transfer()ArrayBuffer.prototype.transferToFixedLength() 方法现在可用于将内存的所有权从一个 ArrayBuffer 转移到另一个。传输后,原始缓冲区将与其原始内存分离,因此无法使用;可以使用 ArrayBuffer.prototype.detached 检查状态。(有关详细信息,请参阅 Firefox bug 1865103)。

  • 为了与其他浏览器保持一致,在解析 非标准日期字符串时,Date.parse()Date() 构造函数仅考虑指定月份的前三个字母。以前只接受截断的、包含三个或更多字符的完整月份名称。(有关详细信息,请参阅 Firefox bug 1862910)。

SVG

移除

  • 移除了 SVG <use> 元素中以及通过 SVGUseElement 接口对 data: URL 的支持,以防止 XSS 攻击。可以通过将 svg.use-element.data-url-href.allowed 首选项设置为 true 来重新启用旧功能,但出于安全原因不建议这样做(Firefox bug 1806964)。

API

  • 现在支持 LargestContentfulPaint API。此 API 是 Performance APIs 的一部分,并提供用户与网页交互前最大的图像或文本绘制的计时信息(Firefox bug 1866266)。

DOM

  • 现在支持 HTMLSelectElement.showPicker() 方法,允许在用户交互触发时,通过编程方式启动 <select> 元素的浏览器选择器(Firefox bug 1865207)。

移除

WebDriver 一致性 (WebDriver BiDi, Marionette)

通用

  • 修复了一个阻止 Perform Actions 正确合成 mouse 输入源的双击和其他多次点击事件的错误(Firefox bug 1864614)。此外,这些事件仅在实际鼠标位置自上次点击操作以来未发生变化时才会发出(Firefox bug 1681076)。
  • PauseEqual(小键盘块)键的定义已更新,以符合 WebDriver 规范(Firefox bug 1863687)。

WebDriver BiDi

  • WindowProxy 远程对象的序列化现在也能正确处理进程外 iframe(Firefox bug 1867667)。
  • browsingContext.setViewport 命令现在区分 viewport 参数值中的 undefinednull。如果设置为 undefined,则表示视口应保持不变,而使用 null 将将其重置为原始尺寸(Firefox bug 1865618)。
  • 已引入对 browsingContext.traverseHistory 命令的支持,从而可以向后和向前导航浏览器历史记录(Firefox bug 1841018)。
  • 修复了所有支持的网络事件中的一个错误,该错误导致 context ID 始终报告顶级浏览上下文,即使导航发生在 iframe 内(Firefox bug 1869735)。

Marionette

  • 修复了 Get Element Text 命令的一个错误,该命令在元素位于 ShadowRoot 的 slot 中时错误地返回了空文本(Firefox bug 1824664)。

实验性 Web 功能

这些功能是 Firefox 122 中新推出的,但默认禁用。要尝试它们,请在 about:config 页面上搜索相应的首选项并将其设置为 true。您可以在 实验性功能页面上找到更多此类功能。

  • 声明式 Shadow DOM: dom.webcomponents.shadowdom.declarative.enabled

    <template> 元素现在支持 shadowrootmode 属性,该属性可以设置为 openclosed,与 attachShadow() 方法的 mode 选项的值相同。它允许以声明方式创建 shadow DOM 子树。(Firefox bug 1712140

  • Shadow DOM 的可克隆选项和属性。

    • Element.attachShadow() 方法现在支持 clonable 布尔选项,该选项指定创建的 shadow root 是否可克隆:默认值为 false,但设置为 true 时,使用 Node.cloneNode()Document.importNode() 克隆的 shadow host 将包含 shadow root 的副本。
    • ShadowRoot 接口现在支持 clonable 只读属性。如果 shadow root 可克隆,则返回 true,否则返回 false。对于通过声明式 Shadow DOM 创建的 shadow root,它始终返回 true

    当 shadow root 通过声明式 Shadow DOM 创建时,clonable 选项默认设置为 true,并且 clonable 属性返回 true。(Firefox bug 1712140

  • Popover API: dom.element.popover.enabled

    现在通过 HTML 属性或 JavaScript API 支持在页面内容之上显示 popover,包括使用 CSS :popover-open 伪类进行样式设置以及对 ::backdrop 伪元素的扩展支持。有关更多详细信息,请参阅 Popover API 参考。(Firefox bug 1823757

  • Clipboard read and write: dom.events.asyncClipboard.clipboardItem, dom.events.asyncClipboard.readTextdom.events.asyncClipboard.writeText

    异步 Clipboard API 现在完全受支持,包括 read()readText()write() 方法以及 ClipboardItem 接口。在读取非同源页面提供的数据时,将出现一个粘贴上下文菜单供用户确认。(Firefox bug 1809106

  • Intl.Segmenter: 默认仅在 Firefox Nightly 中启用。

    Intl.Segmenter 对象允许对字符串进行准确的、与区域设置相关的文本分割。例如,要将文本分割成单词,例如在不使用空格分隔单词的语言中:Intl.Segmenter("ja-JP", { granularity: "word" })。(Firefox bug 1423593