Firefox 54 開發者釋出說明
Firefox 54 於 2017 年 6 月 13 日釋出。本文列出了對 Web 開發者有用的主要變更。
面向網路開發者的變更
開發者工具
- 網路請求摘要現在包含實際傳輸的資料量(“傳輸大小”),效能分析檢視也包含(Firefox bug 1168376)。
- 網路請求標頭檢視現在連結到 MDN 上的相關文件(Firefox bug 1320233)。
CSS
clip-path現在支援 基本形狀(Firefox bug 1247229)。- Firefox 對 CSS Flexbox 和 CSS 對齊的實現,現已根據更新後的規範語言,實現了屬性
align-items和align-self之間的互動,以及justify-items和justify-self之間的互動(Firefox bug 1340309)。 - 型別為
checkbox和radio的<input>元素,當設定了-moz-appearance: none時,現在是替換元素,以與其他瀏覽器相容(Firefox bug 605985)。 - 之前,一個帶有
display:inline-block樣式且其子元素為HTMLInputElement型別並設定了display:block的元素,會有一個錯誤的基線(Firefox bug 1330962)。現已修復。 - 當 Mozilla 引入 Firefox 的專用內容執行緒(透過 Electrolysis 或 e10s 專案)時,對
<option>元素的樣式支援暫時被移除。從 Firefox 54 開始,您可以透過color和background-color屬性,重新為<option>元素設定前景色和背景色。更多資訊請參閱(Firefox bug 910022)。請注意,由於缺乏對比度,在 Linux 上此功能仍被停用(請參閱 Firefox bug 1338283 以瞭解此方面的進展)。 - CSS Animations 現在會在動畫過早中止時,按預期傳送
animationcancel事件(Firefox bug 1302648)。 - 在某些情況下,透明顏色(即 alpha 通道為 0 的顏色)會被序列化為
transparent顏色關鍵字;此問題已修復,Firefox 現在遵循規範(以及其他瀏覽器的實現)。更多資訊請參閱(Firefox bug 1339394)。 - 專有的
:-moz-table-border-nonzero偽類不再可用於 Web 內容;它現在僅限於 Firefox 的內部 UA 樣式表(Firefox bug 1341925)。 - [css-grid] 具有 overflow:auto 的內在內容在網格中重疊(Firefox bug 1348857)。
- [css-grid] 具有內在比例的百分比大小的網格項的傳輸最小尺寸貢獻(Firefox bug 1349320)。
JavaScript
- 在帶有
"u"(Unicode)和"i"(不區分大小寫)標誌的RegExp中,\b和\B現在將 U+017F(LATIN SMALL LETTER LONG S)和 U+212A(KELVIN SIGN)視為單詞字元(Firefox bug 1338373)。 - 如果
byteOffset引數超出Number.MAX_SAFE_INTEGER(>= 2 ** 53),則DataView建構函式現在會丟擲RangeError(Firefox bug 1317382)。 - 當提供的引數少於兩個時,
Date.UTC()方法已更新,以符合 ECMAScript 2017(Firefox bug 1050755)。 Function.prototype.toString()方法已更新,以匹配最新的 提議規範(Firefox bug 1317400)。
DOM 和 HTML DOM
- 已實現
URL.toJSON()方法(Firefox bug 1337702)。 URLSearchParams()建構函式現在接受一個包含字串的記錄作為 init 物件(Firefox bug 1331580)。- 在 macOS 上,當按下 control 鍵時,可列印鍵的
KeyboardEvent.key返回值已得到糾正(當按下 Command 鍵時除外)(Firefox bug 1342865)。 dom.workers.latestJSVersion首選項,該首選項主要是為了解決在 worker 中使用let存在的問題(由於 Firefox bug 855665,現已修復)已被移除(見 Firefox bug 1219523)。event.timeStamp屬性現在返回高解析度單調時間(DOMHighResTimeStamp),而不是代表毫秒為單位的 Unix 時間的值。
Web Worker 和 Service Worker
WorkerGlobalScope.close現在可用於DedicatedWorkerGlobalScope和SharedWorkerGlobalScope。此更改是為了阻止close()在 service worker 上可用,因為它不應該在那裡使用,並且呼叫時總是會丟擲異常(見 Firefox bug 1336043)。- 已實現
Window.origin屬性和WorkerGlobalScope.origin(見 Firefox bug 1306170)。 - 已實現
Client.type屬性(見 Firefox bug 1339844)。 Clients.matchAll()現在返回最近聚焦的順序的Client物件(見 Firefox bug 1266747)。- 當
Request()建構函式接收一個現有的Request物件例項來建立新例項時,已對其觀察到的行為進行了一些更改。以下新行為旨在保持安全性,同時降低建構函式丟擲異常的可能性。- 如果此物件存在於與建構函式呼叫不同的源上,則會移除
Request.referrer。 - 如果此物件具有
navigate的Request.mode,則mode值將被轉換為same-origin。
- 如果此物件存在於與建構函式呼叫不同的源上,則會移除
音訊/影片
通用
- 5.1 環繞聲播放現在預設在 Windows、macOS 和 Linux 上啟用(Firefox bug 1334508、Firefox bug 1321502 和 Firefox bug 1323659)。
媒體捕獲和流 API
- 將
MediaStream物件用作URL.createObjectURL()的輸入引數已被棄用 — 控制檯現在會顯示警告(見 Firefox bug 1334564)。建議您改用HTMLMediaElement.srcObject。
Web Audio API
AnalyserNode.getFloatFrequencyData()方法現在以-Infinity的值正確表示返回緩衝區中的靜音樣本(Firefox bug 1336098)。- 如果指定的任何值不是有限的,
AudioParam.setValueCurveAtTime()現在會丟擲TypeError異常(Firefox bug 1308437)。
加密媒體擴充套件 API
MediaKeySession.keySystem字串已從規範中移除,因此我們已將其從 Firefox 54 中移除(Firefox bug 1335555)。- 已支援使用 Clear Key 和 Widevine 在加密流中使用 VP9 編解碼器(Firefox bug 1338064)。
- 以前,MSE 僅在系統被認為“足夠快”時才允許使用 WebM/VP8 影片。現在,無論系統性能如何,始終支援播放 VP8 編碼的
webm/video媒體。
WebRTC
- TCP ICE 候選支援,最初在 Firefox 41 中新增,現在預設啟用。這允許 ICE 層考慮使用 TCP 而非首選的 UDP 進行傳輸的候選。這在 UDP 被阻止的環境中可能很有用(Firefox bug 1176382)。這篇 部落格文章更詳細地解釋了該功能。
Web 平臺移除的內容
CSS
- 移除了
unicode-bidi屬性的isolate、isolate-override和plaintext值的-moz字首版本(Firefox bug 1333675)。
HTTP
- HTTP/1 Pipelining 支援已在 Firefox 54 中移除。考慮到 pipelining 在相容性和效能方面存在問題,在向充滿 HTTP/2 和其他重要的、標準化的網路效能改進的新世界過渡之際,維護它已不再值得。
network.http.pipelining首選項(以及其他以“network.http.pipelining”開頭的首選項)現已被忽略。更多資訊請參閱(Firefox bug 1340655)。