Chrome 60 Beta發布,新特性都在這了!
除非另外注明,否則,下面介紹的更改均適用于最新 Chrome Beta 渠道版(Android、Chrome 操作系統、Linux、Mac 和 Windows)。
Paint Timing API
盡管并沒有公認的標準能夠在所有情況下完美地反映頁面的加載時間,First Paint and First Contentful Paint 仍然為衡量頁面加載期間關鍵的用戶參與環節提供了極具價值的數據。為了讓開發者更好地洞察網站的加載性能,全新的 Paint Timing API 公開了捕獲 First Paint and First Contentful Paint 的指標。
CSS font-display
可下載的網頁字體經常用于創建視覺效果更豐富多彩的網頁體驗。歷史上,為了確保視覺正確性,Chrome 一直延遲渲染文本,直至有指定的字體可用。然而,在網絡連接不佳的情況下,下載字體可能需要幾秒鐘的時間,嚴重延遲了用戶查看內容的時間。現在,Chrome 支持 CSS @font-face 描述符和相應的 font-display 屬性,允許開發者指定 Chrome 在下載字體時如何以及何時顯示文本內容。
Credential Management API 的改進
為響應廣大開發者的反饋,也為了使 Credential Management API 更易于用于所有網站,現在已不再需要自定義 fetch () 來訪問存儲的密碼。從 Chrome 60 開始,用戶的密碼現在將直接作為 PasswordCredential 的一部分返回。
此外,為了更好地呼應我們在網絡身份驗證工作組中所做的工作,我們還做出了一系列更改。這包括棄用 requireUserMediation,已將其重命名為 preventSilentAccess。
此版本中的其他特性
-
現在,桌面版的 Chrome 也支持 Payment Request API。
-
現在,網站可以通過使用 Payment Request API 的原生 Android 支付應用來收款。
-
現在支持對象的 Rest 和 Spread 屬性,這簡化了對象的合并和淺度克隆以及各種不可變對象圖案的實現。
-
借助于全新 Web Budget API,具有推送通知權限的網站將能夠發送有限數量的推送消息,這些推送消息可以觸發同步數據或關閉用戶已在其他設備上處理過的通知(而無需顯示對用戶可見的通知)之類的后臺任務。
-
現在支持全新 Web Push Encryption 格式,可使用 PushManager.supportedContentEncodings 來檢測該格式的使用位置。
-
現在提供 PushSubscription.expirationTime,可通知網站某個訂閱何時過期以及是否過期。
-
為了改善性能和可預測性,現在,每個 AnimationFrame 傳遞一次 pointermove 和 mousemove 事件,這與 scroll 和 TouchEvents 事件的當前功能相符。
-
現在提供 :focus-within CSS 偽類,會影響:focus 偽類影響的任何元素以及受 :focus 影響的子類的任何元素。
-
為了提供一種捕獲編輯操作的增強方法,InputEvent 現在允許通過腳本來管理用戶輸入,豐富了提供給可編輯元素的細節。
-
為了提高安全性,現在,僅在幀嘗試顯示其已收到用戶手勢或用戶交互時,才會顯示用戶離開網站時所觸發的 BeforeUnload 對話框,盡管仍然會分派 BeforeUnloadEvent。
-
現在,可以隨 MP4 (ISO BMFF) 容器 一起使用 VP9 這一開放、免版權的視頻編碼格式,該格式需要下面提到的最新 VP9 字符串格式。
-
現在提供一種全新的 VP9 字符串格式,各種與媒體有關的 API 均接受該格式,這使得開發者能夠描述各種視頻編解碼器中共用、但尚未公開的編碼屬性。
棄用和互操作性的改善
-
getElementsByTagName () 現在接受符合限定條件的名稱,以響應針對 DOM 規范的一項更新。
-
現在,/deep/ 的行為類似于 descendant 組合符,事實上就是一個空操作。
-
為了改善用戶體驗,現在,如果用戶未明確點按幀或任何嵌入幀,則對 Navigator.vibrate () 的調用會立即返回 false,這與 cross-origin iframes 的行為相同。
-
WEBKIT_KEYFRAME_RULE 和 WEBKIT_KEYFRAMES_RULE 已移除,代之以無前綴的標準化 API,即 KEYFRAME_RULE 和 KEYFRAMES_RULE。
-
現已從 document.createEvent () 移除對非標準 WebKitAnimationEvent 和 WebKitTransitionEvent 的支持。
-
為了更好地符合規范,NodeIterator.filter 和 TreeWalker.filter 不再包裝 JavaScript 對象,并且已從 window.NodeFilter 移除 .prototype。
-
正在移除 RTCPeerConnection.getStreamById (),推薦使用 polyfill 代替原方法。
-
SVGPathElement.getPathSegAtLength () 已被棄用,因為它已從 SVGPathElement 規格中移除。
-
已從 Fetch API 移除 Headers.prototype.getAll (),以適應從規范中移除該方法。