Firefox 55 開發者版本說明

Firefox 55 於 2017 年 8 月 8 日釋出。本文列出了對 Web 開發者有用的主要更改。

面向網路開發者的變更

開發者工具

HTML

CSS

SVG

JavaScript

API

新 API

  • 後臺任務協作排程 API(也稱為後臺任務 APIrequestIdleCallback API)自 Firefox 53 以來一直透過首選項提供,現已預設啟用。此 API 允許你安排任務在瀏覽器確定下次重繪前有空閒時間時執行,這樣你的程式碼就可以利用這段時間而不會造成明顯的效能延遲(Firefox bug 1314959)。
  • WebVR 1.1 API 現已在 Windows 上預設開啟(並在 Nightly 版本的 macOS 上可用)。該 API 向 Web 應用暴露虛擬現實裝置——例如 Oculus Rift 或 HTC Vive 等頭戴式顯示器——使開發者能夠將來自顯示器的位置和移動資訊轉換為在 3D 場景中的移動,並將內容呈現到此類顯示器中。
  • 新增了 Intersection Observer API——它提供了一種非同步觀察目標元素與祖先元素或頂級文件視口交集變化的方法(Firefox bug 1321865)。

DOM

DOM 事件

Selection API

Worker

Service Worker/推送

Web Audio API

  • 一個非標準的 AudioContext 介面建構函式(它接受一個字串列舉值,指示上下文的使用目的)在提供了 options 引數時會導致丟擲錯誤。我們已經移除了這個非標準的建構函式。但請注意,Firefox 尚不支援 options 引數,目前會忽略它(Firefox bug 1361475)。

WebRTC

  • 如果源裝置提供立體聲,getUserMedia() 現在預設提供立體聲音訊流;明確請求單聲道輸入的支援將在 Firefox 56 中提供。這目前僅在桌面上有效;移動版 Firefox 當前不支援立體聲音訊輸入源(Firefox bug 971528)。
  • getUserMedia()媒體能力、約束和設定中的 autoGainControlnoiseSuppression 現已與規範匹配;之前它們帶有 moz 字首(Firefox bug 1366415)。
  • 當使用空約束集呼叫 getUserMedia() 時,之前會錯誤地返回 NotSupportedError 而不是 TypeError。此問題已修復(Firefox bug 1349480)。
  • 新增了以下 WebRTC 統計資訊:framesEncodedpliCountnackCountfirCountFirefox bug 1348657)。
  • RTCInboundRTPStreamStats 字典中原名為 mozRtt 的欄位已重新命名為 roundTripTime 以匹配規範;此外,其行為已調整以符合標準:它包含一個雙精度浮點值,該值基於 RTCP 接收方報告中的 RTCP 時間戳估算往返時間,單位為秒(遵循 RFC 3550, section 6.4.1 中描述的演算法)。(Firefox bug 1344970)。但請注意,此屬性即將移動到另一個字典(RTCRemoteInboundRTPStreamStats)(Firefox bug 1380555)。
  • RTCRTPStreamStats 字典現在包含 firCountpliCountnackCount 欄位。這些欄位返回可用於確定連線可靠性的底層資訊(Firefox bug 1348657)。
  • RTCOutboundRTPStreamStats 字典現在包含 framesEncoded 欄位,該欄位報告已為該流成功編碼的幀數;利用此資訊,你可以計算幀率(Firefox bug 1348657)。
  • 在 Android 上,現在有一個首選項可以開啟硬體影片編碼,以提高視訊通話效能並節省電池。此功能將在 Firefox 56 中預設啟用(Firefox bug 1265755)。

Encrypted Media Extensions API

  • 儘管規範不允許,但 Firefox 目前允許在不安全的上下文中使用加密媒體擴充套件(Encrypted Media Extensions)。這種情況將在不久的將來改變,從 Firefox 55 開始,當出現這種情況時,會在網路控制檯中輸出棄用警告。(Firefox bug 1361000)。
  • 規範強制要求,傳遞給 Navigator.requestMediaKeySystemAccess()suggestedConfigurations 引數中必須至少包含一個 MediaKeySystemCapabilities 物件,但 Firefox 目前並未強制執行此要求。從 Firefox 55 開始,當指定任何音訊或影片配置但未指定支援的編解碼器時,網路控制檯會輸出警告。不久之後,若未能為音訊和/或影片包含有效配置將丟擲異常(Firefox bug 1368683)。

WebGL

安全

外掛

  • Flash 內容現在是“點選以啟用”(Firefox bug 1317856)。這項改動已立即對所有 Nightly 使用者生效,並對 50% 的 beta 使用者生效。對於 Firefox 55 發行版,計劃在釋出後 2 周為 5% 的使用者啟用,釋出後 4 周為 25% 的使用者啟用,釋出後 6 周為 100% 的使用者啟用(Firefox bug 1365714)。
  • Flash 和其他外掛不能再從除 http://https:// 之外的任何 URL 協議方案載入(Firefox bug 1335475)。

其他

  • Linux 上的 Firefox 現在可以使用 -headless 標誌以無頭模式執行(參見 Firefox bug 1356681)。

Web 平臺移除的內容

HTML

  • xml:base 屬性不能再用於為 style 屬性中出現的路徑設定基礎 URL,例如 —

    <div xml:base="https://example.com/" style="background:url(picture.jpg)"></div>Firefox bug 1350521)。

  • 由於沒有其他瀏覽器支援,<style> 元素的 scoped 屬性在 Firefox 55+ 的內容文件中已被隱藏在一個首選項(layout.css.scoped-style.enabled)之後。

  • Firefox 已移除對 <meta> 元素的 http-equiv 屬性的一個鮮為人知的值 MSThemeCompatible 的支援。沒有其他現代瀏覽器支援它,並且它導致了相容性問題(Firefox bug 966240)。

CSS

API

SVG

  • SVGZoomEventSVGZoomEvents 介面已從 SVG2 規範和 Gecko 中移除,同時移除的還有 onzoom <svg> 屬性(Firefox bug 1314388)。

面向附加元件和 Mozilla 開發者的變更

WebExtensions