Web 开发人员的变更
HTML
- 现在支持
hidden=until-found
HTML 属性和beforematch
事件。hidden until found 状态允许您隐藏元素的內容,直到用户搜索(例如,使用“页面查找”)或片段导航找到该元素。beforematch
事件在hidden
属性被移除之前触发(Firefox bug 1761043 和 Firefox bug 1955379)。
CSS
无显著变化
JavaScript
- 现在支持 Temporal API,该 API 旨在简化各种场景下日期和时间的处理,并内置了时区和日历表示(Firefox bug 1912511 和 Firefox bug 1954138)。这包括:
- 持续时间(两个时间点之间的差值):
Temporal.Duration
- 时间点:
- 作为历史上的一个独特瞬间
- 时间戳:
Temporal.Instant
- 带时区的日期时间:
Temporal.ZonedDateTime
- 时间戳:
- 不带时区的日期/时间(“纯粹”):
- 日期(年、月、日)+ 时间(时、分、秒、毫秒、纳秒):
Temporal.PlainDateTime
- 日期(年、月、日):
Temporal.PlainDate
- 时间(时、分、秒、毫秒、纳秒):
Temporal.PlainTime
- 日期(年、月、日):
- 日期(年、月、日)+ 时间(时、分、秒、毫秒、纳秒):
- 作为历史上的一个独特瞬间
- 当前时间(当前时间),以各种类实例的形式,或特定格式:
Temporal.Now
- 持续时间(两个时间点之间的差值):
- 目前,以下日历类型在
withCalendar()
方法中被禁用,用于PlainDate
、PlainDateTime
和ZonedDateTime
对象:islamic
islamic-rgsa
islamic-umalqura
SVG
移除
- 实验性的
<discard>
元素已被移除,以及其对应的SVGDiscardElement
JavaScript 接口。这些在其他浏览器中不被支持,并且预计将被从规范中移除。(Firefox bug 1958839)。
HTTP
无显著变化
API
DOM
- 现在支持
HTMLDialogElement
接口的requestClose()
方法。这使得开发者可以通过提供cancel
事件处理程序来有条件地阻止对话框关闭。(Firefox bug 1960556)。 - 现在支持 Web Authentication 扩展
largeBlob
和credProps
,同时prf
扩展在所有桌面平台上都得到支持。它们分别提供了对与凭证关联的大型 Blob 存储、凭证的附加信息以及生成与凭证和特定输入关联的随机数的机制的支持。(Firefox bug 1795020、Firefox bug 1844449、Firefox bug 1935280)。
WebDriver 一致性 (WebDriver BiDi, Marionette)
通用
- Firefox 中的优先级管理器(在 macOS 上是后台 QoS 管理器),它负责管理父进程和内容进程之间的 IPC 消息优先级,已被暂时禁用所有支持的远程协议。此更改解决了在系统负载很高的情况下,新打开的后台标签页中的初始页面加载未被调度的问题,导致某些命令挂起(Firefox bug 1960734)。
WebDriver BiDi
- 实现了
emulation.setGeolocationOverride
命令,允许测试和自动化工具在指定的浏览上下文或用户上下文中模拟地理位置。这使得用户可以测试诸如本地推荐的地理围栏等位置感知功能(Firefox bug 1954992)。
附加组件开发人员的变更
- 本地化扩展现在会通过区域设置子标记进行级联查找翻译,然后再回退到扩展的默认语言。以前,如果找不到带子标记的语言的翻译,扩展会使用扩展默认值。有关新行为的更多详细信息,请参阅国际化文章中的 本地化字符串选择。(Firefox bug 1381580)
- 现在保证内容脚本和样式将按照注册顺序执行(即,它们在
content_scripts manifest key array
中的顺序)。以前,仅保证同一js
数组内的脚本的顺序。(Firefox bug 1792685) - 现在可以使用
tabGroups
API。此 API 使扩展能够修改和重新排列 标签组。有关更多信息,请参阅 WebExtensions 对标签组的支持。(Firefox bug 1940631)
实验性 Web 功能
这些功能在 Firefox 139 中发布,但默认情况下禁用。要尝试使用它们,请在 about:config
页面上搜索相应的首选项并将其设置为 true
。您可以在 实验性功能页面上找到更多此类功能。
- 优先级任务调度 API(Nightly 版本)。优先级任务调度 API 提供了一种标准化的方式来为属于应用程序的所有任务分配优先级,无论它们是在网站开发人员的代码中定义的,还是在第三方库和框架中定义的。这增加了对
scheduler.yield()
方法的支持,并重新启用了 Nightly 版本中的整个 API。(Firefox bug 1958943、Firefox bug 1920115)。 - 视图过渡 API(Nightly 版本)。已为 SPA(单页应用程序)启用了 视图过渡 API。它提供了一种轻松创建不同网站视图之间动画过渡的机制。(Firefox bug 1950759)。
- 序列化 HTML 时支持转义属性中的
<
和>
:dom.security.html_serialization_escape_lt_gt
。Firefox 现在会在序列化 HTML 时,将属性中的<
和>
字符分别替换为<
和>
。这有助于防止某些在 HTML 被序列化然后注入回 DOM 的攻击。受影响的方法和属性是:Element.innerHTML
、Element.outerHTML
、Element.getHTML()
、ShadowRoot.innerHTML
和ShadowRoot.getHTML()
。(Firefox bug 1941347)。 - 禁用非标准
beforescriptexecute
和afterscriptexecute
:dom.events.script_execute.enabled
。这些事件已仅在 Nightly 版本中禁用,允许在移除它们之前进行浏览器测试。受影响的事件是Document
接口上的beforescriptexecute
和afterscriptexecute
,以及Element
接口上的afterscriptexecute
和beforescriptexecute
。(Firefox bug 1954685)。