在幾乎所有版本的 Chrome 中,我們都看到產品、效能和網路平台功能的更新和改善幅度相當顯著。本文將說明 Chrome 59 中淘汰和移除的項目,該版本目前處於 Beta 版階段,截至 4 月 27 日。這份清單內容隨時可能有所變動。
暫時停用部分 blob 的 navigator.sendBeacon()
navigator.sendBeacon()
函式自 Chrome 第 39 版起開放使用。如同最初實作時,函式的 data
引數可包含任何任意 Blob,其類型不屬於 CORS 安全清單。我們認為這是潛在的安全威脅,但目前尚未有人嘗試利用這項漏洞。由於我們暫時沒有合理的即時修正方式,因此 sendBeacon()
無法再針對類型不在 CORS 安全清單中的 Blob 叫用。
雖然這項異動已在 Chrome 60 中實施,但後來已合併回 Chrome 59。
從 WebVR 中移除未納入修訂版規格中的功能
WebVR 目前的實作方式最初是在 Chrome 52 中實作,其中包含幾種方法和屬性,但這些方法和屬性不會出現在最終規格中。為 Chrome 56 開始的Origin Trial 新增了淘汰訊息,以便針對這些功能提供淘汰訊息。這些功能現已移除。包括:
VRDisplay.getPose()
VRDisplay.resetPose()
VRDisplay.isConnected
VRDisplayCapabilities.hasOrientation
VREyeParameters.fieldOfView
Intent to Experiment | Chrome 狀態追蹤器 | Chromium 錯誤 | 目前原點試驗結果
從服務工作站移除 FileReaderSync
Service Worker 規格一向有 (非規範性的) 附註:「任何類型的同步要求都不得在 Service Worker 內啟動」,以免阻斷 Service Worker (因為阻斷 Service Worker 會阻斷受控網頁的所有網路要求)。不過,服務工作程仍可使用 FileReaderSync
等同步 API。FileReaderSync
已在 Chrome 57 版淘汰。這項功能已在 Chrome 59 版中移除。
Intent to Deprecate | Chromestatus Tracker | Chromium Bug
移除非標準 DeviceOrientation 事件初始化函式
瀏覽器 API 的趨勢已從初始化函式轉向物件建構函式,DeviceOrientation 事件規格的最新版本也遵循這項趨勢,要求 DeviceOrientationEvent
和 DeviceMotionEvent
都具備建構函式。
由於 Chrome 會在 Chrome 59 中預設啟用這些建構函式,因此舊版初始化函式 initDeviceMotionEvent()
和 initDeviceOrientationEvent()
也已移除。Edge 已淘汰初始化函式,Firefox 也已提供建構函式。
Intent to Remove | Chromium Bug
移除懸停/任何懸停媒體查詢的「on-demand」值
大約一年前,hover/any-hover 媒體查詢的「on-demand」值已從規格中移除。因此,這些媒體查詢已在 Chrome 59 版中移除。
Intent to Remove | Chromestatus Tracker | Chromium Bug
移除 MediaStreamTrack.remote
在 Chrome 48 中,MediaStreamTrack.remote
屬性已新增,以支援Media Capture and Streams API,目的是讓 JavaScript 知道 WebRTC MediaStreamTrack
是來自遠端來源還是本機來源。
自那時起,這個屬性已從規格中移除。自 Chrome 59 起,系統不再支援此屬性。
移除使用 document.createEvent() 建立 ProgressEvent 的支援
舊版 DOM 規格需要實作 document.createEvent("ProgressEvent")
。不過,使用率一直偏低,且 Gecko 和 Webkit 已移除對這項功能的支援。這項事件本身已在今(2019)年 3 月從規格中移除。
為符合平台和最新規格,ProgressEvent
現已從 Chrome 中移除。
移除 SVGTests.required 功能
在 SVG 第一版規格中,應用程式可以呼叫 DOMImplementation.hasFeature
,以驗證是否支援特定 SVG 介面。許多 SVG 元素都包含 requiredFeatures
屬性,且會傳回相同的資訊。
在 SVG2 中,DOMImplementation.hasFeature
屬性一律會傳回 true。因此,requiredFeatures
不再執行任何有用的操作。由於已從規格中移除,因此在 Chrome 54 中已淘汰,並且現已移除。