Firefox 125 的开发者说明
本文提供了有关 Firefox 125 中影响开发者的变更信息。Firefox 125 于 2024 年 4 月 16 日发布。
为 Web 开发者带来的变化
HTML
没有值得注意的变化。
CSS
- 已更新
align-content
属性,使其适用于display: block;
布局。这将flex
和grid
中所有的布局定位带到block
,使开发人员能够对齐块级元素,而无需将其容器转换为flex
或grid
容器。(Firefox bug 1882853)。 - CSS 属性
transform-box
现已支持content-box
和stroke-box
值。对于参照的盒子,content-box
值使用内容盒子,而stroke-box
值使用包含 SVG 形状的描边边界框(stroke bounding box)(Firefox bug 1868374)。 content-visibility
CSS 属性值auto
现已默认启用。其允许在内容不与用户相关的情况下跳过对其的渲染。(Firefox bug 1874874)。
JavaScript
- 现已支持
Intl.Segmenter
,其允许开发者按区域设置对字符串进行文本分割。例如,这可以将不使用空格分隔单词的语言的字符串拆分为单词:Intl.Segmenter("ja-JP", { granularity: "word" })
。也可以将字符串拆分为字位(grapheme)或句子。(Firefox bug 1423593、Firefox bug 1883914。)
API
-
现已完全支持 Popover API,其用于创建顶级的,可用于操作菜单、自定义“吐司”通知、表单元素建议、内容选择器等的“弹出框”UI 元素。可以使用 HTML 属性或 JavaScript 来创建弹出框及其触发按钮(或输入),并使用 CSS 设置样式。
已实现以下 Web API:
HTMLButtonElement
的popoverTargetElement
和popoverTargetAction
属性。HTMLInputElement
的popoverTargetElement
和popoverTargetAction
属性。HTMLElement
的popover
属性,hidePopover()
、showPopover()
和togglePopover()
方法,beforetoggle
和toggle_event
事件(类型为ToggleEvent
)。
已支持以下用于弹出框的 CSS 伪类和元素:
:popover-open
::backdrop
已被扩展以支持弹出框
已支持以下 HTML 全局属性:
-
现已支持
RTCIceTransport
的state
和gatheringState
属性及与之关联的statechange
和gatheringstatechange
事件,以及RTCDtlsTransport.iceTransport
属性(返回RTCDtlsTransport
的底层RTCIceTransport
)。这些特性提供了比RTCPeerConnection
的iceGatheringState
和connectionState
属性更细粒度的监控。(Firefox bug 1811912)。 -
现已支持
Element.ariaBrailleLabel
和Element.ariaBrailleRoleDescription
,它们分别反映了全局 ARIA HTML 属性aria-braillelabel
和aria-brailleroledescription
。(Firefox bug 1861201)。 -
添加了允许 Web 应用程序在画布临时丢失其 2D 上下文时进行优雅恢复的支持。这可能发生在画布使用 GPU 进行硬件加速而出现驱动程序崩溃的情况下。(Firefox bug 1887729)。以下是有关丢失和恢复画布上下文的事件的一些额外细节:
- 应用程序可以监听
contextlost
和contextrestored
事件,这些事件分别在上下文丢失和恢复时于HTMLCanvasElement
上触发,还可以使用CanvasRenderingContext2D.isContextLost()
来检查上下文。 - 在触发
contentlost
后,浏览器将会默认尝试恢复和重启丢失的上下文,但代码可以通过取消这一事件来阻止这一行为。 - 可以通过相同方式监视离屏画布,但应该使用
OffScreenCanvas
的contextlost
和contextrestored
事件,以及OffscreenCanvasRenderingContext2D.isContextLost()
。
- 应用程序可以监听
-
已添加对
<template>
元素的shadowrootclonable
属性以及HTMLTemplateElement
接口中与之对应的shadowRootClonable
属性的支持。该属性用于设置以声明方式使用<template>
元素创建的ShadowRoot
的clonable
属性。(Firefox bug 1880188)。 -
现已支持
Clipboard
接口的readText()
方法,其用于从系统剪贴板异步读取文本。在读取不是由同源页面提供的剪贴板数据时,将会出现粘贴上下文菜单,以供用户确认。(Firefox bug 1877400)。
Media、WebRTC 和 Web Audio
- 现已为加密媒体扩展 提供 AV1 编解码器的支持,其用于播放来自视频流提供商的更高质量的视频。(Firefox bug 1601817)。
移除
- 现已移除
SVGAElement.text
属性。textContent
属性(继承自Node
)已获得广泛支持,应使用该属性代替。(Firefox bug 1880689)。
WebAssembly
- 已添加对 Wasm 模块使用多个独立线性内存的支持。多内存区域使模块之间的互操作更高效,并为即将到来的 Wasm 标准提供更好的 polyfill。例如,它们可以用于为内部和共享数据、临时和持久数据或需要在线程之间共享的数据创建单独的内存。内存可以在 JavaScript 中创建并导入到 Wasm 模块中,或在 Wasm 模块中创建并导出。Wasm 实例中的每个新的线性内存区域都会被赋予一个从零开始的顺序索引。WebAssembly 的内存指令使用索引引用它们正在操作的内存,如果未指定索引,则默认为第一块定义的内存区域。有关更多信息,请参阅理解 WebAssembly 文本格式中的 WebAssembly Memory。(Firefox bug 1860816)。
WebDriver 一致性(WebDriver BiDi、Marionette)
常规
- 现已添加“userAgent”功能的支持,其用于标识端点的默认用户代理值(Firefox bug 1885495)。
WebDriver BiDi
- 现已添加对 input.setFiles 命令的支持,其用于设置或更新具有
type="file"
的<input>
元素的文件(Firefox bug 1855040)。 - 现已添加对 storage.deleteCookies 命令的支持,其用于删除 cookie(Firefox bug 1854581)。
- 现已为 cookie 命令的“partition”参数添加了“userContext”字段的支持(Firefox bug 1875255)。
- 现已修复 storage.getCookies 命令在给定“sourceOrigin”时不会检索所有预期的 cookie 的问题(Firefox bug 1884647)。
- 现已修复在仅启用 WebDriver BiDi 作为远程协议时(即禁用 CDP)不会应用推荐的首选项的问题(Firefox bug 1882748)。
- 现已修复在创建和切换到新标签页时不会等待
visibilityState
更新的问题(Firefox bug 1877469)。
为附加组件开发者带来的变化
proxy.ProxyInfo
的proxyAuthorization
属性的内容现在会作为 CONNECT 请求的Proxy-Authorization
请求标头的值传递给 HTTP 代理(除了现有的对 HTTPS 代理的支持)(Firefox bug 1794464)。
实验性 Web 特性
这些特性是 Firefox 125 中新添加的,但仅在开发者版本中或启用首选项的情况下可用。要尝试这些特性,请在 about:config
页面上搜索相应的首选项,并确认它们是否启用。你可以在实验性特性页面中了解更多关于这些特性的信息。
-
CSS
transition-behavior
:layout.css.transition-behavior.enabled
。transition-behavior
属性在 Nightly 版本中默认启用。作者可以使用此属性来控制是否将 CSS 过渡应用于具有离散动画类型的属性(Firefox bug 1882408、Firefox bug 1805727)。 -
嵌套在分段元素中的
<h1>
的用户代理样式:layout.css.h1-in-section-ua-styles.enabled
。现在,当
<h1>
标题嵌套在分段元素<article>
、<aside>
、<nav>
和<section>
中时,其字体大小不再减小。由于大纲算法已从 HTML 规范中移除,嵌套在分段元素中的<h1>
不再与用户代理样式相关联。(Firefox bug 1883896)。备注: 此特性的首选项是反向工作的:在 Nightly 版本中,它被设置为
false
,从而移除嵌套在分段元素中的标题的用户代理样式。在所有其他更新通道中,它被设置为true
,从而保留了嵌套标题的现有用户代理样式。
更早期的版本
- Firefox 124 的开发者说明
- Firefox 123 的开发者说明
- Firefox 122 的开发者说明
- 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 的开发者说明