Chrome 53 淘汰和移除 API

Joe Medley
Joe Medley

在幾乎每個版本的 Chrome 中,我們都會看到產品、效能以及網路平台的大量更新和改善項目。本文說明 Chrome 52 版的異動內容,我們在 6 月 9 日推出了 Beta 版。這份清單內容隨時可能有所變動。

逐步淘汰 DHE 加密金鑰

重點摘要:Chrome 53 桌面版已移除 DHE 架構的加密法,因為這些加密法無法長期使用。伺服器應採用 ECDHE (如有),否則應採用純 RRSA 加密。

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 屬性會遭到移除,因為該屬性不屬於任何標準,且在各瀏覽器中實作方式不一致。

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

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.