Chrome 59 Beta:無外設 Chromium、macOS上的本機通知以及服務工作執行緒導航預載入

谷歌開發者_發表於2017-05-08

640?wx_fmt=gif


640?wx_fmt=jpeg


除非另外註明,否則下面介紹的更改均適用於最新 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 上體驗下降,這在遷移指南中有相關記述。


640?wx_fmt=jpeg

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



服務工作執行緒導航預載入

Service Worker Navigation 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 標準化為止。


瞭解更多細節,檢視文內所有連結,請點選文末“閱讀原文”。


推薦閱讀:

宣佈推出 amp-bind

針對網頁開發者的滾動錨定功能

GDE專欄 | Web開發資源彙總

Chrome 58測試版釋出,有哪些新特性?


640?wx_fmt=gif


點選「閱讀原文」,檢視文內連結640?wx_fmt=gif

相關文章