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-LoginHTTP 响应头的支持。( 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 扩展的
menusAPI 中,为page_action提供支持作为menus.ContextType。这为 Manifest V3 扩展提供了与 Manifest V2 扩展相同的能力,即向page_action添加菜单项。( Firefox bug 1951166 ) contextualIdentitiesAPI 不再在 Firefox for Android 中定义。以前,它已定义但有缺陷。( Firefox bug 1659500 )- 现在,Firefox for Android 不再识别
contextualIdentities权限。以前,它启用了一个损坏的“容器”功能版本。( Firefox bug 1659500 ) - 新的 Manifest V3 版本
userScriptsAPI 现已在 Firefox for Android 上可用。( Firefox bug 1949955 ) - 实现
webRequest.handlerBehaviorChangedAPI。在以前的版本中,此方法已公开但没有任何作用。( Firefox bug 1657575 ) alarms.createAPI 现在返回一个 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-contentCSS 伪元素: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.enabledMutationEvent及其相关事件(DOMSubtreeModified、DOMNodeInserted、DOMNodeRemoved、DOMCharacterDataModified、DOMAttrModified)现在在 Firefox Nightly 中默认禁用。( Firefox bug 1951772 )。 -
Notification.actions(Nightly):dom.webnotifications.actions.enabledNotification.actions属性可以获取与Notification相关联的操作,这些操作是使用ServiceWorkerRegistration.showNotification()设置的。( Firefox bug 1225110 )。 -
PerformanceEventTiming.interactionId:dom.performance.event_timing.enable_interactionidPerformanceEventTiming.interactionId可用于测量特定用户交互触发的事件的延迟时间。( Firefox bug 1934683 )。 -
HTML Sanitizer API:
dom.security.sanitizer.enabledHTML Sanitizer API 允许开发者获取不可信的 HTML 字符串并对其进行清理,以便安全地插入到文档的 DOM 中。( Firefox bug 1950605, Firefox bug 1952250 )。