Firefox 122 的开发者说明

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

为 Web 开发者带来的变化

HTML

  • <hr> 元素现在允许作为 <select> 元素的子元素。这是一个可以提高具有多个选项的选择列表的可读性的新特性。(Firefox bug 1830909)。
  • 将 HTML <ol>type 属性设置为 nonedisccirclesquare 时,不再产生效果。将 HTML <ul>type 属性设置为 1aAiI 时,也不再产生效果。<ul><ol> 列表的 type 属性已被弃用,应使用 list-style-type CSS 属性来设置样式。(Firefox bug 1868087)。

CSS

JavaScript

SVG

移除

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

API

DOM

移除

WebDriver 一致性(WebDriver BiDi、Marionette)

常规

  • 修复了阻止执行动作正确合成 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

实验性 Web 特性

这些特性是 Firefox 122 中新添加的,但在默认情况下是禁用的。要尝试这些特性,请在 about:config 页面上搜索相应的首选项,并将其设置为 true。你可以在实验性特性页面上找到更多这样的特性。

  • 声明式影子 DOMdom.webcomponents.shadowdom.declarative.enabled

    <template> 元素现在支持 shadowrootmode 属性,其可以被设置为 openclose,与 attachShadow() 方法的 mode 选项相同。这允许声明式地创建一棵影子 DOM 子树。(Firefox bug 1712140

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

    • Element.attachShadow() 方法现在支持 clonable 布尔选项,用于指定创建的影子根是否可以克隆:默认值为 false,而当设置为 true 时,使用 Node.cloneNode()Document.importNode() 克隆的影子宿主将包括副本中的影子根。
    • ShadowRoot 接口现在支持 clonable 只读属性。若影子根可克隆,则返回 true,否则返回 false。对于通过声明式影子 DOM 创建的影子根,它始终返回 true

    当通过声明式影子 DOM 创建影子根时,默认情况下 clonable 选项被设置为 true,并且 clonable 属性返回 true。(Firefox bug 1712140

  • Popover APIdom.element.popover.enabled

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

  • 剪切板读写dom.events.asyncClipboard.clipboardItemdom.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

更早期的版本