Chrome 59 Beta:無外設 Chromium、macOS上的本機通知以及服務工作執行緒導航預載入
除非另外註明,否則下面介紹的更改均適用於最新 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 通知對比
服務工作執行緒導航預載入
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 標準化為止。
瞭解更多細節,檢視文內所有連結,請點選文末“閱讀原文”。
推薦閱讀:
點選「閱讀原文」,檢視文內連結
相關文章
- 多執行緒之等待通知機制執行緒
- Chrome 開啟多執行緒下載Chrome執行緒
- iOS開發--通知,代理,KVO的區別,以及通知的多執行緒問題iOS執行緒
- C#多執行緒(6):執行緒通知C#執行緒
- 執行緒間通訊_等待/通知機制執行緒
- Java中命名執行器服務執行緒和執行緒池Java執行緒
- 關於jboss最大執行緒數滿導致服務停止執行緒
- Java 執行緒間通訊 —— 等待 / 通知機制Java執行緒
- innodb master執行緒的工作機制AST執行緒
- 執行緒以及多執行緒,多程式的選擇執行緒
- MySQL連線數過多導致服務無法正常執行MySql
- 【連載 03】Java 執行緒池(上)Java執行緒
- 執行緒的馴服執行緒
- Java併發程式設計(04):執行緒間通訊,等待/通知機制Java程式設計執行緒
- 使用多執行緒提高rest服務效能執行緒REST
- 預載入JavaScript/CSS但不執行JavaScriptCSS
- Chrome、Edge瀏覽器內建多執行緒下載Chrome瀏覽器執行緒
- 【線上等】關於tomcat最大執行緒數滿導致服務停止Tomcat執行緒
- Java執行緒與併發程式設計實踐----額外的執行緒能力Java執行緒程式設計
- 多執行緒程式設計總結:一、認識多執行緒本質執行緒程式設計
- 【Linux網路程式設計-5】多執行緒服務端Linux程式設計執行緒服務端
- MFC多執行緒的建立,包括工作執行緒和使用者介面執行緒執行緒
- 執行緒池以及四種常見執行緒池執行緒
- 全網最適合入門的物件導向程式設計教程:59 Python並行與併發-並行與併發和執行緒與程序物件程式設計Python並行執行緒
- 淺談執行緒池(上):執行緒池的作用及CLR執行緒池執行緒
- Android中後臺的服務和多執行緒Android執行緒
- 程式執行緒篇——執行緒切換(上)執行緒
- 使用 chromium 以及 Chrome 外掛 API 實現本地除錯前後端分離專案ChromeAPI除錯後端
- 無法使用 Apple 推送通知服務(APNs)APP
- 基於任務的導航設計
- 執行緒和程式基礎以及多執行緒的基本使用(iOS)執行緒iOS
- 執行緒池的工作流程執行緒
- 小度分享-【多執行緒工作及執行緒安全】執行緒
- socket實現服務端多執行緒,客戶端重複輸入服務端執行緒客戶端
- ConcurrentHashMap執行緒安全機制以及原始碼分析HashMap執行緒原始碼
- Camtd - Chrome 多執行緒下載管理器外掛,可滿速下載百度網盤檔案Chrome執行緒
- 【框架】一種通知到多執行緒框架框架執行緒
- Java多執行緒之三volatile與等待通知機制示例Java執行緒