Firefox 132 开发者发行说明

本文提供有关 Firefox 132 中影响开发者的更改信息。Firefox 132 于 2024 年 10 月 29 日发布。

Web 开发人员的变更

HTML

无显著变化

CSS

移除

JavaScript

HTTP

  • HTTP Accept 头的默认/文档值已更改为 text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8。这移除了有时会导致兼容性问题的图像 MIME 类型,并与 fetch 规范和 Safari 保持一致。(Firefox bug 1917177)。

移除

  • HTTP/2 Server Push 默认情况下通过首选项 network.http.http2.allow-push 设置为 false 而停用。此功能不再受任何其他主流浏览器支持,并且在未来的版本中可能会完全移除。(Firefox bug 1915848)。

隐私

API

媒体、WebRTC 和 Web Audio

WebDriver 一致性 (WebDriver BiDi, Marionette)

WebDriver BiDi

  • 实施了一些改进,以使 WebDriver BiDi 命令在导航期间或与新创建的标签页一起使用时更可靠。以前,像 browsingContext.setViewport 这样的命令很可能由于 AbortError 而失败,现在它们将重试几次以避免此类问题。(Firefox bug 1854942, Firefox bug 1918287, Firefox bug 1918672, Firefox bug 1921756)
  • 现在,browsingContext.contextCreated 事件针对延迟加载的帧正确触发。以前,该事件只会在 iframe 实际开始加载其内容时才触发。(Firefox bug 1878166)
  • 现在,缓存样式表请求的网络事件会正确触发。(Firefox bug 1879438)
  • 网络事件计时以前使用错误的单位,以微秒为单位提供。现在它们已正确设置为毫秒。(Firefox bug 1916685)
  • 网络事件计时中的 requestTime 现在应该更准确,并且真正匹配请求实际开始的时间。(Firefox bug 1922390)

实验性 Web 功能

这些功能在 Firefox 132 中是新推出的,但默认情况下是禁用的。要试用它们,请在 about:config 页面上搜索相应的首选项并将其设置为 true。您可以在实验性功能页面上找到更多此类功能。

  • Cookie Store API: dom.cookieStore.enabled

    Cookie Store API 是一种现代的、基于 Promise 的 Cookie 管理方法,它不会阻塞事件循环,也不依赖于 Document(因此可以供 Service Worker 使用)。截至 Firefox 132,Cookie Store API 的一个子集已实现。(Firefox bug 1800882)。这包括:

  • fetch()keepalive 选项: dom.fetchKeepalive.enabled

    全局 fetch() 方法有一个 keepalive 初始化选项。当 keepalive 设置为 true 时,如果发起请求的页面在请求完成之前被卸载,浏览器将不会中止关联的请求。

    这使得 fetch 请求可以在会话结束时发送分析数据时作为 Navigator.sendBeacon() 的替代方案,这有一些优点(您可以使用 POST 以外的 HTTP 方法,自定义请求属性,并通过 fetch Promise 实现访问服务器响应)。它也可以在 Service Worker 中使用。(Firefox bug 1906952)。

  • CloseWatcher: dom.closewatcher.enabledCloseWatcher 接口使开发者能够实现可使用设备原生机制关闭的组件,就像内置组件一样。例如,在 Android 上,您可以使用返回按钮关闭对话框:此接口允许您以类似方式关闭自定义侧边栏。(Firefox bug 1888729)。

  • Promise.try(): javascript.options.experimental.promise_tryPromise.try() 是一个便利方法,它接受任何类型(同步或异步返回或抛出)的回调,并将其结果包装在 Promise 中,以便可以使用 Promise 语义(例如 .then().catch())来处理它 (Firefox bug 1905364)。

  • 带有 source 的 JSON.parse: javascript.options.experimental.json_parse_with_sourceJSON.parse 源文本访问提案扩展了 JSON.parse 的行为,以提供缓解 JavaScript 值和 JSON 文本之间转换大浮点数和日期值等时精度损失问题的特性 (Firefox bug 1913085, Firefox bug 1925334)。具体来说,现在可以使用以下特性:

    • JSON.parse() reviver 参数的 context 参数:提供对已解析的原始 JSON 源文本的访问。
    • JSON.isRawJSON():测试一个值是否是 JSON.rawJSON() 返回的对象。
    • JSON.rawJSON():创建一个包含一段 JSON 文本的“原始 JSON”对象,然后可以将其包含在另一个对象中,以便在字符串化该对象时保留指定的值。