Firefox 65 面向開發者的釋出說明
本文件提供了 Firefox 65 中將影響開發者的變更資訊。Firefox 65 於 2019 年 1 月 29 日釋出。
Web 開發人員的變更
開發者工具
- Flexbox 檢查器現在預設啟用。
- JavaScript 偵錯程式已增加對 XHR 斷點的支援(Firefox bug 821610)。
- 在輔助功能檢視器中,右鍵單擊輔助功能樹中的專案,可以將其以 JSON 格式列印到 JSON 檢視器。
- 輔助功能選擇器的顏色對比度顯示已更新,如果文字背景複雜(例如,漸變或複雜影像),它會顯示一系列顏色對比度值。
- 網路監視器的“請求頭”選項卡現在顯示所選請求的 Referrer Policy(Firefox bug 1496742)。
- 在顯示堆疊跟蹤(例如,在控制檯日誌或 JavaScript 偵錯程式中)時,對框架方法的呼叫預設會被識別並摺疊,從而更容易定位到您的程式碼。
- 與原生終端類似,您現在可以使用反向搜尋在 JavaScript 控制檯歷史記錄中查詢條目(Windows/Linux 上按
F9,或 macOS 上按Ctrl+R,然後輸入搜尋詞,再按Ctrl+R/Ctrl+S切換結果)。 - JavaScript 控制檯的
$0快捷方式(引用頁面上當前檢查的元素)現在提供自動補全功能,例如,您可以輸入$0.te來獲取$0.textContent等屬性的自動補全建議。 - 您在檢查器的“規則”檢視中所做的編輯現在列在“更改”面板中(Firefox bug 1503920)。
HTML
- 事件現在在停用的 HTML 元素上分派,即,設定了
disabled屬性的<button>、<fieldset>、<input>、<select>和<textarea>元素(Firefox bug 329509)。 - 移除
<iframe>元素的src屬性現在會導致about:blank載入到其中,使其與 Chrome 和 Safari 保持一致(Firefox bug 1507842)。以前移除src對iframe內容沒有影響。 - 我們已增加對
<script>元素上的referrerpolicy屬性的支援(Firefox bug 1460920)。
CSS
-
image-rendering屬性的crisp-edges值現在已取消字首(Firefox bug 1496617)。 -
scrollbar-color的auto值現在解析為auto,而不是兩種顏色(Firefox bug 1501418)。 -
break-*屬性已實現,並且舊版page-break-*屬性已別名為它們(Firefox bug 775618)。break-before現在是page-break-before的別名。break-after現在是page-break-after的別名。break-inside現在是page-break-inside的別名。
-
overflow-wrap屬性的anywhere值已實現(Firefox bug 1505786)。 -
新的步進位置關鍵字
jump-start、jump-end、jump-none和jump-both(可在steps()計時函式中使用)已實現(Firefox bug 1496619)。這與frames()計時函式的移除同時發生,後者是以前實現此類功能的方式,現已棄用。 -
為與其他瀏覽器相容,已新增一些新的
-webkit-appearance值。特別是:meter,現在用作 UA 樣式表中<meter>元素的預設值。現有值meterbar現在是meter的別名(Firefox bug 1501483)。progress-bar,現在用作 UA 樣式表中<progress>元素的預設值。現有值progressbar現在是progress-bar的別名(Firefox bug 1501506)。textarea,現在用作 UA 樣式表中<textarea>元素的預設值。現有值textfield-multiline現在是textarea的別名(Firefox bug 1507905)。
-
user-select的行為已更改,使其更與其他瀏覽器保持一致(Firefox bug 1506547)。具體來說:-
在元素上設定
user-select: all不再覆蓋在該元素的子元素上設定的其他user-select值。例如,在以下程式碼片段中:html<div style="-webkit-user-select: all"> All <div style="-webkit-user-select: none">None</div> </div>設定了
none的<div>現在不可選。以前,此值會被父元素上設定的all值覆蓋。 -
巢狀在
contenteditable元素中的非contenteditable元素現在可選擇。 -
user-select現在在 Shadow DOM 內部和外部表現一致。 -
專有的
-moz-text值已被移除。
-
-
CSS 環境變數(
env()函式)已實現(Firefox bug 1462233)。
移除
layout.css.shape-outside.enabled首選項已移除;shape-outside、shape-margin和shape-image-threshold不再可以在about:config中停用(Firefox bug 1504387)。user-select屬性的幾個 Firefox 專有值已被移除——-moz-all、-moz-text、tri-state、element、elements和toggle。請參閱 Firefox bug 1492958 和 Firefox bug 1506547。- 如上所述,
frames()計時函式已被移除(Firefox bug 1496619)。
SVG
無更改。
JavaScript
Intl.RelativeTimeFormat現在受支援(Firefox bug 1504334)。- 字串的最大長度現在是
2**30 - 2(~1GB),而不是2**28 - 1(~256MB)(Firefox bug 1509542)。 - 始終指向頂層全域性物件的
globalThis屬性已實現(Firefox bug 1317422)。
API
新 API
- 可讀流已預設啟用(Firefox bug 1505122)。
- 儲存訪問 API 已預設啟用(Firefox bug 1513021)。
DOM
Performance.toJSON()已暴露給 Web Workers(Firefox bug 1504958)。- 如果請求的內容型別是
Blob且請求方法不是GET,XMLHttpRequest請求現在將丟擲NetworkError(Firefox bug 1502599)。 - 許多 全屏 API 功能的
-moz-字首版本已被棄用,現在在 JavaScript 控制檯中遇到時將顯示棄用警告(Firefox bug 1504946)。 Window.createImageBitmap()和WorkerGlobalScope.createImageBitmap()現在支援 SVG 影像(SVGImageElement)作為影像源(Firefox bug 1500768)。
DOM 事件
- 今後,每個事件只允許一次
Window.open()呼叫(Firefox bug 675574)。 keyup和keydown事件現在在 IME 組合期間觸發,以改善 CJKT 使用者的跨瀏覽器相容性(Firefox bug 354358)。
Web Workers
SharedWorkerGlobalScope.connect的事件物件是一個MessageEvent例項——其data屬性現在是一個空字串值而不是null(Firefox bug 1508824)。
Fetch 和 Service Workers
- 如果將無效 URL 指定為第一個引數,
Response.redirect()方法現在會正確丟擲TypeError(Firefox bug 1503276)。 ServiceWorkerContainer.register()和WorkerGlobalScope.importScripts()(當由 Service Worker 使用時)方法現在將接受任何具有有效 JavaScript MIME 型別的檔案(Firefox bug 1354577)。FetchEvent.replacesClientId和FetchEvent.resultingClientId屬性現在受支援(Firefox bug 1264177)。ServiceWorkerGlobalScope.onmessageerror和ServiceWorkerContainer.onmessageerror處理程式屬性已實現(Firefox bug 1399446)。- 對於方法為
HEAD或GET的 Fetch 請求,不再設定Origin請求頭(Firefox bug 1508661)。
媒體、Web Audio 和 WebRTC
- WebRTC 的
RTCIceCandidateStats字典已根據最新的規範更改進行更新(Firefox bug 1324788, Firefox bug 1489040;有關具體更改的更多詳細資訊,請參閱 RTCIceCandidateStats 已更新至最新規範)。 MediaRecorder的pause和resume事件(以及它們對應的事件處理程式屬性)以前沒有實現,儘管相容性表格聲稱它們已經實現。它們現在已經實現(Firefox bug 1458538, Firefox bug 1514016)。
Canvas 和 WebGL
- WebGL 的
EXT_texture_compression_bptc和EXT_texture_compression_rgtc紋理壓縮擴充套件已暴露給 WebGL1 和 WebGL2 上下文(Firefox bug 1507263)。
移除
- 變動事件已在 Shadow Tree 中停用(Firefox bug 1489858)。
- 非標準的
MediaStream屬性currentTime已移除(Firefox bug 1502927)。 dom.webcomponents.shadowdom.enabled和dom.webcomponents.customelements.enabled首選項已移除——Shadow DOM 和自定義元素不再可以在about:config中停用(Firefox bug 1503019)。- 非標準的 DOM
text事件——用於通知瀏覽器編輯器 UI IME 組合字串資料和選擇範圍——已移除(Firefox bug 1288640)。 - 除
Enter鍵以及Shift+Enter和Ctrl+Enter組合鍵(為跨瀏覽器相容性保留)外,不可列印鍵不再觸發keypress事件(Firefox bug 968056)。
安全
- 現在對允許的請求頭強制執行額外的 CORS 限制(Firefox bug 1483815,另請參閱 whatwg fetch issue 382: CORS-safelisted request headers should be restricted according to RFC 7231 獲取更多詳細資訊)。
網路
無更改。
外掛
無更改。
WebDriver 符合性 (Marionette)
API 更改
WebDriver:ElementSendKeys現在對<input type=file>的可互動性檢查更加寬鬆,並允許這些元素隱藏而不再引發not interactable錯誤。如果需要嚴格的可互動性檢查,可以使用strictFileInteractability功能(Firefox bug 1502864)。
錯誤修復
- 視窗操作命令
WebDriver:FullscreenWindow、WebDriver:MinimizeWindow、WebDriver:MaximizeWindow和WebDriver:SetWindowRect已變得更加穩定(Firefox bug 1492499)。這意味著在特殊情況下它們不再導致無限掛起,而是如果無法達到請求的視窗狀態,將在 5 秒後超時(Firefox bug 1521527)。 WebDriver:ElementClick現在正確計算元素的中心點進行點選,這允許與 1x1 畫素尺寸的元素進行互動(Firefox bug 1499360)。
其他
- 對於
unexpected alert open錯誤,提供了更具資訊性的訊息(Firefox bug 1502268)。
其他
-
已新增對 WebP 影像的支援(Firefox bug 1294490)。
- 此外,為了在某些情況下促進跨瀏覽器相容性,WebP MIME 型別(
image/webp)已新增到 HTML 檔案的標準 HTTP 請求Accept請求頭中(Firefox bug 1507691)。
- 此外,為了在某些情況下促進跨瀏覽器相容性,WebP MIME 型別(
-
AV1 編解碼器現在在 Windows 上預設受支援(Firefox bug 1452146)。
附加元件開發人員的變更
API 更改
標籤頁
- tabs API 已增強,以支援標籤頁後繼者——標籤頁可以分配一個後繼者,即它關閉後將啟用的標籤頁的 ID(Firefox bug 1500479,另請參閱 這篇部落格文章 獲取更多資訊)。特別是:
tabs.Tab型別現在有一個successorId屬性,可用於儲存/檢索標籤頁後繼者的 ID。tabs.onActivated事件監聽器的回撥有一個新的可用引數previousTabId,其中包含先前啟用的標籤頁的 ID(如果它仍然開啟)。tabs.update()函式的updateProperties物件上有一個新的可選屬性successorTabId,因此可用於更新它。successorTabId也由tabs.get()和tabs.query()等函式返回。- 新函式
tabs.moveInSuccession()允許批次操作標籤頁後繼者。
清單更改
無更改。
其他
- WebExtension 主題的
headerURL/theme_frame屬性現在在 Firefox for Android 上受支援(Firefox bug 1429488)。
另見
- Hacks 釋出文章:Firefox 65:WebP 支援、Flexbox 檢查器、新工具和平臺更新