Firefox 129 釋出說明(面向開發者)

本文件提供了關於 Firefox 129 中影響開發者的變更資訊。Firefox 129 於 2024 年 8 月 6 日釋出。

Web 開發人員的變更

CSS

  • 支援 `@starting-style` CSS at-rule。這允許您為元素上設定的屬性定義起始值,當元素接收到其首次樣式更新時,您可以從中進行過渡。目前不支援從 display: none; 進行動畫(Firefox bug 1834876Firefox bug 1834877)。
  • 支援 `transition-behavior` CSS 屬性。透過將值設定為 `allow-discrete`,您可以指定離散屬性(如 displayoverlay)是否可以進行過渡。(Firefox bug 1901645)。
  • 已將 `-webkit-font-feature-settings` 實現為標準 `font-feature-settings` 屬性的別名(Firefox bug 1595620)。

JavaScript

  • 現在支援 `Float16Array` 型別化陣列,以及用於從 DataView 讀取和設定 Float16Array 值的 DataView.prototype.getFloat16()DataView.prototype.setFloat16(),以及靜態方法 Math.f16round(),可用於將數字舍入到 16 位。這種新型別對於與 GPU 共享資料非常有用,尤其是在需要權衡精度以換取記憶體消耗的情況下。(Firefox bug 1903329。)
  • 正則表示式現在可以在不同的 交替項 中為 命名捕獲組 使用相同的名稱。這是允許的,因為交替項中的只有一個捕獲組會匹配,因此在多個交替項中宣告的名稱只能引用一個捕獲組。名稱在特定的交替項內以及在模式的其餘部分中仍然必須是唯一的。(Firefox bug 1903288。)

HTTP

  • 在 Windows 11、Linux 和 Android 10+ 上,現在可以使用作業系統提供的 DNS 解析器解析 HTTPS DNS 記錄。這可以確保,如果使用者在裝置上啟用了 DNS over HTTPS (DoH),即使瀏覽器未啟用,該功能也會被使用。此功能允許使用 HTTP/3,而無需使用 Alt-Svc 標頭,並支援在 HTTPS DNS 記錄存在時自動將 HTTP 請求升級為 HTTPS。最重要的是,它現在即使在僅在裝置上啟用 DoH 而不在瀏覽器中啟用 DoH 時,也允許使用 Encrypted Client Hello (ECH) 隱私功能。(Firefox bug 1906239)。

API

  • 現在支援已棄用的 `textInput` 事件,這使使用者可以執行依賴這些事件的舊版庫或框架的 Web 應用。beforeinput 事件取代了 textInput,新應用程式應始終使用 beforeinput 事件。(Firefox bug 1901923。)
  • 現在支援預設的 .toJSON() 方法 GeolocationCoordinates.toJSON()GeolocationPosition.toJSON(),這使得可以使用 JSON.stringify() 序列化 GeolocationCoordinatesGeolocationPosition 物件(Firefox bug 1890706)。
  • `CSSPageDescriptors` 現在受支援,並且用作 `CSSPageRule.style` 的型別,而不是 `CSSStyleDeclaration` — 這與當前規範一致。這確保 `CSSPageDescriptors` 只公開與 `@page` 相關的屬性,而不是所有屬性,並且還解決了在 CSS `@page` at-rule 中設定頁面 size 未在 `CSSPageRule.style` 中反映的問題。(Firefox bug 1890842Firefox bug 1867106。)
  • `MediaCapabilities.decodingInfo()` 現在可以獲取特定加密媒體配置的解碼資訊,以及未加密媒體的解碼資訊,使應用程式能夠提前判斷配置是否受支援,以及它是否能流暢地播放內容並提高電源效率。變更包括在方法的 `configuration` 引數上新增了一個 `keySystemConfiguration` 屬性,該屬性定義了用於加密媒體的金鑰系統的屬性,以及在返回的物件上新增了一個 `keySystemAccess` 屬性,這是一個 MediaKeySystemAccess 物件,可用於建立金鑰和解碼內容以供播放。(Firefox bug 1898344)。
  • Firefox 現在會在觸發任何正在進行的非同步 XMLHttpRequest 事件之前,為同步 XMLHttpRequest 觸發事件。這修復了與其他瀏覽器長期存在的行為差異。請注意,雖然這應該可以修復一些網站,但對於期望同步 XMLHttpRequest 具有舊的“非阻塞”行為的網站,它也可能導致效能下降。如果您的網站應該透過此更改得到修復但仍出現相關問題,請提交 bug。(Firefox bug 697151。)
  • Web Crypto API 支援 Ed25519 數字簽名演算法,並可在 SubtleCryptosign()verify()generateKey()importKey()exportKey() 方法中使用(Firefox bug 1804788)。
  • 現在支援 PerformanceResourceTiming 介面的 contentTyperesponseStatus 屬性,分別指示已獲取資源的 content type 和獲取資源時返回的 HTTP 響應狀態碼。(Firefox bug 1800443Firefox bug 1796785。)
  • 現在支援 `RTCDTMFSender.canInsertDTMF` 屬性。它允許您檢查 WebRTC 傳送器是否可以將 DTMF 音調插入到傳出連線中。如果支援,您可以使用 `RTCDTMFSender.insertDTMF()` 插入 DTMF 音調。(Firefox bug 1623193)。

