Web 开发人员的变更
HTML
CSS
无显著变化
JavaScript
- 现在支持
Error.captureStackTrace()
静态方法。此方法在提供的对象上安装堆栈跟踪信息作为Error.stack
属性。它的主要用例是在不派生自Error
接口的自定义错误对象上安装堆栈跟踪。( Firefox bug 1950508 )。 - 现在可以使用
Error.isError()
静态方法来检查对象是否是Error
或DOMException
的实例。这比出于相同目的使用instanceof
更可靠。( Firefox bug 1952249 )。 import
声明现在支持使用with
属性导入 JSON 模块。
HTTP
Clear-Site-Data
头可以与cache
(和*
)指令一起使用,以清除浏览器网络缓存。这使网站能够更好地控制为其用户存储的数据,例如,通过在注销时清除缓存来降低隐私泄露的风险。( Firefox bug 1942272 )。- HTTP
Origin-Agent-Cluster
响应头现在可由站点使用,以提示关联文档应放置在基于源的 代理集群中。在此类集群中,文档使用的操作系统进程和/或其他操作系统资源仅与来自同一 源 的其他文档共享。这使得资源密集型文档不太可能降低来自其他源的文档的性能。开发人员可以使用window.originAgentCluster
属性测试浏览器是否已将文档放置在基于源的代理集群中。( Firefox bug 1665474 )
API
- 在使用 联邦凭证管理 (FedCM) API 时,现在支持 登录状态 API。它可用于设置和检查浏览器用户是否已登录到身份提供商。这包括对
NavigatorLogin
接口、navigator.login
属性和Set-Login
HTTP 响应头的支持。( Firefox bug 1945576 和 Firefox bug 1945573 )。 - Web Audio API 现在支持
AudioWorklet.port
和AudioWorkletGlobalScope.port
上的双向消息传递。这允许在主线程代码和音频工作器的全局作用域之间进行自定义的异步通信,例如接收控制数据或全局设置。( Firefox bug 1951240 ) - 现在支持
RTCCertificate
接口的getFingerprints()
方法。应用程序可以使用它来获取证书的指纹,这些指纹可以在带外共享,以便在 WebRTC 会话中识别特定用户或浏览器。( Firefox bug 1525241 )。
DOM
媒体、WebRTC 和 Web Audio
- WebRTC 应用程序现在可以设置在由于网络降级而无法将帧速率和分辨率都保持在配置水平时,优先考虑帧速率或分辨率的偏好。该值使用传递给
RTCRtpSender
接口的setParameters()
方法的参数对象中的degradationPreference
属性进行设置。它也可以从getParameters()
方法返回的对象中读取。( Firefox bug 1329847 )。
WebDriver 一致性 (WebDriver BiDi, Marionette)
通用
- 所有远程协议现在都启用了将日志正确传输到 stdout 所需的首选项 ( Firefox bug 1947740 )。
- 添加了一个新的 Firefox 参数
--remote-enable-system-access
,用于启用敏感功能,例如与父进程中的浏览上下文(例如浏览器 UI)交互或在内容进程中使用特权 API。这将在后续版本中用于 WebDriver BiDi 功能,并且已经可以与 Marionette 一起使用(参见下面的 Marionette 部分)(Firefox bug 1944565)。
WebDriver BiDi
webExtension.install
命令现在默认临时安装 Web 扩展,允许它与未签名扩展一起使用——无论是作为 XPI 文件还是作为未打包文件夹。已添加了一个新的 Firefox 特定参数moz:permanent
,以强制将其安装为常规扩展 (Firefox bug 1947678)。browsingContext.setViewport
命令现在支持userContexts
参数,该参数必须是一个用户上下文(Firefox 容器)ID 数组。如果提供,视口配置将应用于属于这些用户上下文的所有浏览上下文,以及在这些上下文内创建的任何未来上下文。此参数不能与现有的context
参数一起使用 (Firefox bug 1940952)。browsingContext.Info
类型现在包含一个clientWindow
属性,对应于拥有浏览上下文的窗口的 ID。它通常由browsingContext.getTree
返回或包含在browsingContext.contextCreated
等事件的负载中 (Firefox bug 1920952)。
Marionette
- 现在,使用 Marionette 切换到
chrome
(父进程)上下文需要在使用--remote-enable-system-access
命令行标志启动 Firefox 时 (Firefox bug 1710425)。
附加组件开发人员的变更
- 在 Manifest V3 扩展的
menus
API 中,为page_action
提供支持作为menus.ContextType
。这为 Manifest V3 扩展提供了与 Manifest V2 扩展相同的能力,即向page_action
添加菜单项。( Firefox bug 1951166 ) contextualIdentities
API 不再在 Firefox for Android 中定义。以前,它已定义但有缺陷。( Firefox bug 1659500 )- 现在,Firefox for Android 不再识别
contextualIdentities
权限。以前,它启用了一个损坏的“容器”功能版本。( Firefox bug 1659500 ) - 新的 Manifest V3 版本
userScripts
API 现已在 Firefox for Android 上可用。( Firefox bug 1949955 ) - 实现
webRequest.handlerBehaviorChanged
API。在以前的版本中,此方法已公开但没有任何作用。( Firefox bug 1657575 ) alarms.create
API 现在返回一个 Promise,而不是 undefined。( Firefox bug 1869171 )- 增加了对选项卡组内选项卡操作的支持,包括添加
tabs.group()
和tabs.ungroup()
。( Firefox bug 1959714 )groupId
到tabs.Tab
。( Firefox bug 1959713 )groupId
到tabs.query
。( Firefox bug 1959715 )groupId
到tabs.onUpdated
。( Firefox bug 1959716 )
- 在 Firefox 中,
webRequest.ResourceType
和declarativeNetRequest.ResourceType
现在都支持json
资源类型,并且默认启用导入属性。以前,它被报告为script
。( Firefox bug 1858078 和 Firefox bug 1950836 )
实验性 Web 功能
这些功能是 Firefox 138 中新发布的功能,被认为是实验性的。它们可能默认禁用或默认启用,但仅在 Nightly 构建中可用。对于默认禁用的功能,请在 about:config
页面上搜索适当的首选项并将其设置为 true
。您可以在 实验性功能 页面上找到更多此类功能。
-
嵌套在分区元素中的
<h1>
的 UA 样式:layout.css.h1-in-section-ua-styles.enabled
。当
<h1>
标题嵌套在 分区元素<article>
、<aside>
、<nav>
和<section>
中时,其字体大小现在不会减小。由于大纲算法 已从 HTML 规范中移除,因此嵌套在分区元素中的<h1>
的 UA 样式不再相关。( Firefox bug 1883896 )。作为此移除的阶段性推广的一部分,5% 的 Firefox 138 用户和 50% 的 Firefox Beta 138 用户的
layout.css.h1-in-section-ua-styles.enabled
值将设置为false
( Intent to unship: UA styles for h1 in article, aside, nav, section )。注意: 此功能的偏好设置是相反的:在 Nightly 构建中设置为
false
,这会移除嵌套在分区元素中的标题的 UA 样式。在所有其他渠道中设置为true
,这会保留嵌套标题的现有 UA 样式。 -
::details-content
CSS 伪元素:layout.css.details-content.enabled
。CSS
::details-content
伪元素使您能够样式化<details>
元素的内容 ( Firefox bug 1901037 )。 -
允许在元素支持的伪元素之后使用伪元素
已开始允许将 伪元素(例如
::first-letter
和::before
)附加到 元素支持的伪元素(例如::details-content
和::file-selector-button
)。( Firefox bug 1953557 )。注意: 此功能取决于对目标元素支持的伪元素的支持,例如:
::details-content
,它在layout.css.details-content.enabled
偏好设置之后。 -
MutationEvent
正在被移除:dom.mutation_events.enabled
MutationEvent
及其相关事件(DOMSubtreeModified
、DOMNodeInserted
、DOMNodeRemoved
、DOMCharacterDataModified
、DOMAttrModified
)现在在 Firefox Nightly 中默认禁用。( Firefox bug 1951772 )。 -
Notification.actions
(Nightly):dom.webnotifications.actions.enabled
Notification.actions
属性可以获取与Notification
相关联的操作,这些操作是使用ServiceWorkerRegistration.showNotification()
设置的。( Firefox bug 1225110 )。 -
PerformanceEventTiming.interactionId
:dom.performance.event_timing.enable_interactionid
PerformanceEventTiming.interactionId
可用于测量特定用户交互触发的事件的延迟时间。( Firefox bug 1934683 )。 -
HTML Sanitizer API:
dom.security.sanitizer.enabled
HTML Sanitizer API 允许开发者获取不可信的 HTML 字符串并对其进行清理,以便安全地插入到文档的 DOM 中。( Firefox bug 1950605, Firefox bug 1952250 )。