Firefox 66 面向開發者的釋出說明
本文介紹 Firefox 66 中會影響開發者的變化。Firefox 66 已於 2019 年 3 月 19 日釋出。
Web 開發人員的變更
開發者工具
- 現在可以在網路控制檯的自動補全彈出視窗中執行 JavaScript 的 getter (Firefox bug 1499289)。
- 在經過一段時間的損壞後,視窗方法
alert()、prompt()和confirm()現在可以在響應式設計模式中再次正常工作 (Firefox bug 1273997)。 - 你可以透過右鍵單擊並從上下文選單中選擇“將可見訊息匯出到剪貼簿”,將控制檯的輸出複製到剪貼簿。
HTML
- 現在支援從
file:URL 載入 UTF-8 編碼的 HTML(和純文字)檔案,無需<meta charset="utf-8">或 UTF-8 BOM,這使得在將此類檔案上傳到伺服器之前在本地處理它們變得更加容易。你仍然需要確保伺服器在此類檔案的Content-TypeHTTP 標頭中傳送charset=utf-8,否則用於本地檔案的檢測機制會在網路情況下破壞增量載入 (Firefox bug 1071816)。
移除
x-moz-errormessage屬性已從<input>元素中移除 (Firefox bug 1513890)。你應該使用約束驗證 API 來實現自定義驗證訊息。
CSS
-
Firefox 桌面版(但移動版尚未)已實現滾動錨定,其中包括
overflow-anchor屬性 (Firefox bug 1305957)。 -
我們已經實現了區分大小寫的屬性選擇器修飾符
s(Firefox bug 1512386)。 -
幾個邏輯屬性的簡寫形式已經實現,同時還有流相對的邊框圓角屬性
padding-block和padding-inline(Firefox bug 1519847)。margin-block和margin-inline(Firefox bug 1519944)。inset、inset-block和inset-inline(Firefox bug 1520229)。border-block-color、border-block-style、border-block-width、border-inline-color、border-inline-style和border-inline-width(Firefox bug 1520236)。border-block和border-inline(Firefox bug 1520396)。border-start-start-radius、border-start-end-radius、border-end-start-radius和border-end-end-radius(Firefox bug 1520684)。
-
我們實現了
overflow-inline和overflow-block媒體查詢 (Firefox bug 1422235)。 -
grid-template-columns和grid-template-rows現在可以根據其規範中規定的規則進行動畫處理 (Firefox bug 1348519)。 -
我們現在支援對錶格單元格和列寬使用帶有百分比的
calc()(Firefox bug 957915)。 -
min-content和max-content關鍵字現在無需字首即可使用 (Firefox bug 1322780)。這些可以設定在
SVG
無新增。
移除
- 我們移除了對
xml:base屬性的支援 (Firefox bug 903372)。
JavaScript
無更改。
API
新的 API/變更
- 在 66 版本成為 Firefox 正式版後不久,將預設阻止自動播放音訊(Firefox bug 1487844,有關推出詳情,請參閱 Firefox bug 1535667)。該功能將逐步向使用者推出,直到所有人都能使用。
DOM
- 已實現
HTMLSlotElement.assignedElements()方法 (Firefox bug 1425685)。 - 已實現
TextEncoder.encodeInto()方法 (Firefox bug 1514664)。
DOM 事件
- 已實現
InputEvent.inputType屬性 (Firefox bug 1447239)。 Window.event和Event.returnValue屬性——最初是 IE 的專有功能,後來為了相容性目的也被其他瀏覽器支援——在 Firefox 66 中被重新引入,此前它們分別在 63 和 64 版本中首次新增,但隨後因相容性問題再次被移除。- 從 66 版本起,當
keypress事件物件的KeyboardEvent.keyCode屬性為 0 時,其值將與KeyboardEvent.charCode相同。反之,當charCode為 0 時,它將與keyCode相同。這種映象行為與其他瀏覽器匹配,預計將解決大多數相關的相容性問題,但使用者代理嗅探可能會在某些 JavaScript 庫中引起進一步的問題。請注意,從規範的角度來看,我們已經從分離模型切換到了合併模型(請參閱 UI 事件規範中的如何確定按鍵事件的 keyCode)。
媒體、Web Audio 和 WebRTC
- 新的 AV1 影片編解碼器現已在 macOS 和 Windows(適用於 Intel 處理器)上預設啟用。Linux 支援將在 Firefox 67 中提供 (Firefox bug 1521181, Firefox bug 1452146, 和 Firefox bug 1534814)。
MediaDevices的getDisplayMedia()方法(可透過navigator.mediaDevices.getDisplayMedia()訪問)已被新增並與規範同步。該方法允許你將螢幕或螢幕的一部分捕獲為MediaStream,以進行操作或共享 (Firefox bug 1321221)。- 作為最終棄用 Firefox 特有的基於
getUserMedia()的螢幕和視窗內容捕獲方法的一步,非標準的mediaSource約束現在將screen和window這兩個值視為相同。現在,兩者都會向用戶展示一個包含螢幕和視窗的列表供其選擇 (Firefox bug 1474376)。 - 已新增
RTCOutboundRtpStreamStats.qpSum。它測量了影片軌道上傳送或接收的每一幀的量化引數值的總和。這個數字越高,流的壓縮程度可能就越高 (Firefox bug 1347070)。 - 作為在未來 Firefox 更新中實現功能策略支援過程中的一步,
getUserMedia()不能再在沒有適當內容來源的情況下使用,例如在沙盒化的<iframe>中呼叫,或從使用者在位址列中輸入的dataURL 呼叫。有關更多詳細資訊,請參閱 MediaDevices.getUserMedia() 頁面上的安全部分 (Firefox bug 1371741)。
移除
- 舊版的 WebRTC
PeerConnection.getStats()方法已被移除,相關的型別也一同移除 (Firefox bug 1328194)。
網路
Accept頭的預設值已更改為*/*(Firefox bug 1417463)。
安全
無更改。
外掛
無更改。
WebDriver 符合性 (Marionette)
API 更改
-
已新增
WebDriver:NewWindow以支援開啟新的瀏覽上下文,可以是視窗或標籤頁 (Firefox bug 1504756)。 -
如果指定的元素不屬於當前的瀏覽上下文,
WebDriver:SwitchToFrame現在會引發no such element錯誤 (Firefox bug 1517196)。 -
WebDriver:ExecuteScript和WebDriver:ExecuteAsyncScript不再支援不符合規範的scriptTimeout引數。請改用WebDriver:SetTimeout或timeouts能力來定義此值 (Firefox bug 1510929)。- 此外,現在支援無限指令碼超時 (Firefox bug 1128997)。
-
WebDriver:SetWindowRect不再在其響應中返回視窗狀態 (Firefox bug 1517587)。
錯誤修復
WebDriver:TakeScreenshot現在使用Document.documentElement的Element.clientWidth和Element.clientHeight屬性,而不是視口尺寸 (Firefox bug 1385706)。- 已應用各種修復,使視窗操作命令在不同平臺上更加可靠 (Firefox bug 1522408, Firefox bug 1478358, Firefox bug 1489955)。
附加元件開發人員的變更
API 更改
選單
- “bookmark”
type的擴充套件選單項也將出現在書籤側邊欄 (Ctrl+B) 和庫視窗 (Ctrl+Shift+B) 中 (Firefox bug 1419195)。
清單更改
無更改。
另見
- Hacks 釋出文章:Firefox 66:寂靜之聲