移除

WebDriver 一致性 (WebDriver BiDi, Marionette)

移除

  • 預設情況下,CDP (Chrome DevTools Protocol) 已停用。可以透過 remote.active-protocols 首選項重新啟用。您可以在以下 部落格文章 中瞭解更多資訊。(Firefox bug 1882089

WebDriver BiDi

  • 添加了對 `network.setCacheBehavior` 命令的支援,該命令允許配置瀏覽器全域性或針對一組頂級瀏覽上下文繞過網路快取。(Firefox bug 1901032Firefox bug 1906100
  • 添加了對 `beforeUnload` 型別提示的支援,現在可以像其他使用者提示一樣處理它們。(Firefox bug 1824220
  • 現在支援 `network.provideResponse` 命令的所有引數,當在 `beforeRequestSent` 階段使用時,例如 `body` 引數允許返回模擬響應。(Firefox bug 1853882
  • `browsingContext.userPromptOpened` 現在包含 `handler` 欄位,該欄位包含為觸發事件的提示配置的使用者提示處理程式。(Firefox bug 1904822
  • `BrowsingContextInfo` 型別現在將提供一個 `originalOpener` 欄位,該欄位是“opener”瀏覽上下文的上下文 ID。例如,如果新上下文是透過連結(即使帶有 rel=noopener)、window.open 等建立的,該欄位將被設定。如果新瀏覽上下文沒有相關的 opener,該欄位將設定為 null。(Firefox bug 1898004
  • 現在為資料 URL 的請求建立網路事件(beforeRequestSentresponseStartedresponseCompleted)。在 Firefox 129 中,只列出導航請求。(Firefox bug 1805176
  • 我們添加了對 `browsingContext.close` 的 `promptUnload` 引數的支援,該引數允許在透過此命令關閉上下文時繞過“beforeunload”提示。(Firefox bug 1862380
  • 修復了 `network.continueRequest` 中的一個 bug,該 bug 導致無法為同一個標頭設定多個值。(Firefox bug 1904379
  • 修復了 `unhandledPromptBehavior` 功能的 bug,該功能無法與僅 BiDi 的會話一起使用。(Firefox bug 1907935
  • 修復了 `session.end` 和 `browser.close` 的一個 bug,該 bug 在沒有 Marionette 客戶端連線時會意外失敗。(Firefox bug 1890091
  • 修復了 `browsingContext.navigate` 的一個 bug,該 bug 在“beforeunload”上啟動同文檔導航時會無法解析。(Firefox bug 1879163
  • 改進了 `browser.close` 命令,使其在關閉頂級瀏覽上下文時丟棄所有“beforeunload”提示。(Firefox bug 1873196
  • 修復了 `browsingContext.userPromptOpened` 事件中的一個 bug,該事件會意外丟失 `defaultValue` 欄位(Firefox bug 1859814
  • 修復了 `network.responseCompleted` 事件在身份驗證流程中的一個問題,該事件發出的次數比規範要求的要多。整個 HTTP 身份驗證流程只需要一個 responseCompleted(或 fetchError)事件。(Firefox bug 1906106
  • 改進了 `browser.removeUserContext` 命令,使其跳過所有“beforeunload”提示。(Firefox bug 1876062