Chrome 52 淘汰和移除 API

Joe Medley
Joe Medley

在幾乎所有版本的 Chrome 中,我們都看到產品、效能和網路平台功能的更新和改善幅度相當顯著。本文將說明 Chrome 52 的變更內容,該版本目前處於 Beta 版階段,截至 6 月 9 日為止。這份清單內容隨時可能有所變動。

淘汰 MediaStream 結束事件和屬性,以及 onended 屬性

重點摘要:ended 事件和屬性,以及 onended 事件處理常式已淘汰,因為這些項目已從 Media Capture 和 Streams 規格中移除。

Intent to Remove | Chromestatus Tracker | Chromium Bug

ended 事件和 onended 事件處理常式已約三年未納入 WebRTC 規格。如要監控事件,開發人員應使用 MediaStreamTracks,而非 MediaStreams

預計在 Chrome 53 版中移除。

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

重點摘要:Chrome 將開始禁止在觸控事件中顯示彈出式視窗和其他敏感操作,前提是這些事件不對應於跨來源 iframe 內的輕觸動作。

Intent to Remove | Chromestatus Tracker | Chromium Bug

就本質而言,觸控事件與對應的滑鼠事件相比,可能會造成模糊的結果。舉例來說,如果使用者在螢幕上滑動手指,是滑動切換鈕,還是捲動檢視畫面?有些 iframe 中的第三方內容會利用這種模糊的情況,故意停用包含頁面的捲動功能。

為避免這種情況發生,系統會禁止在跨來源 iframe 的觸控事件中顯示彈出式視窗和其他敏感操作。touchend 事件會繼續以相同方式運作。

淘汰 postMessage() 的超載

重點摘要:我們將淘汰 postMessage() 介面中不必要且使用率偏低的變化版本,具體來說就是 postMessage(message, transferables, targetOrigin)

Intent to Remove | Chromestatus Tracker | Chromium Bug

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

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

這份清單中的最後一個項目是規格演進和實作歷史的意外結果。由於不常使用,因此將淘汰並稍後移除。這適用於 window.postMessage()worker.postMessage()

預計會在 Chrome 54 中移除。

移除 標記

TL;DR:為了符合規格,並提高與其他瀏覽器的一致性,我們將移除 <meta> 標記內的 X-Frame-Options 支援功能。

Intent to Remove | Chromium Bug

X-Frame-Options HTTP 回應標頭會指出瀏覽器是否可以在 <frame><iframe><object> 標記中顯示網頁。這可讓網站避免遭受點按劫持,因為這類網頁無法嵌入其他網站。目前版本的 X-Frame-Options 規格明確限制使用者代理程式在 <meta> 標記中支援此欄位。

為遵守規格並提高與其他瀏覽器的一致性,我們將移除 <meta> 標記內的 X-Frame-Options 支援功能。

移除非主要按鈕點擊事件

TL;DR:非主要滑鼠點擊不再觸發點擊事件,但 MouseEvent.button 仍可用。

Intent to Remove | Chromestatus Tracker | Chromium Bug

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

移除 requestAutocomplete()

requestAutocomplete() 函式可讓瀏覽器的自動填入功能視需要填寫表單。但這項功能推出兩年多來,只支援 Blink,且使用率偏低。基於這些原因,requestAutocomplete() 已在 Chrome 52 版中移除。

移除意圖