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”物件,然後可以將其包含在另一個物件中,以便在字串化該物件時保留指定的值。