Firefox 140 for Developers Release Notes
本文档提供有关 Firefox 140 中影响开发人员的更改信息。Firefox 140 于 2025 年 6 月 24 日发布。
Web 开发人员的变更
HTML
无显著变化。
CSS
- 现已支持 CSS Custom Highlight API。它提供了一种在文档中为任意文本范围设置样式的机制,概括了其他高亮伪元素(如
::selection
、::spelling-error
、::grammar-error
和::target-text
)的行为。您可以使用 JavaScript 中的Range
实例定义文本范围,这些实例被分组到Highlight
中,然后使用HighlightRegistry
以名称注册它们。您可以使用 CSS::highlight
伪元素为已注册的高亮应用样式。(Firefox Bug 1964089)。
移除
- 在 HTML 规范 移除了 outline 算法后,嵌套在 sectioning elements 中的
<h1>
元素的 UA 样式已被移除。以前,嵌套在<article>
、<aside>
、<nav>
和<section>
中的<h1>
标题会显示得更小。现在,无论嵌套如何,<h1>
元素都具有一致的字体大小。(Firefox Bug 1964922)。
JavaScript
无显著变化。
SVG
- 现已支持 SVG
<feimage>
、<image>
和<script>
元素的 SVGfetchpriority
属性。它允许您向浏览器提示外部资源的相对优先级。这与 HTML<img>
和<script>
元素的fetchpriority
属性工作方式相同。(Firefox Bug 1847712)。
API
-
现已支持 Cookie Store API(Firefox Bug 1958875)。
这提供了一种现代、异步的、基于
Promise
的 cookie 管理方法,可以在主线程和 Service Worker 中使用。该 API 受支持,但CookieStore
接口的get()
和getAll()
方法以及change
事件返回的 cookie 对象会省略name
和value
之外的所有属性(与document.cookie
返回的信息匹配)。其他 cookie 属性仍然可以被 设置,并且这些设置将被内部使用。
序列化 HTML 时,转义属性中的 < 和 >
Element.innerHTML
、Element.outerHTML
、Element.getHTML()
、ShadowRoot.innerHTML
和ShadowRoot.getHTML()
在将 HTML 序列化为字符串时,现在会将<
和>
字符分别替换为<
和>
。这可以防止某些将 HTML 序列化然后重新注入 DOM 的攻击。(Firefox Bug 1962084)。
DOM
- 现已支持
pointerrawupdate
事件。与相应的pointermove
事件相比,此事件通常提供更低延迟的指针移动属性访问,并在指针数据可用时立即触发。它适用于需要高精度输入处理且仅使用合并的pointermove
事件无法实现平滑交互的应用程序。由于监听此事件可能会影响性能,因此您应避免将其用于其他用例。(Firefox Bug 1550462)。
移除
- 已移除
MutationEvent
接口及其相关事件(DOMSubtreeModified
、DOMNodeInserted
、DOMNodeRemoved
、DOMCharacterDataModified
、DOMAttrModified
)。(Firefox Bug 1963043)。
WebDriver 一致性 (WebDriver BiDi, Marionette)
通用
- 改进了 Marionette 和 WebDriver BiDi 中的 Actions 实现,以防止微任务在分发单个事件时被阻止。(Firefox Bug 1965183)
- 修复了一个 bug,该 bug 导致 WebDriver Classic 和 BiDi 命令(特别是 Action 命令)在等待 RequestAnimationFrame 时可能超时。(Firefox Bug 1947402)
WebDriver BiDi
- 为
browser.createUserContext
命令添加了对acceptInsecureCerts
参数的支持。此参数允许客户端为特定的用户上下文(也称为 Firefox 容器)禁用或启用与证书相关的安全设置,并覆盖为会话指定的设置。(Firefox Bug 1959372) - 实现了一个新的
browsingContext
事件browsingContext.navigationCommitted
,该事件应在为导航创建新文档后立即发出。(Firefox Bug 1945184) - 修复了各种
browsingContext
事件意外为 webextension Browsing Contexts 发出的 bug。(Firefox Bug 1903272) - 已将
webExtension.uninstall
命令更新为在为扩展 ID 提供空字符串时抛出NoSuchWebExtensionError
。(Firefox Bug 1956945) - 已将
browsingContext.contextCreated
和browsingContext.contextDestroyed
事件更新为在所有剩余情况下(包括 Firefox for Android)返回clientWindow
属性。此属性对应于拥有 Browsing Context 的窗口的 ID。(Firefox Bug 1953743)
附加组件开发人员的变更
- 为
cookies.SameSiteStatus
添加了对unspecified
的支持。此外,unspecified
现在是cookies.set()
中sameSite
的默认值。(Firefox Bug 1550032)
实验性 Web 功能
这些功能已在 Firefox 140 中发布,但默认禁用。要试用它们,请在 about:config
页面上搜索相应的首选项并将其设置为 true
。您可以在“实验性功能”页面找到更多此类功能。
-
Notification.maxActions
(Nightly):dom.webnotifications.actions.enabled
Notification.maxActions
只读静态属性返回浏览器对可以与Notification
关联的操作数的限制,您可以使用ServiceWorkerRegistration.showNotification()
来创建这些操作。此属性在 Firefox 138 版本中过早发布,此更改使其仅在 Nightly 版本中可用。(Firefox Bug 1963263)。 -
<dialog>
的closedBy
属性 (Nightly):dom.dialog.light-dismiss.enabled
现已支持
HTMLDialogElement
接口的closedBy
属性,以及<dialog>
元素的相应closedby
属性。开发人员可以使用这些属性来指定哪些机制可以关闭对话框,例如对话框外部的用户交互(“light dismiss”)或以编程方式关闭。(Firefox Bug 1964077)。 -
Atomics.waitAsync()
:javascript.options.atomics_wait_async
Atomics.waitAsync()
静态方法在共享内存位置上异步等待,并返回一个表示操作结果的对象。它是非阻塞的,可以在主线程上使用。(Firefox Bug 1467846)。 -
Prioritized Task Scheduling API (Nightly release)。Prioritized Task Scheduling API 提供了一种标准化的方法来确定应用程序所有任务的优先级,无论这些任务是定义在网站开发者代码中,还是定义在第三方库和框架中。这增加了对
TaskSignal.any()
静态方法的支持,该方法返回一个信号,当其创建的任何TaskSignal
对象被触发时,该信号就会被触发。该 API 现在功能齐全。(Firefox Bug 1964407)。 -
CloseWatcher
(Nightly - 仅限桌面):dom.closewatcher.enabled
。CloseWatcher
接口使您能够实现可以使用设备原生机制关闭的组件,就像内置组件一样。例如,在 Windows 上,您可以使用此接口使自定义侧边栏在用户按下 Esc 键时关闭。(Firefox Bug 1966459)。