Chrome 53 淘汰和移除 API

喬梅利
Joe Medley

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

逐步淘汰脫氫異雄固酮 (DHE) 加密技術

重點摘要:Chrome 53 版桌面版已移除 DHE 型加密,因為這類加密不足以長期使用。伺服器應採用 ECDHE (如果有的話);如果沒有 ECDHE,則應使用 RSA 加密套件。

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

去年,我們使用 Chrome 的「TLS Diffie-Hellman」群組最小規模,從 512 位元至 1024 位元;不過,1024 位元無法長期滿足這個需求。指標顯示,在 Chrome 偵測到的 DHE 連線中,約有 95% 使用 1024 位元 DHE。這個架構結合了 DHE 在傳輸層安全標準 (TLS) 中的交涉方式,使得 1024 位元難以遷移。

雖然已有草稿規格可以解決這個問題,但這仍為草稿,且用戶端和伺服器都必須變更。同時,ECDHE 已廣泛導入及部署。如果可以的話,伺服器應升級至 ECDHE。否則,請確認已啟用 RSA 加密套件。

DHE 型加密技術自 Chrome 51 版起已淘汰。電腦版 Chrome 53 將停止支援電腦版。

FileError 淘汰警告

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

意圖移除 | Chrome 狀態追蹤工具 | 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 介面本身移除後,它們會繼續運作。

Chrome 54 預計將移除 FileError

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

TL;DR:由於 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.