Chrome 88 的新特性
css aspect-ratio
aspect-ratio --- 宽高比
img {
aspect-ratio: 1 / 1 (宽 / 高)
}
大幅限制链式 JavaScript 定时器
可以减少 CPU 的使用率和电池的使用率
链式调用:如果你在一个 setTimeout 里调用了同一个 setTimeout,那就相当于链式调用了
let chainCount = 0;
function setTimeoutChain() {
setTimeout(() => {
chainCount++;
console.log(`This is number ${chainCount} in the chain`);
setTimeoutChain();
}, 500);
}
Chrome88 中以下条件满足时,你的 setTimeout 将会被节流限制
该页面已经隐藏了 5 分钟以上
你链式调用的计数是 5 或更多次
该页面已经静音 30 秒以上
未使用 WebRTC
在满足这种情况下,浏览器会每分钟检查一下你定时器中的逻辑,你定时器里的逻辑也会在每分钟内分批处理
默认启用 noopener
如果你的 a 标签有一个target='_blank'
那么跳到新页面之后,可以使用 window.opener 获取到来源页面的 window 对象,如果跳转到一个恶意页面,它可能会恶意读取你的一些信息,甚至进行钓鱼攻击。
为了符合 HTML 标准的修改,默认情况下如果你的 a 标签有 target="_blank",现在会默认开启 rel="noopener"。
V8 支持非回溯 RegExp 引擎
正则表达式会有很多分支情况,所以分支过多可能会导致浏览器卡死
你可以通过下面的方式配置新的 RegExp 引擎:
--enable-experimental-regexp_engine-on-excessive-backtracks
:在过多的回溯上启用对非回溯引擎的回退。
--regexp-backtracks-before-fallback N
:(默认 N=50000)指定了多少回溯被视为过多,即何时进行回退。
--enable-experimental-regexp-engine
直接启用非回溯 RegExp 引擎。
Manifest v3
禁用 FTP
完全禁用混合内容下载
当用户正在访问一个以 HTTPS 开头的网页,但文件是从一个以 HTTP 开头的 URL 下载的。Chrome 将这些情况视为 “混合”和 “不安全”下载。
什么是混合内容下载
首先说下混合内容(mixed content),浏览器会使用 HTTPS 或 HTTP 请求页面资源,当同一个页面同时存在 HTTPS 和 HTTP 时,被称为混合内容。
Chrome 为了保证下载安全,会禁止在 HTTPS 的页面下载 HTTP 资源。