Chrome 59 Beta 新特性

Chrome CSS Chromium Mac Google開發者 2017-05-05

除非另外註明,否則下面介紹的更改均適用於最新 Chrome Beta 渠道版(Android、Chrome 操作系統、Linux、Mac 和 Windows)。

無外設 Chromium

無外設 Chromium 用於在沒有界面或外設的自動化環境中運行 Chromium。舉例來說,它支持的用例有通過 Selenium 自動執行設備測試以及將網頁轉換成 PDF。

為無外設 Chromium 提供技術支持的是 Chromium 和 Blink 所提供的各類現代網絡平臺功能。目前支持 Mac 和 Linux 平臺,不久即會在 Windows 平臺上進行技術實現。

macOS 上的本機通知

Chrome 以往自帶通知系統,供網絡和擴展程序開發者向用戶發送通知。許多用戶對 macOS 推出自有豐富通知系統的反應是,要求整合這兩個通知系統。

在 Chrome 59 中,當開發者通過 Notifications API 或 chrome.notifications 發送通知時,macOS 本機通知系統會直接顯示這些通知。這一變化改善了用戶體驗,但現在不建議使用某些使用率較低的 API 功能,因為它們會造成 macOS 上體驗下降,這在遷移指南中有相關記述。

Chrome 59 Beta 新特性

與本機通知系統整合前後的 Chrome 通知對比。

服務工作線程導航預加載

Service WorkerNavigation Preload API 讓瀏覽器能夠在服務工作線程啟動時預加載導航請求。這些請求會先行啟動,然後才會在服務工作線程中執行 fetch 事件處理程序,對目標網址進行攔截。這使服務工作線程能夠獲取 fetch 事件處理程序內的 preload 響應,從而讓工作線程能夠以最低延遲處理導航請求。

此版本中的其他特性

  • 開發者現在可以使用 MediaError.message 獲取由 <audio> 或 <video> 產生的 MediaError 的更多詳情。

  • WritableStreams 現在作為 Streams API 的一部分提供,用於處理數據流,同時提供標準抽象,以便向內置背壓和隊列的接收器寫入流式傳輸數據。

  • Streams API 進行了擴展,具備了在 ReadableStreams 和WritableStreams 之間(通過 pipeTo() 和 pipeThrough() 方法)建立管道的能力,從而簡化了流式傳輸數據的使用。

  • 開發者現在可以利用 getInstalledRelatedApps 函數,通過建議提供推送通知的時間和平臺,以智能方式合併相關網絡應用與本機應用之間的推送通知。

  • Image Capture API 現在允許網站拍攝更高分辨率的圖像,從而全面掌控變焦、ISO 和白平衡等相機設置。

  • 為增強私密性,CSS 樣式表現在可以通過 HTTP 標頭自行指定引用站點政策,而不是像原來那樣,一律繼承最初引用它的文檔的引用站點政策。

  • 為避免過多地提示用戶,Chrome 現在會在第三次拒絕某個來源的權限請求後暫時阻止該來源請求權限。

  • 觸摸事件現已對齊 requestAnimationFrame,從而確保將輸入作為文檔生命週期的一部分進行處理,以及形成更高效的自適應輸入響應。

  • 新增的 worker-src 內容安全政策指令限制可作為 Worker、SharedWorker 或 ServiceWorker 進行加載的網址。

棄用和互操作性的改善

  • 默認情況下 <dialog> 元素已從 display: inline 更改為 block,以便更符合規範要求。

  • 作為從媒體查詢規範中移除的後續措施,取消了對 hover: on-demand 和 any-hover: on-demand 媒體查詢的支持。

  • 為更符合規範要求以及幫助避免競態問題,decodeAudioData 現在會分離給定 ArrayBuffer 後再進行下列操作:解碼、從對象中移除全部內容以及令對象無法被重複使用或檢查。

  • 為提高安全性,Chrome 不再支持通過 HTTP 請求通知權限。

  • -internal-media-controls-cast-button CSS 選擇器已移除,代之以 Remote Playback API。

  • -internal-media-controls-text-track-list* CSS 選擇器已移除,代之以自定義構建視頻控件。

  • 作為從規範移除的後續措施,SVGTests.requiredFeatures 屬性已經棄用。

  • 為迎合棄用初始化函數並轉向構造函數這一規範趨勢,initDeviceMotionEvent() 和 initDeviceOrientationEvent() 已移除,代之以 DeviceOrientationEvent() 和 DeviceMotionEvent()。

  • 為保持各瀏覽器之間的一致性,sample 屬性現在將列入違規報告(以及相關 SecurityPolicyViolationEvent 對象),前提是違反的指令中存在 report-sample 表達式。

  • 為提高安全性,Chrome 現在會屏蔽對包含嵌入式憑據的子資源的請求,改為將它們作為網絡錯誤進行處理。

  • 為提高安全性,Chrome 現在會屏蔽 HTTP/HTTPS 文檔向 ftp: 網址發出的請求。

  • 為保持各瀏覽器之間的一致性,Chrome for Mac 不再支持通過 AppleScript 注入 JavaScript。

  • 從非主框架調用 Notification.requestPermission() 的功能已棄用,以使通知權限要求與推送通知要求保持一致,以及減小開發者的阻力。

  • 對共享詞典壓縮 (SDCH) 的支持已禁用,持續到穩定 API 標準化為止。

查看更多文章,請關注『谷歌開發者』官方微信公眾號

相關推薦

推薦中...