Chrome 58測試版釋出,有哪些新特性?
文 | IndexedDB 開發者 Victor Costan
除非另外註明,否則下面介紹的更改均適用於最新 Chrome Beta 渠道版(Android、Chrome 作業系統、Linux、Mac 和 Windows)。
IndexedDB 2.0
現在,Chrome 完全支援 IndexedDB 2.0 標準,在此瀏覽器中,可以更輕鬆地處理大資料集。IDB 2.0 採用新的架構管理和批量操作方法,故障處理方式也更標準化。
網站資料庫的結構對效能的影響很大,而且很難改變。為簡化更新操作,現在,在重構後,可以原地重新命名物件儲存和索引。網站也可以使用更多自然關鍵字,而無需擔心效能受到影響,因為二進位制關鍵字可壓縮自定義關鍵字表示。
使用 getKey() 和 openKeyCursor() 方法,可以簡化資料檢索,在只需一個資料庫關鍵字時,還可提升效能。使用新的 continuePrimaryKey() 遊標方法,可以更輕鬆地分割跨事務、跨頁面載入的大資料訪問,而不必擔心出現重複的主鍵。getAll() 和 getAllKeys() 方法無需使用遊標,即可批量恢復整個資料集。
改進 iframe 導航
自動重定向頁面的第三方內容(例如廣告)可能給使用者帶來困擾,帶來安全問題。因此,開發者可以將第三方內容置於沙盒化的 iframes 中,避免出現此狀況。但是,在某些情況下,與標準廣告類似,點選此類內容需要導航頂級頁面。
為解決此問題,Chrome 58 現在支援新的 iframe 沙盒關鍵字 allow-top-navigation-by-user-activation。此關鍵字使沙盒化的 iframes 在使用者互動操作觸發時能夠導航頂級頁面,同時阻止自動重定向。
PWA 沉浸式全屏體驗
當 Progressive Web App (PWA) 從 Android 主螢幕啟動時,這些 PWA 會以一種類似於獨立應用的模式啟動,此模式下會隱藏多功能框。這有助於營造一種富有吸引力的使用者體驗,並釋放螢幕空間,以顯示更多內容。但是,對於遊戲、視訊播放器或其他富媒體內容等更沉浸式的體驗,系統欄等其他移動 UI 元素仍然會分散使用者注意力。
現在,PWA 可以在其網路應用清單中設定 display: fullscreen,在網站從主螢幕啟動時隱藏非應用 UI,提供完全沉浸式的體驗。
▲ PWA 從主螢幕啟動(左)、PWA 在獨立模式下從主螢幕啟動(中)和 PWA 在全屏模式下從主螢幕啟動(右)。
此版本中的其他特性
現在,工作執行緒和共享工作執行緒可以使用 data: 網址進行建立,通過為其賦予不透明的來源,可更安全地利用工作執行緒進行開發。
通過 PointerEvents.getCoalescedEvents(),開發者可以訪問上次提交 PointerEvent 以來的所有輸入事件,使繪圖應用可以更輕鬆地使用精確的點記錄繪製更平滑的曲線。
現在,開發者可以使用新的 ControlsList API,自定義 Chrome 的原生媒體控制元件,例如 download、fullscreen 和 remoteplayback 按鈕。
對於 Chrome(Android 版),使用改進的新增到主螢幕工作流安裝的網站將可以不受限制地自動播放通過清單範圍中包含的來源提供的音訊和視訊。
對於 Chrome(Android 版),使用 autoplay 屬性的視訊在退出螢幕時將暫停播放,返回螢幕將繼續播放,以保持跨瀏覽器的連貫性。
現在,網站可以使用 color-gamut Media Query,獲取 Chrome 和輸出裝置支援的顏色的大致範圍。
現在,無需手動重置 float 和 clear 等多種佈局屬性,網站可以使用 display: flow-root 新增一種新的塊格式設定上下文。
為縮短 JavaScript 分析時間,SVGPoint、SVGRect 和 SVGMatrix 已轉移至 Geometry 外部的新介面中。
使用新的 Selection API 函式 removeRange(),開發者現在可以通過程式設計移除指定的文字範圍。
現在 Chrome(Mac 版)支援 PointerEvent.tangentialPressure 和PointerEvent.twist 屬性,可為觸控筆裝置和繪畫應用提供更多資訊。
為簡化開發者體驗,現在 JavaScript 允許在形式引數和實際引數列表中使用終止逗號。
WebAudio API 新的播放AudioContextLatencyCategory 使開發者可以輕鬆地在延遲時間、功耗和 CPU 效率之間做出有意識的權衡。
棄用和互操作性的改善
Apple-interchange-newline、Apple-converted-space、Apple-paste-as-quotation、Apple-style-span 和 Apple-tab-span 已被棄用,因為它們是非標準 CSS 類。
usemap 屬性現在使用區分大小寫的匹配方式,而不使用相容不區分大小寫,以更好地符合相關規範。
現在,根據 Chrome 針對一些重要功能的政策,使用 Notifications API 請求通知許可權或建立非永久本地通知時,網站必須使用 HTTPS。
為了更好地符合相關規範,現在當 cancelBubble 設定為 true 時被視為 stopPropagation() 的別名,在設定為 false 時則不執行任何操作。
VTTRegion 介面函式 addRegion() 和 removeRegion() 已從 WebVTT 規範中移除,因此也將從 Chrome 中移除。
導航至 data: 網址的頂級頁面的功能已被棄用,以進一步防止使用者受到欺騙和釣魚式攻擊。
HTMLEmbedElement 或 HTMLObjectElement 的例項不再可以作為函式呼叫,因為舊版呼叫程式已被移除。
在 IETF 將這些演算法標準化為 RFC 7539 和 RFC 7905 以及隨後在 Chrome 41 中釋出標準版本後,移除了標準化前的 ChaCha20-Poly1305 密碼。
為改善互操作性,如果增加的範圍與現有範圍重疊,Selection.addRange() 現在會忽略前者,而不是將兩個範圍合併。
根據 Chrome 針對一些重要功能的政策以及根據相關規範,已棄用通過不安全來源傳輸加密媒體擴充套件。
AudioBuffer 建構函式現在允許使用 AudioBufferOptions 詞典的sampleRate 成員代替 context 引數,以簡化介面,同時強調可以在 AudioContexts 之間共享 AudioBuffers。
現已在服務工作執行緒中棄用同步 FileReaderSync API,因為服務工作執行緒規範要求所有型別的同步請求都應在服務工作執行緒外部發起。
現在 abbr 和 acronym 元素預設新增點式下劃線,以符合 HTML 標準。
現已移除 motion-path、motion-offset 和 motion-rotation CSS 屬性,分別由以下新版本取代:offset-path、offset-distance 和 offset-rotate。
在訪問 selectionDirection、selectionStart 和 selectionEnd 等 Selection API 屬性時,Chrome 原本會引發 InvalidStateError DOMException,但現在返回 null。
現在,Selection API 的 setBaseAndExtent() 不會在無提示的情況下限制過大的偏移值,而是引發 IndexSizeError DOMException,以更好地符合相關規範。
現在,Selection API 的 setBaseAndExtent()、extend() 和 collapse() 不會因 DocumentType 節點輸入而在無提示的情況下失敗,而是引發 InvalidNodeTypeError DOMException,以更好地符合相關規範。
為更好地符合相關規範,getRangeAt() 現在始終返回新的位置規範化的 Range。
現已移除 AudioSourceNode 介面,因為它不再屬於 WebAudio 規範。
現已移除 webkitdropzone 屬性,因為它未得到廣泛採用。
更多詳情,請點選文末“閱讀原文”。
推薦閱讀:
3.26 Google Doodle: 2017 年孟加拉國獨立日
相關文章
- Chrome 60 Beta 有哪些新特性?Chrome
- Chrome 61 Beta有哪些新特性?Chrome
- 深入探討 Chrome iOS 版測試及釋出流程ChromeiOS
- Flink 1.11.0 釋出,有哪些值得關注的新特性?
- 即將釋出的ionic4有哪些激動人心的新特性
- Laravel 8 正式釋出!來看看有哪些新特性Laravel
- Git 2.1 有哪些新特性?Git
- Ruby 2.0 有哪些新特性?
- Python 3.3測試版釋出Python
- KDE-3.5.3 測試版釋出
- Rancher v2.6.4 社群版釋出 | 新特性解讀
- 簡訊:Linux 3.13 版釋出,新特性一覽Linux
- Java9有哪些新特性?Java
- AngularJS 2.0會有哪些新特性?AngularJS
- 微信電腦版2.6.0.15最新測試版釋出
- 測試釋出
- Flutter 1.17版本釋出,帶來多個新特性Flutter
- Chrome 57 Beta 新特性Chrome
- 效能測試有哪些指標需要測試?指標
- PHP 8 有哪些值得期待的新特性PHP
- 測試與釋出
- 軟體效能測試有哪些測試過程?
- Win10 Build 18234新預覽版釋出 新特性一覽Win10UI
- mysql8.0.11新特性測試MySql
- 正式釋出!VS Code 1.66新特性
- Git 2.1釋出:新特性預覽Git
- 微軟釋出測試版安全API 正式版尚需時日微軟API
- Chrome 72 開發者工具新特性Chrome
- Chrome 77 開發者工具新特性Chrome
- CameraX 1.1 有哪些新的特性發布?
- DudoJ資料持久化框架1.0測試版釋出,歡迎大家測試持久化框架
- 星海後臺測試平臺社群版正式釋出
- MaxtoCode 2.0 7月1日釋出 測試版
- Python 3.7 測試預覽版已經發布,新增新特性Python
- 軟體安全測試有哪些方法?在哪裡測試?
- 軟體測試有哪些內容?在哪裡測試?
- OpenCV 4.0正式釋出,你關注哪些特性?OpenCV
- linux下的測試流程,釋出前要做哪些準備?Linux