Firefox 122 開發者釋出說明

本文件提供了關於 Firefox 122 中影響開發者的更改資訊。Firefox 122 已於 2024 年 1 月 23 日 釋出。

Web 開發人員的變更

HTML

  • <hr> 元素現在允許作為 <select> 元素的子元素。這是一項新功能,可提高選項較多的選擇列表的可讀性。(Firefox bug 1830909)。
  • <ol> 中,如果 type HTML 屬性設定為 nonedisccirclesquare,則不再生效;在 <ul> 中,如果設定為 1aAiI,則不再生效。由於 type<ul><ol> 列表的已棄用屬性,因此應使用 list-style-type CSS 屬性進行樣式設定。(Firefox bug 1868087)。

CSS

JavaScript

  • ArrayBuffer.prototype.transfer()ArrayBuffer.prototype.transferToFixedLength() 方法現在可用於將記憶體的所有權從一個 ArrayBuffer 轉移到另一個。傳輸後,原始緩衝區將與其原始記憶體分離,因此無法使用;可以使用 ArrayBuffer.prototype.detached 檢查狀態。(有關詳細資訊,請參閱 Firefox bug 1865103)。

  • 為了與其他瀏覽器保持一致,在解析 非標準日期字串時,Date.parse()Date() 建構函式僅考慮指定月份的前三個字母。以前只接受截斷的、包含三個或更多字元的完整月份名稱。(有關詳細資訊,請參閱 Firefox bug 1862910)。

SVG

移除

  • 移除了 SVG <use> 元素中以及透過 SVGUseElement 介面對 data: URL 的支援,以防止 XSS 攻擊。可以透過將 svg.use-element.data-url-href.allowed 首選項設定為 true 來重新啟用舊功能,但出於安全原因不建議這樣做(Firefox bug 1806964)。

API

  • 現在支援 LargestContentfulPaint API。此 API 是 Performance APIs 的一部分,並提供使用者與網頁互動前最大的影像或文字繪製的計時資訊(Firefox bug 1866266)。

DOM

  • 現在支援 HTMLSelectElement.showPicker() 方法,允許在使用者互動觸發時,透過程式設計方式啟動 <select> 元素的瀏覽器選擇器(Firefox bug 1865207)。

移除

WebDriver 一致性 (WebDriver BiDi, Marionette)

通用

  • 修復了一個阻止 Perform Actions 正確合成 mouse 輸入源的雙擊和其他多次點選事件的錯誤(Firefox bug 1864614)。此外,這些事件僅在實際滑鼠位置自上次點選操作以來未發生變化時才會發出(Firefox bug 1681076)。
  • PauseEqual(小鍵盤塊)鍵的定義已更新,以符合 WebDriver 規範(Firefox bug 1863687)。

WebDriver BiDi

  • WindowProxy 遠端物件的序列化現在也能正確處理程序外 iframe(Firefox bug 1867667)。
  • browsingContext.setViewport 命令現在區分 viewport 引數值中的 undefinednull。如果設定為 undefined,則表示視口應保持不變,而使用 null 將將其重置為原始尺寸(Firefox bug 1865618)。
  • 已引入對 browsingContext.traverseHistory 命令的支援,從而可以向後和向前導航瀏覽器歷史記錄(Firefox bug 1841018)。
  • 修復了所有支援的網路事件中的一個錯誤,該錯誤導致 context ID 始終報告頂級瀏覽上下文,即使導航發生在 iframe 內(Firefox bug 1869735)。

Marionette

  • 修復了 Get Element Text 命令的一個錯誤,該命令在元素位於 ShadowRoot 的 slot 中時錯誤地返回了空文字(Firefox bug 1824664)。

實驗性 Web 功能

這些功能是 Firefox 122 中新推出的,但預設停用。要嘗試它們,請在 about:config 頁面上搜索相應的首選項並將其設定為 true。您可以在 實驗性功能頁面上找到更多此類功能。

  • 宣告式 Shadow DOM: dom.webcomponents.shadowdom.declarative.enabled

    <template> 元素現在支援 shadowrootmode 屬性,該屬性可以設定為 openclosed,與 attachShadow() 方法的 mode 選項的值相同。它允許以宣告方式建立 shadow DOM 子樹。(Firefox bug 1712140

  • Shadow DOM 的可克隆選項和屬性。

    • Element.attachShadow() 方法現在支援 clonable 布林選項,該選項指定建立的 shadow root 是否可克隆:預設值為 false,但設定為 true 時,使用 Node.cloneNode()Document.importNode() 克隆的 shadow host 將包含 shadow root 的副本。
    • ShadowRoot 介面現在支援 clonable 只讀屬性。如果 shadow root 可克隆,則返回 true,否則返回 false。對於透過宣告式 Shadow DOM 建立的 shadow root,它始終返回 true

    當 shadow root 透過宣告式 Shadow DOM 建立時,clonable 選項預設設定為 true,並且 clonable 屬性返回 true。(Firefox bug 1712140

  • Popover API: dom.element.popover.enabled

    現在透過 HTML 屬性或 JavaScript API 支援在頁面內容之上顯示 popover,包括使用 CSS :popover-open 偽類進行樣式設定以及對 ::backdrop 偽元素的擴充套件支援。有關更多詳細資訊,請參閱 Popover API 參考。(Firefox bug 1823757

  • Clipboard read and write: dom.events.asyncClipboard.clipboardItem, dom.events.asyncClipboard.readTextdom.events.asyncClipboard.writeText

    非同步 Clipboard API 現在完全受支援,包括 read()readText()write() 方法以及 ClipboardItem 介面。在讀取非同源頁面提供的資料時,將出現一個貼上上下文選單供使用者確認。(Firefox bug 1809106

  • Intl.Segmenter: 預設僅在 Firefox Nightly 中啟用。

    Intl.Segmenter 物件允許對字串進行準確的、與區域設定相關的文字分割。例如,要將文字分割成單詞,例如在不使用空格分隔單詞的語言中:Intl.Segmenter("ja-JP", { granularity: "word" })。(Firefox bug 1423593