Firefox 101 釋出說明 (面向開發者)
本文件提供有關 Firefox 101 中將影響開發者的變更資訊。Firefox 101 於 2022 年 5 月 31 日釋出。
Web 開發人員的變更
HTML
無顯著變化。
CSS
-
用於檢測使用者是否偏好在網頁內容顯示中選擇更高(
more)或更低(less)對比度的prefers-contrast媒體特性現已預設可用。此特性現在還允許使用者透過新的custom值指定用於對比度的顏色集(Firefox bug 1656363)。 -
引入了三種新的視口大小:小(
s)、大(l)和動態(d)。這些新尺寸除了現有的vh、vw、vmax和vmin之外,還添加了新的 視口百分比長度單位。新的視口百分比長度單位包括svh、lvh、dvh、svw、lvw、dvw、svmax、lvmax、dvmax、svmin、lvmin和dvmin(Firefox bug 1610815)。此外,vb和vi單位現已預設支援(Firefox bug 1610815)。 -
已為
contain屬性新增對inline-size值的支援。有關更多資訊,請參閱(Firefox bug 1755565)。
JavaScript
無顯著變化。
API
DOM
-
HTMLMediaElement.preservesPitch現在無需moz字首即可支援。mozPreservesPitch現在是preservesPitch的別名,但已棄用,並可能在未來版本中移除(Firefox bug 1652950)。 -
現已支援
HTMLInputElement.showPicker(),允許在使用者與按鈕等其他元素互動時顯示輸入元素的選擇器(Firefox bug 1745005)。 -
DOMException現在是一個 可序列化的物件,因此可以使用structuredClone()進行克隆,或使用postMessage()在 worker 之間複製(Firefox bug 1561357)。 -
現已支援可構造樣式表,這使得建立可重用樣式表以與 Shadow DOM 配合使用更加容易。更新包括添加了用於建立新樣式表的
CSSStyleSheet()建構函式,可用於在樣式表中新增/替換 CSS 規則的CSSStyleSheet.replace()和CSSStyleSheet.replaceSync()方法,以及用於將樣式表共享到文件及其 shadow DOM 子樹的Document.adoptedStyleSheets和ShadowRoot.adoptedStyleSheets屬性。有關更多資訊,請參閱(Firefox bug 1520690)。
媒體、WebRTC 和 Web Audio
-
媒體支援查詢中的 AV1 編解碼器引數現已得到正確解析。這意味著
MediaCapabilities.decodingInfo()、HTMLMediaElement.canPlayType()和MediaSource.isTypeSupported()現在將根據提供的編解碼器引數準確報告對 AV1 源的播放支援。MediaCapabilities.decodingInfo()還將利用這些資訊準確報告 AV1 影片的“高效解碼”。有關更多資訊,請參閱(Firefox bug 1757861)。 -
現在支援
maxFramerate,用於設定用於傳送編碼的最大幀率(在RTCPeerConnection.addTransceiver()和RTCRtpSender.setParameters()中)。請注意,零是有效的幀率值,但 Firefox 將其解釋為“無幀率限制”。有關更多資訊,請參閱(Firefox bug 1611957)。
SVG
- Firefox UI 中使用
prefers-color-scheme樣式化的 SVG 影像將遵循嵌入器的color-scheme(以前prefers-color-scheme會忽略嵌入器的color-scheme,並根據裝置或瀏覽器主題觸發)。這確保了例如圖示始終按照巢狀它的元素的顏色主題進行樣式化,而不一定取決於裝置(可能不同的)顏色主題。(Firefox bug 1764354)。
WebDriver 一致性 (WebDriver BiDi, Marionette)
從 Firefox 此版本開始,WebDriver BiDi 協議將預設啟用。可以透過使用 WebDriver classic(geckodriver, Marionette)並設定 webSocketUrl 功能為 true 來請求 WebDriver BiDi 會話。此功能將包含 BiDi 客戶端連線的 WebSocket 端點。
以下命令和事件可用
-
添加了
session模組,包括用於全域性訂閱(session.subscribe)和取消訂閱(session.unsubscribe)事件的命令的部分實現,以及在不使用 WebDriver classic 時建立直接 WebDriver BiDi 會話(session.new)的功能。 -
添加了
browsingContext模組,包括用於開啟新標籤頁或視窗(browsingContext.create)或關閉此類視窗(browsingContext.close)、檢索開啟的瀏覽上下文(browsingContext.getTree)以及在瀏覽上下文中導航(browsingContext.navigate)的命令。還支援瀏覽上下文建立時的事件(browsingContext.contextCreated)。 -
添加了
log模組,包括對日誌事件(log.entryAdded)的支援。
有關更多資訊,請參閱 完整的 Bug 列表。
附加元件開發人員的變更
- 添加了
storage.StorageArea.onChanged事件,使您能夠監聽local和sync儲存區域中內容的變更(Firefox bug 1758475)。 - Manifest V3 預覽功能
- 添加了
scriptingAPI,該 API 提供了執行指令碼、插入和刪除 CSS 以及管理內容指令碼註冊的功能(Firefox bug 1687764)。此 API 可用於 Manifest V3 擴充套件,並接管了tabsAPI 的執行指令碼以及插入和刪除 CSS 功能。 - 添加了
actionAPI,該 API 在 Manifest V3 擴充套件中接管了browserActionAPI 的功能。相應地,在 manifest 中添加了"action"manifest 鍵以及commands鍵的_execute_action特殊快捷方式。請注意,browserActionAPI 和"browser_action"manifest 鍵僅在 Manifest V2 擴充套件中可用。 "background"manifest 鍵屬性"persistent"可以設定為false,具體取決於首選項:對於 Manifest V2,是extensions.eventPages.enabled首選項;對於 Manifest V3,是extensions.manifestV3.enabled首選項。- 添加了
"host_permissions"manifest 鍵,該鍵可用於 Manifest V3 擴充套件。 - Manifest V3 擴充套件的內容指令碼執行環境已發生變化
- 內容指令碼不能再依賴主機許可權來執行跨域請求。內容指令碼的跨域請求可透過 CORS 進行。
content物件(提供了content.fetch、content.XMLHttpRequest和content.WebSocket)已從內容指令碼執行環境中移除。
- 添加了