Web 开发人员的变更
HTML
移除
<object>
元素不再支持已弃用的codebase
属性。请改用data
属性。(更多详情,请参阅 Firefox bug 1973900。)
CSS
@scope
内的&
选择器不再继承作用域起始选择器的优先级。这使得@scope
中的&
选择器与 CSS 嵌套保持一致,避免了意外的优先级差异(参见 CSS 嵌套和优先级)。(Firefox bug 1975531)。
JavaScript
无显著变化。
API
- 完全支持 URL Pattern API,使你能够使用标准化的模式语法来匹配和解析 URL。(Firefox bug 1731418)。
- File and Directory Entries API 现在在 Firefox for Android 上完全支持
HTMLInputElement.webkitdirectory
(以及对应的 HTMLwebkitdirectory
属性)和File.webkitRelativePath
属性。这允许你将<input type="file">
元素配置为接受目录而不是文件(Firefox bug 1973726)。
DOM
- 现已支持
Selection.getComposedRanges()
方法,允许开发者跨 Shadow DOM 边界准确获取选定的文本范围。此外,Selection
接口的setBaseAndExtent()
、collapse()
和extend()
方法已被修改,可以接受 Shadow Root 内的节点。(Firefox bug 1903870)。 - 现已支持
Animation.overallProgress
属性,允许开发者跟踪和显示动画的整体进度。(Firefox bug 1834878)。 Animation.commitStyles()
方法不再要求在动画上设置fill
才能在动画完成后提交计算样式。请注意,在更多浏览器支持此更改之前,你仍应设置fill
。(Firefox bug 1973203)。- 现已支持优先级任务调度 API,为应用程序提供了一种标准化的机制来分配和管理任务优先级。支持的接口包括:
Scheduler
、TaskController
、TaskSignal
、TaskPriorityChangeEvent
(以及prioritychange
事件),以及Window.scheduler
和WorkerGlobalScope.scheduler
属性。不支持Scheduling
接口和Navigator.scheduling
属性。(Firefox bug 1966997)。
媒体、WebRTC 和 Web Audio
- 现已支持
RTCIceCandidatePairStats
字典的currentRoundTripTime
、totalRoundTripTime
和responsesReceived
属性。它们返回当前的往返时间(RTT)以及计算连接平均 RTT 所需的信息。(Firefox bug 1371391)。 RTCRtpSender
接口的setParameters()
和getParameters()
方法现在支持设置和获取每个encoding
所使用的特定codec
。你还可以在传递给RTCPeerConnection
接口的addTransceiver()
方法的init.sendEncodings
数组中为每个编码设置一个codec
。(Firefox bug 1894137)。- 现已支持
RTCInboundRtpStreamStats
接口的estimatedPlayoutTimestamp
、framesAssembledFromMultiplePackets
、freezeCount
、jitterBufferMinimumDelay
、jitterBufferTargetDelay
、keyFramesDecoded
、pauseCount
、totalAssemblyTime
、totalFreezesDuration
和totalPausesDuration
属性。(Firefox bug 1926622)。
WebDriver 一致性 (WebDriver BiDi, Marionette)
通用
- 从 WebDriver 功能中移除了 FTP 代理支持(Firefox bug 1972670)。
- 将通过 WebDriver BiDi 和 WebDriver classic (Marionette) 设置的所有 Cookie 的过期值更新为最多 400 天(Firefox bug 1974394)。
WebDriver BiDi
- 实现了新的
emulation.setLocaleOverride
命令,允许客户端在 JavaScript API 中覆盖区域设置(Firefox bug 1968952)。 - 改进了使用
browsingContext.createUserContext
设置代理的功能:在noProxy
属性中添加了对.mozilla.org
等主机模式的支持(Firefox bug 1977180),并修复了设置 HTTP 代理后无法导航到 HTTPS URL 的错误(Firefox bug 1977168)。 - 修复了在
browsingContext.print
命令被browsingContext.close
命令关闭标签页中断后,browsingContext.create
会失败的错误(Firefox bug 1841125)。 - 更新了
session.end
命令,以恢复所有被网络拦截阻塞的请求(Firefox bug 1974426)。
Marionette
- 更新了
WebDriver:AddCookie
命令,当目标 Cookie 具有sameSite=none
和secure=false
属性时会抛出错误(Firefox bug 1977205)。 - 从
unexpected alert open
错误消息中移除了对话框文本值,因为现在可以通过data
字段获取对话框文本(Firefox bug 1948236)。
附加组件开发人员的变更
- 在 Nightly 版本中,通过
cookies.set()
创建的 Cookie 现在会进行验证,无效的 Cookie 会被拒绝。在 Nightly 中实施此功能是为了监控任何可能出现的问题。计划在未来的版本中在所有渠道强制执行验证。(Firefox bug 1976197) cookies
方法现在接受并返回expirationDate
小数部分的毫秒数。(Firefox bug 1972757)- 添加了
browserAction.onUserSettingsChanged
和action.onUserSettingsChanged
事件,用于监听影响扩展程序操作的用户指定设置的更改。(Firefox bug 1828220) - 添加了
browserSettings.verticalTabs
,使扩展程序能够控制浏览器是水平还是垂直显示标签栏。(Firefox bug 1946600)
实验性 Web 功能
-
anchor-size()
(Nightly):layout.css.anchor-positioning.enabled
CSS
anchor-size()
函数可以相对于锚元素的尺寸来设置锚定位元素的大小、位置和外边距。(Firefox bug 1972610)。 -
:heading
和:heading()
:layout.css.heading-selector.enabled
CSS
:heading
伪类允许你一次性为所有标题元素(<h1>
-<h6>
)设置样式,而无需单独定位它们。CSS:heading()
函数式伪类允许你为匹配<An+B>
写法的标题元素设置样式。(Firefox bug 1974386)。 -
view-transition-name: match-element
(Nightly):dom.viewTransitions.enabled
CSS
view-transition-name
属性的match-element
值自动为每个选定元素分配一个唯一的内部view-transition-name
,而无需单独命名它们。(Firefox bug 1956141)。 -
Integrity-Policy
和Integrity-Policy-Report-Only
(脚本) (Nightly):security.integrity_policy.enabled
现已支持用于脚本资源的
Integrity-Policy
和Integrity-Policy-Report-Only
HTTP 标头。它们分别允许网站对脚本强制执行子资源完整性保证,或仅报告策略违规。(Firefox bug 1976656)。 -
Integrity-Policy
和Integrity-Policy-Report-Only
(样式表):security.integrity_policy.stylesheet.enabled
现已支持用于样式表资源的
Integrity-Policy
和Integrity-Policy-Report-Only
HTTP 标头。它们分别允许网站对策略强制执行或仅报告策略违规。(Firefox bug 1974247)。
这些功能随 Firefox 142 一同发布,但默认处于禁用状态。要体验它们,请在 about:config
页面搜索相应的首选项并将其设置为 true
。你可以在实验性功能页面上找到更多此类功能。