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 形状的描边边界框 (Firefox bug 1868374)。 content-visibilityCSS 属性值auto现已默认启用。这允许内容在不 与用户相关 时跳过渲染。 (Firefox bug 1874874)。
JavaScript
- 现在支持
Intl.Segmenter,允许开发人员对字符串执行区域敏感的文本分段。例如,这使得在不使用空格分隔单词的语言中将字符串拆分为单词成为可能:Intl.Segmenter("ja-JP", { granularity: "word" })。您还可以将字符串拆分为字素或句子。 (Firefox bug 1423593, Firefox bug 1883914)。
API
-
现在完全支持 Popover API,允许创建顶级“弹出”UI 元素,这些元素可用于操作菜单、自定义“toast”通知、表单元素建议、内容选择器等。弹出窗口及其触发按钮/输入可以使用 HTML 属性或 JavaScript 创建,并使用 CSS 进行样式设置。
实现了以下 Web API
HTMLButtonElement属性popoverTargetElement和popoverTargetAction。HTMLInputElement属性popoverTargetElement和popoverTargetAction。HTMLElement属性popover、hidePopover()、showPopover()和togglePopover()方法,以及beforetoggle和toggle_event事件(类型为ToggleEvent)。
以下 CSS 伪类和元素现在支持与 popovers 一起使用
:popover-open::backdrop已扩展以支持 popovers
支持以下 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()检查上下文。 - 在发出
contextlost后,浏览器默认会尝试重新启动丢失的上下文,但代码可以通过取消事件来阻止这种情况。 - 离屏画布可以以相同的方式进行监控,但使用
OffScreenCanvas事件contextlost和contextrestored,以及OffscreenCanvasRenderingContext2D.isContextLost()。
- 应用程序可以监视
-
增加了对
<template>元素的shadowrootclonable属性以及反映它的HTMLTemplateElement接口的shadowRootClonable属性的支持。这些设置了使用<template>元素声明性创建的ShadowRoot的clonable属性。 (Firefox bug 1880188)。 -
现在支持
Clipboard接口的readText()方法,用于异步从系统剪贴板读取文本。当读取非同源页面提供的剪贴板数据时,将出现粘贴上下文菜单供用户确认。 (Firefox bug 1877400)。
媒体、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 内存。 (Firefox bug 1860816)。
WebDriver 一致性 (WebDriver BiDi, Marionette)
通用
- 增加了对 "userAgent" capability 的支持,该能力标识端点节点的默认 User-Agent 值 (Firefox bug 1885495)。
WebDriver BiDi
- 增加了对 input.setFiles 命令的支持,该命令允许设置或更新带有
type="file"的<input>元素的文件 (Firefox bug 1855040)。 - 增加了对 storage.deleteCookies 命令删除 cookie 的支持 (Firefox bug 1854581)。
- 增加了对“userContext”作为 cookie 命令的“partition”参数字段的支持 (Firefox bug 1875255)。
- 修复了 storage.getCookies 无法检索给定“sourceOrigin”的所有预期 cookie 的问题 (Firefox bug 1884647)。
- 修复了仅启用 WebDriver BiDi 作为远程协议(即禁用 CDP)时,推荐的首选项不会应用的问题 (Firefox bug 1882748)。
- 修复了创建并切换到新标签页时不会等待
visibilityState更新的问题 (Firefox bug 1877469)。
附加组件开发人员的变更
- 现在,
proxy.ProxyInfo属性proxyAuthorization的内容会作为 CONNECT 请求的一部分传递给发送到 HTTP 代理的Proxy-Authorization请求头(除了对现有 HTTPS 代理的支持)(Firefox bug 1794464)。
实验性 Web 功能
这些功能将在 Firefox 125 中发布,但仅限于开发人员版本或在偏好设置后面。要尝试这些功能,您可以在 about:config 页面上搜索相关偏好设置,查看它们是否已启用或禁用。要了解有关这些功能的更多信息,请参阅实验性功能页面。
-
CSS
transition-behavior:layout.css.transition-behavior.enabled。在 Nightly 版本中,
transition-behavior属性默认启用。作者可以使用此属性来控制是否将 CSS 转换应用于具有 离散动画类型 的属性 (Firefox bug 1882408, Firefox bug 1805727)。 -
嵌套在分区元素中的
<h1>的 UA 样式:layout.css.h1-in-section-ua-styles.enabled。当
<h1>标题嵌套在 分区元素<article>、<aside>、<nav>和<section>中时,其字体大小不再减小。由于大纲算法 已从 HTML 规范中删除,因此嵌套在分区元素中的<h1>的 UA 样式不再相关。 (Firefox bug 1883896)。注意:此功能的偏好设置是相反的:在 Nightly 构建中设置为
false,这将删除嵌套在分区元素中的标题的 UA 样式。在所有其他渠道中,它设置为true,这将保留嵌套标题的现有 UA 样式。