在絕大多數的 Chrome 版本中,我們都發現大量的更新和改善項目,包含產品、效能和網路平台的功能。本文說明 Chrome 57 將於 2 月初推出的 Beta 版淘汰和移除功能。這份清單隨時可能有所變動。
移除 BluetoothDevice.uuids 屬性
我們移除了 BluetoothDevice.uuids
屬性,以提供符合目前規格的 Web Bluetooth API。您可以呼叫 device.getPrimaryServices() 擷取所有允許的 GATT 服務。
移除金鑰產生元素
自 Chrome 49 版起,<keygen>
的預設行為已傳回空白字串,除非已授予這個頁面的權限。IE/Edge 不支援 <keygen>
,且尚未將公開信號指定為支援 <keygen>
。Firefox 已對使用者手勢設下 <keygen>
限制,但已公開支援移除這個手勢。Safari 提供 <keygen>
,且未針對持續支持的表現表達公開觀點。在 Chrome 57 版中,這個元素會遭到移除。
意圖移除 | Chrome 狀態追蹤工具 | Chromium 錯誤
移除加上前置字串的資源緩衝區管理 API
兩種方法和事件處理常式 webkitClearResourceTimings()
、webkitSetResourceTimingBufferSize()
和 onwebkitresourcetimingbufferfull
皆已淘汰,受廠商限制。自 Chrome 46 版起,便已支援這些 API 的標準版本,且該版本也淘汰了前置函式。這些功能原本是在 WebKit 中實作,但 Safari 尚未啟用。Firefox、IE 10 以上版本和 Edge 的 API 版本只有前置字元。因此,我們正著手移除 Webkit 版本。
意圖移除 | Chrome 狀態追蹤工具 | Chromium 錯誤
移除 ServiceWorkerMessageEvent,改用 MessageEvent
HTML 規格擴充了 MessageEvent
,允許使用 ServiceWorker
做為 source
屬性的類型。client.postMessage()
和自訂訊息事件的建立方式已變更為使用 MessageEvent
,而非 ServiceWorkerMessageEvent
。已移除 ServiceWorkerMessageEvent
。
意圖移除 | Chrome 狀態追蹤工具 | Chromium 錯誤
移除 Webkit 前置字串的 IndexedDB 全域別名
在 Chrome 11 左右處,IndexedDB
進入點和全域建構函式以 webkit
前置字元的形式公開。非前置字元版本已在 Chrome 24 中新增,加上前綴的版本已在 Chrome 38 淘汰。受影響的介面如下:
webkitIndexedDB
(主要進入點)webkitIDBKeyRange
(不可呼叫的全域建構函式,但有實用的靜態方法)webkitIDBCursor
webkitIDBDatabase
webkitIDBFactory
webkitIDBIndex
webkitIDBObjectStore
webkitIDBRequest
webkitIDBTransaction
(非呼叫的全域建構函式)
意圖移除 | Chrome 狀態追蹤工具 | Chromium 錯誤
WebAudio:移除包含前置字串的 AudioContext 和 OfflineAudioContext
自 2011 年中起,Chrome 已支援 WebAudio
,包括 AudioContext
。
在後一年新增了 OfflineAudioContext
。由於標準介面已支援標準介面的時間,以及 Google 對移除前置字串功能的長期目標,這些介面的前置字串版本已自 2014 年底起淘汰,目前現已移除。
意圖移除 | Chrome 狀態追蹤工具 | Chromium 錯誤
淘汰並移除 webkitCancelRequestAnimationFrame
webkitCancelRequestAnimationFrame()
方法是已過時的供應商專用 API,而 Chromium 長期支援標準 cancelAnimationFrame()
。因此,我們即將移除 Webkit 版本。
意圖移除 | Chrome 狀態追蹤工具 | Chromium 錯誤
淘汰 usemap 屬性時不區分大小寫的比對功能
usemap
屬性先前定義為無大小寫。遺憾的是,這項實作方法十分複雜,因此所有瀏覽器都無法正確實作這項功能。研究建議,這類複雜的演算法不需要使用,甚至不需要使用 ASCII 不區分大小寫的比對。
因此,我們更新了規格,以便套用區分大小寫的比對。舊行為已在 Chrome 57 版中淘汰,且預計在 Chrome 58 版中遭到移除。
意圖移除 | Chrome 狀態追蹤工具 | Chromium 錯誤
淘汰服務工作站中的 FileReaderSync
Service Worker 規格向來始終有 (非固定) 要求,請注意「任何類型的同步要求不得在 Service Worker 中啟動」,以免封鎖 Service Worker。封鎖服務工作處理程序會封鎖來自受控網頁的所有網路要求。很抱歉,FileReaderSync
API 一直在服務 Worker 中提供。
目前只有 Firefox 和 Chrome 在服務 Worker 中公開 FileReaderSync
。
根據 Firefox 在規格討論中提出的協議應修正。Chrome 59 預計會移除這項功能。
意圖移除 | Chrome 狀態追蹤工具 | Chromium 錯誤
淘汰 HTMLEmbedElement 和 HTMLObjectElement 的舊版呼叫端
介面有舊版呼叫端,表示執行個體可被呼叫為函式。HTMLEmbedElement
和 HTMLObjectElement
目前支援這項功能。Chrome 57 版已淘汰這項功能。移除後 (預計在 Chrome 58 版中),呼叫將擲回例外狀況。
這項異動將讓 Chrome 符合近期規格異動。Edge 或 Safari 不支援舊版行為,因此會從 Firefox 中移除。
意圖移除 | Chrome 狀態追蹤工具 | Chromium 錯誤
淘汰「交涉」的 RTCRtcpMuxPolicy
Chrome 會使用 rtcpMuxPolicy
指定針對 RTP/RTCP 多工處理的偏好政策。在 Chrome 57 版中,我們已將預設 rtcpMuxPolicy
變更為「必要」,並已淘汰「交涉」,原因如下:
- 非混合的 RTCP 會使用額外的網路資源。
- 移除「交涉」可簡化 API 介面,因為「RtpSender」/「RtpReceiver」只會有單一傳輸方式。
在 Chrome 57 版中,「協議」功能已淘汰。我們認為這屬於非破壞性變更,因為使用者將收到淘汰訊息,但仍然可以建立 RTCPeerConnection
。Chrome 63 不支援這項功能。
停止支援子資源要求中的嵌入憑證
就安全的角度來看,將憑證硬式編碼為子資源要求並不容易,因為過去駭客會藉此暴力憑證。當已經取得憑證的子資源要求進入內部 IP 範圍 (例如路由器等),這類危險性就會更加嚴重。由於使用率低,關閉這個 (小) 安全孔似乎是很合理的做法。
開發人員可嵌入不需要基本/摘要驗證的資源,改用 Cookie 和其他工作階段管理機制。