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.enabledNotification.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_asyncAtomics.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)。