Chrome 80 淘汰與移除功能

Joe Medley
Joe Medley

禁止在網頁關閉期間提出同步 XMLHTTPRequest()

當使用者離開或關閉網頁時,Chrome 現在會在網頁關閉期間禁止對 XMLHTTPRequest() 的同步呼叫。這適用於 beforeunloadunloadpagehidevisibilitychange

為確保在頁面卸載時將資料傳送至伺服器,建議您使用 sendBeacon()Fetch keep-alive。目前,企業使用者可以使用 AllowSyncXHRInPageDismissal 政策標記,開發人員則可以使用來源測試標記 allow-sync-xhr-in-page-dismissal,在網頁卸載期間允許同步 XHR 要求。這是暫時性的「選擇不採用」措施,我們預計會在 Chrome 88 中移除這個標記。

如要進一步瞭解這項設定和替代方案,請參閱「在關閉網頁時禁止使用同步 XMLHTTPRequest()」。

Intent to Remove | Chrome 平台狀態 | Chromium 錯誤

已淘汰 FTP 支援

Chrome 目前的 FTP 實作方式不支援加密連線 (FTPS) 和 Proxy。瀏覽器中的 FTP 使用率相當低,因此我們不再投資改善現有的 FTP 用戶端。此外,所有受影響的平台都提供功能更強大的 FTP 用戶端。

Chrome 72 已移除透過 FTP 擷取文件子資源和算繪頂層 FTP 資源的支援功能。目前,導覽至 FTP 網址會顯示目錄清單或下載項目,具體取決於資源類型。Google Chrome 74 以上版本中的錯誤導致系統不再支援透過 HTTP Proxy 存取 FTP 網址。Google Chrome 76 已完全移除 FTP 的 Proxy 支援。

Google Chrome 的 FTP 實作功能僅限於顯示目錄清單,或透過未加密的連線下載資源。

暫定設定的淘汰時程如下:

Chrome 80 (2020 年 2 月推出穩定版)

根據預設,非企業用戶端會停用 FTP,但可以使用 --enable-ftp--enable-features=FtpProtocol 指令列標記將其開啟。或者,您也可以使用 chrome://flags 中的 #enable-ftp 選項開啟這項功能。

Chrome 81 (2020 年 3 月的穩定版)

根據預設,所有 Chrome 安裝作業都會停用 FTP,但可以使用 --enable-ftp--enable-features=FtpProtocol 指令列旗標將其開啟。

Chrome 82 (2020 年 4 月的穩定版)

我們將完全停止支援 FTP。

Intent to Remove | Chrome 平台狀態 | Chromium 錯誤

禁止在網頁卸載期間顯示彈出式視窗

頁面可能不再使用 window.open() 在卸載期間開啟新頁面。Chrome 彈出式視窗封鎖程式已禁止這項操作,但現在無論是否已啟用彈出式視窗封鎖程式,這項操作都已遭到禁止。

企業可以使用 AllowPopupsDuringPageUnload 政策標記,在卸載期間允許彈出式視窗。Chrome 預計在 Chrome 82 中移除這個標記。

Intent to Remove | Chromestatus Tracker | Chromium Bug

移除非原始清除的 ImageBitmap 序列化和傳輸

當指令碼嘗試序列化或傳輸非原始清除 ImageBitmap 時,現在會發生錯誤。非原始清除 ImageBitmap 是指含有來自跨來源圖片的資料,但未經 CORS 邏輯驗證。

Intent to Remove | Chrome 平台狀態 | Chromium 錯誤

通訊協定處理作業現在需要安全內容

registerProtocolHandler()unregisterProtocolHandler() 方法現在需要安全的上下文。這些方法可重新設定用戶端狀態,讓用戶端可透過網路傳輸可能含有機密資料的資料。

registerProtocolHandler() 方法會為網頁提供機制,讓網頁在使用者同意後註冊自己來處理協定。舉例來說,以網頁為基礎的電子郵件應用程式可以註冊來處理 mailto: 配置。對應的 unregisterProtocolHandler() 方法可讓網站放棄其通訊協定處理註冊。

Intent to Remove | Chrome 平台狀態 | Chromium 錯誤

已移除 Web Components v0

Web Components v0 現已從 Chrome 中移除。Web Components v1 API 是網路平台標準,已在 Chrome、Safari、Firefox 和 (即將推出的) Edge 中推出。如需升級指南,請參閱「Web Components 更新:更多時間升級至 v1 API」。以下功能現已移除。這項停用作業涵蓋下列項目。

自訂元素

Intent to Remove | Chrome 平台狀態 | Chromium 錯誤

HTML 匯入

Intent to Remove | Chrome 平台狀態 | Chromium 錯誤

Shadow DOM

Intent to Remove | Chrome 平台狀態 | Chromium 錯誤

移除任意元素的 -webkit-appearance:button

變更 -webkit-appearance:button,使其僅可搭配 <button><input> 按鈕運作。如果 button 是針對不支援的元素指定,則該元素會顯示預設外觀。所有其他 -webkit-appearance 關鍵字都已設有這類限制。

Intent to Remove | Chrome 平台狀態 | Chromium 錯誤

廢止政策

為確保平台運作順暢,我們有時會從 Web 平台移除已完成任務的 API。我們移除 API 的原因有很多,例如:

  • 已由較新的 API 取代。
  • 這些規格會隨著規範的變更而更新,以便與其他瀏覽器保持一致。
  • 這些早期實驗在其他瀏覽器中從未成功,因此可能會增加網路開發人員的支援負擔。

其中部分變更只會影響極少數的網站。為提前減輕問題,我們會盡量提前通知開發人員,讓他們進行必要變更,確保網站正常運作。

Chrome 目前有 淘汰和移除 API 的程序,主要步驟如下:

  • blink-dev 郵寄清單上發布公告。
  • 在 Chrome 開發人員工具控制台中設定警告,並在偵測到網頁使用情形時提供時間刻度。
  • 請等待並監控,當使用率下降時再移除該功能。

您可以使用 已淘汰的篩選器 ,在 chromestatus.com 上查看所有已淘汰的功能清單,也可以套用已移除的篩選器,查看已移除的功能。我們也會在這些文章中總結部分變更、原因和遷移路徑。