Chrome 53 淘汰和移除 API

Joe Medley
Joe Medley

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

逐步停用 DHE 加密金鑰

重點摘要:Chrome 53 桌面版已移除 DHE 加密法,因為這些加密法無法長期使用。伺服器應採用 ECDHE (如果可用),或採用 plain-RSA 加密 (如果無法使用)。

Intent to Remove | Chromestatus 追蹤工具 | Chromium 錯誤

去年,我們將 Chrome 的 TLS Diffie-Hellman 群組大小下限從 512 位元提高至 1024 位元;不過,1024 位元無法長期使用。指標報告指出,Chrome 偵測到的 DHE 連線中,約有 95% 使用 1024 位元 DHE。這項限制與 TLS 中 DHE 的協商方式相結合,使得難以超越 1024 位元。

雖然有可修正此問題的規格草稿,但仍屬於草稿階段,需要同時變更用戶端和伺服器。同時,ECDHE 也已廣泛實作及部署。伺服器應升級至 ECDHE (如有)。否則,請確保已啟用純 RSA 加密套件。

自 Chrome 51 起,以 DHE 為基礎的密碼已淘汰。在 Chrome 53 中,我們將移除電腦版的支援功能。

FileError 淘汰警告

重點摘要:Chrome 54 預計會移除已淘汰的 FileError 介面。將 err.code 的參照替換為 err.nameerr.message

Intent to Remove | Chromestatus 追蹤工具 | Chromium 錯誤

目前版本的 File API 標準不包含 FileError 介面,且該介面已於 2013 年停用。在 Chrome 53 中,開發人員工具主控台會顯示以下淘汰警告:

「FileError」已淘汰,並將在 54 版中移除。請使用錯誤的「name」或「message」屬性,而非「code」。

這在不同情況下會產生不同的效果。

  • FileReader.errorFileWriter.error 會是 DOMException 物件,而非 FileError 物件。
  • 對於非同步 FileSystem 呼叫,ErrorCallback 會傳遞 FileError.ErrorCode,而非 FileError
  • 對於同步 FileSystem 呼叫,系統會擲回 FileError.ErrorCode,而非 FileError

這項變更只會影響依賴直接比較錯誤例項程式碼 (e.code) 與 FileError 列舉值 (FileError.NOT_FOUND_ERR 等) 的程式碼。針對硬式編碼常數 (例如 e.code === 1) 進行測試的程式碼,可能會向使用者回報錯誤的錯誤。

幸好,FileErrorDOMErrorDOMException 錯誤類型都共用 namemessage 屬性,可為錯誤案例提供一致的名稱 (也就是 e.name === "NotFoundError")。程式碼應改用這些屬性,這樣就能在不同瀏覽器上運作,且在移除 FileError 介面後仍可繼續運作。

FileError 預計會在 Chrome 54 中移除。

移除 <input type=search> 的結果屬性

重點摘要:results 屬性會遭到移除,因為該屬性不屬於任何標準,且在各瀏覽器中實作方式不一致。

Intent to Remove | Chromestatus Tracker | Chromium Bug

results 值僅在 webkit 中實作,且在實作此值的瀏覽器中,其行為表現不一致。舉例來說,Chrome 會在輸入框中加入放大鏡圖示,而 Safari 桌面版則會透過點選放大鏡圖示,控制彈出式視窗中顯示的先前搜尋次數。由於這並非任何標準的一部分,因此已淘汰。

如果您仍需要在輸入欄位中加入搜尋圖示,則必須在元素中加入一些自訂樣式。方法是加入背景圖片,並在輸入欄位上指定左邊邊距。

    input[type=search] {
      background: url(some-great-icon.png) no-repeat scroll 15px 15px;
      padding-left:30px;
    }
 ```   

This attribute has been deprecated since Chrome 51.