Chrome 52 淘汰和移除 API

Joe Medley
Joe Medley

幾乎每個 Chrome 版本都會看到大量更新項目, 產品效能、效能以及網路功能 平台。本文將介紹 Chrome 52 版中的各項變更 (在 Beta 版中為 將於 6 月 9 日推出這份清單隨時可能變更。

淘汰 MediaStream 結束的事件、屬性以及 onended 屬性

TL;DR:由於 ended 事件和屬性和 onended 事件處理常式已從媒體擷取和串流規格中移除,因此已遭淘汰。

意圖移除 | Chromestatus Tracker | Chromium 錯誤

大約三年的時間,ended 事件和 onended 事件處理常式都不在 WebRTC 規格中。想要查看事件的開發人員應使用 MediaStreamTracks,而非 MediaStreams

Chrome 53 版預計會移除這項功能。

在觸控事件期間封鎖跨來源 iframe 的彈出式視窗 (輕觸手勢除外)

重點摘要:Chrome 將開始禁止在跨來源 iframe 內部輕觸的觸控事件時,禁止彈出式視窗和其他敏感作業。

意圖移除 | Chromestatus Tracker | Chromium 錯誤

觸控事件本質上就比較明確,與對應的滑鼠事件相比,可能會顯得明確。舉例來說,如果使用者在螢幕上滑動一根手指,是否有人滑動切換開關或捲動檢視畫面?iframe 中的部分第三方內容利用了這種不確定性,刻意停用所在網頁的捲動功能。

為解決這個問題,系統禁止來自跨來源 iframe 的觸控事件彈出式視窗和其他敏感作業。觸控事件會照常運作。

淘汰 postMessage() 的超載

TL;DR:我們即將淘汰 postMessage() 介面上非必要和很少使用的變化版本,特別是 postMessage(message, transferables, targetOrigin)

意圖移除 | Chromestatus Tracker | Chromium 錯誤

postMessage() 方法可讓您安全地在不同來源上的網頁指令碼之間進行通訊。WebKit/Blink 支援三種版本:

  • postMessage(message, targetOrigin)
  • postMessage(message, targetOrigin, transferables)
  • postMessage(message, transferables, targetOrigin)

這份清單中的最後一個項目,是來自規格的演進與實作歷史的意外。由於這個模型很少使用,因此將已淘汰,並在之後移除。這同時適用於 window.postMessage()worker.postMessage()

Chrome 54 版預計會移除 Chrome 版本。

移除對 X-Frame-Options 的支援 標記

重點摘要:為了遵守規格並增加其他瀏覽器的一致性,我們將移除 <meta> 標記內對 X-Frame-Options 的支援。

意圖移除 | Chromium 錯誤

X-Frame-Options HTTP 回應標頭可指出瀏覽器是否能在 <frame><iframe><object> 標記中轉譯網頁。這樣這類網頁無法嵌入其他網站,可避免網站發生點擊劫持情形。目前的 X-Frame-Options 規格已明確限制使用者代理程式在 <meta> 標記中支援這個欄位。

為遵守這項規格,並提高其他瀏覽器的一致性,我們將停止支援 <meta> 標記內的 X-Frame-Options

移除非主要按鈕點擊事件

重點摘要:非主要滑鼠點擊無法再觸發點擊事件,但仍可使用 MouseEvent.button

意圖移除 | Chromestatus Tracker | Chromium 錯誤

為了讓 Chrome 符合 UIEvents 規格,我們將移除非主要滑鼠按鈕的點擊事件。非主要滑鼠按鈕會因裝置而異。一般來說,這意味著除了右鍵或左鍵外,其他任何項目。請注意,您仍可使用傳送至 mousedownmouseup 等事件的 MouseEvent.button 屬性,擷取所點選的精確按鈕。

移除 requestAutocomplete()

requestAutocomplete() 函式允許由瀏覽器的自動填入功能視需要填寫表單。然而,這項功能目前只在 Blink 中推出,且使用率低。基於上述原因,requestAutocomplete() 已從 Chrome 52 版中移除。

意圖移除