Firefox 121 為開發者釋出的發行說明

本文件提供了關於 Firefox 121 中影響開發者的更改的資訊。Firefox 121 已於 2023 年 12 月 19 日釋出。

Web 開發人員的變更

HTML

  • 現在支援 <iframe> 元素的 延遲載入,允許開發者提示特定的 <iframe> 元素僅在(並且如果)它們變得可見時才載入。這可以透過減少頁面載入時需要獲取的資源來加快初始載入時間(某些 <iframe> 元素可能根本不需要獲取)。可以透過 <iframe> 元素的 loading 屬性,或使用 JavaScript 中的 HTMLIFrameElement.loading 來提供此提示。(Firefox bug 1622090)。

CSS

  • text-wrap 屬性已更新,支援 balancestable 值。balance 值用於簡短的內容塊,例如標題,並確保內容在多行之間分佈均勻且易於閱讀。stable 值確保在使用者編輯時,可編輯內容不會重排(Firefox bug 1731541)。
  • 現在支援 :has() 選擇器,通常稱為父選擇器。它允許開發者根據相關元素來應用樣式,例如,li:has(ul) 將匹配包含子列表的列表,或者 h1:has(+ p) 將匹配後面緊跟著一個段落的標題。
  • text-indent CSS 屬性現在支援 each-linehanging 屬性值(Firefox bug 784648),使開發者能夠更輕鬆地指定某些文字縮排樣式。此外,開發者現在還可以組合多個 text-indent 屬性值以獲得更多創意,例如 text-indent: 3em hanging each-line

JavaScript

  • 現在支援 Promise.withResolvers() 靜態方法。它將 resolvereject 回撥函式暴露在與返回的 Promise 相同的作用域中,允許在 Promise 構建之後定義解析或拒絕該 Promise 的程式碼(Firefox bug 1845586)。

  • Date.parse() 現在接受更多日期格式

    • YYYY-MMM-DD 格式的年份 > 9999(例如 19999-Jan-01)(Firefox bug 1858851

    • MMM-DD-YYYY(例如 Jan-01-1970)(Firefox bug 1863489

    • 非 ISO 日期格式的毫秒(例如 Jan 1 1970 10:00:00.050)(Firefox bug 1863125

    • 被拒絕的格式(例如)開頭的星期幾

      • Wed, 1970-01-01
      • Wed, 1970-Jan-01

      星期幾不一定正確,甚至不需要是星期幾;例如,foo 1970-01-01 也能正常工作(Firefox bug 1617562)。

  • 其他 Date.parse() 修復

    • YYYY-M-DDYYYY-MM-D 不再被假定為 GMT,如同 ISO 日期 YYYY-MM-DD 一樣(Firefox bug 1783731)。
    • 所有格式的毫秒數將被截斷為 3 位數,而不是四捨五入(Firefox bug 746529)。

API

DOM

WebAssembly

  • WebAssembly 現在透過新的 return_callreturn_call_indirect 指令替代 call 指令來支援尾呼叫最佳化。這提高了效能,減少了堆疊空間使用,並增強了與使用尾呼叫的程式語言的相容性。(Firefox bug 1858855)。

WebDriver 一致性 (WebDriver BiDi, Marionette)

WebDriver BiDi

Marionette

  • 添加了對序列化和反序列化 WindowFrame 物件(Firefox bug 1274251)的支援。

實驗性 Web 功能

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

自定義元素狀態偽類:dom.element.customstateset.enabled

自定義元素可以透過 states 屬性以 CustomStateSet 的形式暴露其內部狀態。CSS 自定義狀態偽類,如 :--some-state,可以匹配該元素的狀態。(Firefox bug 1861466

HTML select 元素的 showPicker() 方法:dom.select.showPicker.enabled

HTMLSelectElement.showPicker() 方法會以程式設計方式啟動瀏覽器選擇器,用於由使用者互動觸發的 <select> 元素。(Firefox bug 1854112

附加元件開發人員的變更

  • 修復了當 manifest.json 的 background 鍵包含 service_workerscripts 宣告時,後臺頁面未能啟動的錯誤(Firefox bug 1860304)。

    注意:順帶一提,Chrome 121 中的一項更改規定,當 scripts 屬性與 service_worker 屬性一起指定時,scripts 屬性將被忽略。以前,Chrome 會拒絕載入同時包含這兩種屬性的擴充套件程式(Chromium bug 1418934)。有關更多資訊,請參閱 background manifest 鍵的瀏覽器支援