在幾乎所有版本的 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 規格,我們會移除非主要滑鼠按鈕的點擊事件。非主要滑鼠按鈕會因裝置而異。一般來說,這指的是滑鼠右鍵或左鍵以外的按鈕。請注意,您仍可使用傳送至 mousedown
或 mouseup
等事件的 MouseEvent.button
屬性,擷取點選的確切按鈕。
移除 requestAutocomplete()
requestAutocomplete()
函式可讓瀏覽器的自動填入功能視需要填寫表單。但這項功能推出兩年多來,只支援 Blink,且使用率偏低。基於這些原因,requestAutocomplete()
已在 Chrome 52 版中移除。