Chrome 52 淘汰和移除 API

喬梅利
Joe Medley

在絕大多數的 Chrome 版本中,我們都發現大量的更新和改善項目,包含產品、效能和網路平台的功能。本文說明 Chrome 52 的異動內容,這是截至 6 月 9 日為止的 Beta 版。這份清單隨時可能有所變動。

淘汰 MediaStream 已結束的事件、屬性和既有屬性

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

意圖移除 | Chrome 狀態追蹤工具 | Chromium 錯誤

大約三年內,ended 事件和 onended 事件處理常式都未納入 WebRTC 規格。想要觀看事件的開發人員應使用 MediaStreamTracks,而非 MediaStreams

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

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

重點摘要:針對未對應至跨來源 iframe 內部輕觸的觸控事件,Chrome 會開始禁止顯示彈出式視窗及其他敏感事件。

意圖移除 | Chrome 狀態追蹤工具 | Chromium 錯誤

觸控事件本身的性質非常相似,與相應的滑鼠事件相比,觸控事件可能不夠明確。舉例來說,如果使用者在螢幕上滑動手指,是否會滑動切換鈕或捲動檢視畫面?iframe 中的部分第三方內容利用這個明確性,刻意停用所屬網頁的捲動功能。

為因應這一點,系統將禁止跨來源 iframe 的觸控事件執行彈出式視窗和其他敏感作業。觸控事件仍會照常運作。

淘汰 postMessage() 的超載

重點摘要:針對 postMessage() 介面上不需要和很少使用的變化版本,我們已淘汰,特別是 postMessage(message, transferables, targetOrigin)

意圖移除 | Chrome 狀態追蹤工具 | Chromium 錯誤

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

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

此清單中的最後一個項目是規格的演進和實作歷史上的意外狀況。這個版本很少使用,因此將於日後淘汰。這適用於 window.postMessage()worker.postMessage()

Chrome 54 預計會移除這項功能。

移除對以下項目中的 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 仍可使用。

意圖移除 | Chrome 狀態追蹤工具 | Chromium 錯誤

為了讓 Chrome 符合 UIEvents 規格,我們將移除非主要滑鼠按鈕的點擊事件。非主要的滑鼠按鈕會因裝置而異。通常是指按住滑鼠或滑鼠左鍵以外的任何內容。請注意,您仍可使用傳送至事件 (例如 mousedownmouseup) 的 MouseEvent.button 屬性擷取精確的按鈕。

移除 requestAutocomplete()

requestAutocomplete() 函式可讓瀏覽器的自動填入功能視需求填入表單。然而超過兩年,只有 Blink 支援這項功能,且使用率偏低。基於這些原因,requestAutocomplete() 已在 Chrome 52 中移除。

希望移除