Web 開發人員的變更
HTML
- 現在支援
<iframe>元素的 延遲載入,允許開發者提示特定的<iframe>元素僅在(並且如果)它們變得可見時才載入。這可以透過減少頁面載入時需要獲取的資源來加快初始載入時間(某些<iframe>元素可能根本不需要獲取)。可以透過<iframe>元素的loading屬性,或使用 JavaScript 中的HTMLIFrameElement.loading來提供此提示。(Firefox bug 1622090)。
CSS
text-wrap屬性已更新,支援balance和stable值。balance值用於簡短的內容塊,例如標題,並確保內容在多行之間分佈均勻且易於閱讀。stable值確保在使用者編輯時,可編輯內容不會重排(Firefox bug 1731541)。- 現在支援
:has()選擇器,通常稱為父選擇器。它允許開發者根據相關元素來應用樣式,例如,li:has(ul)將匹配包含子列表的列表,或者h1:has(+ p)將匹配後面緊跟著一個段落的標題。 text-indentCSS 屬性現在支援each-line和hanging屬性值(Firefox bug 784648),使開發者能夠更輕鬆地指定某些文字縮排樣式。此外,開發者現在還可以組合多個text-indent屬性值以獲得更多創意,例如text-indent: 3em hanging each-line。
JavaScript
-
現在支援
Promise.withResolvers()靜態方法。它將resolve和reject回撥函式暴露在與返回的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-01Wed, 1970-Jan-01
星期幾不一定正確,甚至不需要是星期幾;例如,
foo 1970-01-01也能正常工作(Firefox bug 1617562)。
-
-
其他
Date.parse()修復YYYY-M-DD和YYYY-MM-D不再被假定為 GMT,如同 ISO 日期YYYY-MM-DD一樣(Firefox bug 1783731)。- 所有格式的毫秒數將被截斷為 3 位數,而不是四捨五入(Firefox bug 746529)。
API
WebTransportSendStream介面的sendOrder屬性現在得到支援,允許在建立後讀取和更改 WebTransport API 雙向流的相對優先順序。請注意,這不能用於修改單向流的優先順序,因為 Firefox 將它們實現為WritableStream而不是WebTransportSendStream。(有關更多資訊,請參閱 Firefox bug 1853444。)
DOM
HTMLInputElement.showPicker()現在可以在 Android 上用於<input type="week">和<input type="month">元素(Firefox bug 1853797)。
WebAssembly
- WebAssembly 現在透過新的
return_call和return_call_indirect指令替代call指令來支援尾呼叫最佳化。這提高了效能,減少了堆疊空間使用,並增強了與使用尾呼叫的程式語言的相容性。(Firefox bug 1858855)。
WebDriver 一致性 (WebDriver BiDi, Marionette)
WebDriver BiDi
- 添加了
browsingContext.contextDestroyed事件,該事件在瀏覽上下文被丟棄時發出(Firefox bug 1694390)。 - 為
script.callFunction和script.evaluate命令添加了userActivation引數支援,該引數允許在模擬使用者操作的同時評估 JavaScript。(Firefox bug 1845488)。 - 為
browsingContext.userPromptOpened事件添加了defaultValue欄位支援,允許使用者檢索提示的預設值(Firefox bug 1851761)。 - 將
browsingContext.captureScreenshot命令的viewportOptions引數重新命名為boxOptions(Firefox bug 1859258)。 - 刪除了
browsingContext.captureScreenshot命令的scrollIntoView引數,轉而使用下面的origin引數(Firefox bug 1862649)。 - 為
browsingContext.captureScreenshot命令添加了origin引數支援,該引數允許定義截圖的原點和邊界。接受的值為"document"和"viewport"(Firefox bug 1840999)。 - 序列化
Window物件時,序列化值現在包含一個context屬性,設定為Window物件的上下文 ID,該 ID 也可以與 Marionette 交換以引用特定的視窗和框架(Firefox bug 1841049)。 - 修復了巢狀在資料結構(陣列、對映等)中的 Node 序列化失敗的錯誤(Firefox bug 1861000)。
- 修復了
browsingContext.navigate命令可能返回錯誤的導航 ID 的錯誤(Firefox bug 1861655)。
Marionette
- 添加了對序列化和反序列化
Window和Frame物件(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_worker和scripts宣告時,後臺頁面未能啟動的錯誤(Firefox bug 1860304)。注意:順帶一提,Chrome 121 中的一項更改規定,當
scripts屬性與service_worker屬性一起指定時,scripts屬性將被忽略。以前,Chrome 會拒絕載入同時包含這兩種屬性的擴充套件程式(Chromium bug 1418934)。有關更多資訊,請參閱backgroundmanifest 鍵的瀏覽器支援。