作者| 彼洋
2021年1月19日,時隔兩個月後,Chrome 釋出 M88。該版本的顯著特點是,幾個比較大的下線計劃終于完成,包括FTP、Flash、WebComponents v0、混合内容下載下傳等。
新增穩定功能
Manifest v3
Chrome 88 現在支援使用 Manifest v3 建構的擴充程式,使用者可以将其上傳到 Chrome 網上應用商店。Manifest v3 是一個新的擴充平台,可使 Chrome 擴充更安全,更高效,更尊重隐私。
比如,Manifest v3 不允許使用遠端托管的代碼,這可以幫助 Chrome Web Store 稽核人員更好地了解擴充程式帶來的風險,并且允許你更快地更新擴充。
又如,它引入了service worker,來取代背景頁面,因為 service worker 隻會按需存在于記憶體中,它會占用更少的系統資源。
更多資訊,請移步連結(
https://developer.chrome.com/docs/extensions/mv3/),它會告訴你如何把現有擴充遷移到manifest v3。
CSS aspect-ratio 屬性
在以前,隻有某些特定的元素具有長寬比,例如 image。對于它們,我們僅需指定寬度或高度,元素會根據固有長寬比自動計算另一個。
<!-- Height is auto-computed from width & aspect ratio -->
<img src="..." style="width: 800px;">
在 Chrome 88 中, aspect-ratio 屬性可讓你顯式指定寬高比,進而實作類似的行為。
.square {
aspect-ratio: 1 / 1;
}
你也可以通過 CSS4 的 not 選擇器,來實作漸進增強。
.square {
aspect-ratio: 1 / 1;
}
@supports not (aspect-ratio: 1 / 1) {
.square {
height: 4rem;
width: 4rem;
}
}
檢視demo,請移步連結 (
https://codepen.io/una/pen/BazyaOM)。
大幅限制鍊式 JavaScript 定時器
為了減少CPU和電池使用率,Chrome 從 M87 開始就在優化隐藏頁面,在 M88 中,特定情況下會大幅限制隐藏頁面的鍊式 JavaScript 計時器。
如果你在一個 setTimeout 裡調用了同一個 setTimeout,這就相當于鍊式調用了:
let chainCount = 0;
function setTimeoutChain() {
setTimeout(() => {
chainCount++;
console.log(`This is number ${chainCount} in the chain`);
setTimeoutChain();
}, 500);
}
在 Chrome 88 中,當以下所有的條件都成立時,你的 setTimeout 調用就會被節流限制:
- 該頁面已經隐藏 5 分鐘以上(使用者目前打開了其他的頁面)
- 你鍊式調用的計數是 5 或更多次
- 該頁面已經靜音 30 秒以上
- 未使用 WebRTC
在滿足這種情況下,浏覽器将每分鐘檢查一次定時器,你定時器裡的邏輯也會在每分鐘内分批處理。Chrome 官方推薦使用 setInterval 來解決這個問題。
https://developer.chrome.com/blog/timer-throttling-in-chrome-88/廢棄&删除的功能
頁面解除安裝時不允許彈窗
自從Chrome 80開始,不允許在頁面解除安裝時使用
window.open
方法來打開新頁面,不過企業使用者可以通過
AllowPopupsDuringPageUnload
字段來允許在頁面解除安裝時打開彈窗。從Chrome 88開始,該字段也會被廢除。
完全禁用 FTP
Chrome FTP功能的使用量較低,而且實作有bug,存在安全隐患,何況各平台都有更好用的FTP用戶端,不值得繼續維護。從 M72 開始,Chrome 便已着手閹割 FTP 功能,從 M86 開始,Chrome 正式開始了禁用 FTP 的過程,到 88 版本釋出後,FTP 被完全禁用,禁用節奏如下:
- Chrome 86:預設情況下,大多數使用者仍啟用 FTP,但對于 pre-release channels 禁用了 FTP,并且将對穩定使用者的百分之一進行實驗性關閉。在此版本中,使用者可以使用 --enable-ftp 指令或 --enable-features=FtpProtocol 從指令行重新啟用它 。
- Chrome 87:預設情況下,百分之五十的使用者将禁用 FTP 支援,但可以使用上面列出的 flag 啟用 FTP 支援。
- Chrome 88:FTP 支援被完全禁用
完全禁用 Flash
Chrome 在 83 版本對使用者使用 Flash 開啟了進一步提示,比如如果提示激活 Flash 插件時并導緻狀态更改,将會再次給予警告。
2020 年 12 月 31 日,Flash 達到了正式的生命終點,Adobe 正式停止支援該軟體。1 月 12 日,Adobe 開始直接阻止 Flash 内容播放。
完全禁用混合内容下載下傳

如上面的過程,從 M81 開始, Chrome 阻止混合内容的下載下傳,并在各個版本開啟不同檔案類型的阻止,到 M88 版本,所有檔案類型的混合内容下載下傳被完全阻止。
删除 WebComponents v0
從 M80 版本開始的 WebComponents v0下線計劃,到 M88 終于迎來了尾聲。Chrome 不再支援Web Components v0,而是用 Web Components v1 取代它,并且 Safari、Firefox、Edge 都支援了這項改動。
關注「Alibaba F2E」
把握阿裡巴巴前端新動态