Firefox 122 的开发者说明
本文提供了有关 Firefox 122 中影响开发者的变更信息。Firefox 122 于 2024 年 1 月 23 日发布。
为 Web 开发者带来的变化
HTML
<hr>
元素现在允许作为<select>
元素的子元素。这是一个可以提高具有多个选项的选择列表的可读性的新特性。(Firefox bug 1830909)。- 将 HTML
<ol>
的type
属性设置为none
、disc
、circle
或square
时,不再产生效果。将 HTML<ul>
的type
属性设置为1
、a
、A
、i
或I
时,也不再产生效果。<ul>
和<ol>
列表的type
属性已被弃用,应使用list-style-type
CSS 属性来设置样式。(Firefox bug 1868087)。
CSS
- CSS
offset-position
属性现在默认可用。它定义了元素在路径上的初始位置。(Firefox bug 1598152) - 用于定义 CSS
offset-path
的多个方法——包括<basic-shape>
、<coord-box>
和url()
——现在默认可用。(Firefox bug 1598159) - CSS
ray()
函数现在默认可用。你可以使用该函数来将offset-path
定义为从offset-position
开始并沿指定角度延伸的线段。(Firefox bug 1598151) clip-path
和offset-path
属性现在支持rect()
和xywh()
形状函数。这些<basic-shape>
值允许使用离元素边缘的距离定义的矩形(rect()
)或坐标和尺寸(xywh()
)来裁剪和偏移元素。(Firefox bug 1868722)。
JavaScript
ArrayBuffer.prototype.transfer()
和ArrayBuffer.prototype.transferToFixedLength()
方法现在可将一个ArrayBuffer
的内存所有权转移到另一个。转移后,原始缓冲区将与其原始内存中分离而变得不再可用;可以使用ArrayBuffer.prototype.detached
来检查其状态。(有关更多详细信息,请参见 Firefox bug 1865103。)- 为了与其他浏览器保持一致,
Date.parse()
和Date()
构造函数在解析非标准日期字符串时,只考虑指定月份的前三个字母。以前只接受完整月份名称以三个或更多字符截断后的值(有关更多详细信息,请参见 Firefox bug 1862910。)
SVG
移除
- 移除在 SVG
<use>
元素中使用data:
URL 的支持,从而防止通过SVGUseElement
接口实现 XSS 攻击。可以通过将svg.use-element.data-url-href.allowed
首选项设置为true
来重新启用这些旧功能,但出于安全原因,不建议这样做。(Firefox bug 1806964)。
API
- 现已支持 LargestContentfulPaint API。该 API 属于性能 API,并提供了有关用户与网页交互之前最大图像或文本绘制的时间信息。(Firefox bug 1866266)。
DOM
- 现已支持
HTMLSelectElement.showPicker()
方法,允许在用户交互触发时,以编程方式启动<select>
元素的浏览器选择器。(Firefox bug 1865207)。
移除
- 移除对 CSS
-moz-user-focus
属性的支持(Firefox bug 1871745 和 Firefox bug 1868552)。
WebDriver 一致性(WebDriver BiDi、Marionette)
常规
- 修复了阻止执行动作正确合成
mouse
输入源的双击和其他多次点击事件的错误。(Firefox bug 1864614)。此外,这些事件只在自上次点击操作以来实际鼠标位置未发生变化时才会被触发(Firefox bug 1681076)。 - 更新了
Pause
和Equal
(数字键盘区域)键的定义,以与 WebDriver 规范保持一致(Firefox bug 1863687)。
WebDriver BiDi
WindowProxy
远程对象的序列化现在也可以正确处理外部进程中的 iframe(Firefox bug 1867667)。- browsingContext.setViewport 命令现在区分作为
viewport
参数的undefined
和null
值。如果设置为undefined
,则表示视口应保持不变,而使用null
将重置为其原始尺寸(Firefox bug 1865618)。 - 引入了对 browsingContext.traverseHistory 命令的支持,允许在浏览器历史记录中向后和向前导航(Firefox bug 1841018)。
- 修复了所有受支持的网络事件中的一个错误:
context
id 始终报告顶级浏览上下文,即使导航发生在 iframe 中也是如此(Firefox bug 1869735)。
Marionette
- 修复了获取元素文本命令的一个错误,当元素位于影子根(ShadowRoot)的槽(slot)中时,该命令会错误地返回空文本(Firefox bug 1824664)。
实验性 Web 特性
这些特性是 Firefox 122 中新添加的,但在默认情况下是禁用的。要尝试这些特性,请在 about:config
页面上搜索相应的首选项,并将其设置为 true
。你可以在实验性特性页面上找到更多这样的特性。
-
声明式影子 DOM:
dom.webcomponents.shadowdom.declarative.enabled
。<template>
元素现在支持shadowrootmode
属性,其可以被设置为open
或close
,与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 API:
dom.element.popover.enabled
。现在支持通过 HTML 属性或 JavaScript API 来在页面内容上方显示弹出窗口,包括使用 CSS
:popover-open
伪类设置样式,以及对::backdrop
伪元素的扩展支持。有关更多详细信息,请参见 Popover API 参考文档。(Firefox bug 1823757) -
剪切板读写:
dom.events.asyncClipboard.clipboardItem
、dom.events.asyncClipboard.readText
和dom.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)
更早期的版本
- Firefox 121 的开发者说明
- Firefox 120 的开发者说明
- Firefox 119 的开发者说明
- Firefox 118 的开发者说明
- Firefox 117 的开发者说明
- Firefox 116 的开发者说明
- Firefox 115 的开发者说明
- Firefox 114 的开发者说明
- Firefox 113 的开发者说明
- Firefox 112 的开发者说明
- Firefox 111 的开发者说明
- Firefox 110 的开发者说明
- Firefox 109 的开发者说明
- Firefox 108 的开发者说明
- Firefox 107 的开发者说明
- Firefox 106 的开发者说明
- Firefox 105 的开发者说明
- Firefox 104 的开发者说明
- Firefox 103 的开发者说明
- Firefox 102 的开发者说明
- Firefox 101 的开发者说明
- Firefox 100 的开发者说明
- Firefox 99 的开发者说明
- Firefox 98 的开发者说明
- Firefox 97 的开发者说明
- Firefox 96 的开发者说明
- Firefox 95 的开发者说明
- Firefox 94 的开发者说明
- Firefox 93 的开发者说明
- Firefox 92 的开发者说明
- Firefox 91 的开发者说明