GoogleChrome105瀏覽器發佈至今已有四周時間,這意味著現在是該瀏覽器下一個主要版本的上市時間。在新的API和功能方面,Chrome106並不像它的前輩那樣是一個重要的更新,但是它仍然包含一些有趣的功能,並將在今天的晚些時候開始推送。
深色背景上的Chrome 106標志,左邊是一個拿著筆記本的開發者的剪貼畫。
這次我們將從棄用三個功能開始。在requestFileSystem()方法中,持久性配額類型將被棄用,因為它給代碼增加不必要的復雜性,由於其使用率低,這一點尤其不可取。HTTP/2推送流將遭受同樣的命運,因為Chrome將不再接收、存儲在內存中,或使用這種配置發送的流。同樣,Chrome 106也將放棄對cookie域名屬性中非ASCII字符的支持,這與RFC 6265bis規范中的最新標準化一致。
在新功能方面,一個主要的改進是支持SerialPort中的Bring Your Own Buffer(BYOB),以下是Google對它的描述:
開發人員可以通過調用getReader({ mode: 'byob' })來檢測對BYOB讀取器的支持,因為當新參數被傳遞時,舊的實現會拋出一個TypeError。BYOB(或者,"自帶緩沖區")閱讀器允許開發者指定讀取數據的緩沖區,而不是由流為每個塊分配一個新的緩沖區。除可能減少內存壓力外,這還允許開發者控制收到多少數據,因為流不能返回超過所提供的緩沖區的空間。從一個端口讀取特定數量的數據的能力使這個API對於習慣於針對Windows和POSIX串行設備API編程的開發者來說更加熟悉,這些API也是按照這個"自帶緩沖區"的原則操作的。
自帶緩沖區的閱讀器允許開發者指定讀取數據的緩沖區,而不是由流為每個塊分配一個緩沖區。除可能減少內存壓力外,這還允許腳本控制在一個分塊中收到多少數據,因為流不能返回超過所提供的緩沖區的空間。從一個端口讀取特定數量的數據的能力一直是開發人員經常要求的功能,他們習慣於針對Windows和POSIX的串行設備API進行編程,這些API也是按照這種"自帶緩沖區"的原則進行操作。相比之下,目前的API要求開發者對額外的不需要的數據進行防禦性編碼,而不是隻讀取他們準備處理的數據。
除此以外,無前綴的連字符屬性CSS屬性特性現在已經穩定,並將與Chrome 106一起發佈。而"-webkit-hyphenate-character"屬性將在以後一個未確定的日期被棄用。
Chrome 106瀏覽器的另一個關鍵改進是,它支持V3版本的Intl.NumberFormat API。
在這個版本的Chrome中也有一些實驗性的功能。有兩項開發者試驗被隱藏在測試標記後,第一個是將文件系統訪問API中的異步方法更新為同步方法。這將提高性能,並為API帶來一致性。第二,Google將繼續進行其減少用戶代理的第五階段計劃。這個想法是為改善隱私,同時也減少在解析復雜的用戶代理字符串時出現錯誤的機會。
同樣地,有兩種能力也進入Origin試驗階段,匿名iframes提供一種通過短暫的上下文在外部iframes中加載文件的方法。由於它是跨源嵌入者政策(Cross-Origin-Embedder-Policy,COEP)的概括,從而取消第三方iframes支持COEP的要求,這是嵌入到COEP頁面的前提條件。這項試驗將持續到Chrome 108。
一個彈出式API現在也通過Origin試驗提供,它允許開發者在網絡應用的頂部顯示互動的瞬時UI元素。這與"對話框"元素類似,但有一些新的功能,如包括光照消失行為、彈出式互動管理、動畫、事件支持等。
Chrome 106將在今天晚些時候開始推出。如果Chrome瀏覽器在一天中沒有自動更新到106版本,請前往"幫助">"關於Google瀏覽器",在更新可用時觸發更新。接下來是Chrome 107,它將於9月29日進入測試頻道,並將於10月25日發佈穩定版。