Chrome 88 重要更新解读

简介: 2021年1月19日,时隔两个月后,Chrome 发布 M88,一起来看看此版本的重大更新。
作者| 彼洋

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;
  }
}

大幅限制链式 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 内容播放。

完全禁用混合内容下载

image.png
如上面的过程,从 M81 开始, Chrome 阻止混合内容的下载,并在各个版本开启不同文件类型的阻止,到 M88 版本,所有文件类型的混合内容下载被完全阻止。

删除 WebComponents v0

从 M80 版本开始的 WebComponents v0下线计划,到 M88 终于迎来了尾声。Chrome 不再支持Web Components v0,而是用 Web Components v1 取代它,并且 Safari、Firefox、Edge 都支持了这项改动。


image.png
关注「Alibaba F2E」
把握阿里巴巴前端新动态

相关文章
|
网络协议 Python
python中socket客户端发送和接收数据
【4月更文挑战第7天】本教程聚焦TCP客户端数据发送与接收。使用Python的`socket`模块,通过`send()`发送字节串至服务器,如`client_socket.send(message_bytes)`;用`recv()`接收数据,如`received_data = client_socket.recv(buffer_size)`。异常处理确保网络错误时程序健壮性,例如`try-except`捕获`socket.error`。理解和掌握这些基础操作对于构建稳定的TCP客户端至关重要。
2589 1
|
存储 Rust 并行计算
【密码学】一文读懂XTS模式
这篇文章的灵感来源于我偶然翻到的一个某U盘有关磁盘加密的一个介绍(这一篇不是广告蛤), 然后发现这个模式我之前还真没遇到过,因此呢,就学习了一下,就出来了这一篇文章。
7740 0
【密码学】一文读懂XTS模式
|
存储 关系型数据库 数据库
什么是索引
【10月更文挑战第15天】什么是索引
|
6月前
|
JSON 关系型数据库 Java
国内五大报表工具横评:从数据兼容性到成本,教你避开选型坑!
在企业数据分析和报表开发中,能否选到合适的报表工具直接影响效率与成本。本文从图形、多样性数据源支持度、打印与导出、价格这4个方面对比国内主流报表软件:润乾报表、帆软报表、Smartbi、永洪、亿信。通过对比我们选择一款适合自己的工具。
|
4月前
|
监控 安全 Java
|
资源调度 监控 前端开发
第七章(原理篇) 微前端技术之依赖管理与版本控制
第七章(原理篇) 微前端技术之依赖管理与版本控制
545 0
|
SQL 监控 数据处理
SQL数据库数据修改操作详解
数据库是现代信息系统的重要组成部分,其中SQL(StructuredQueryLanguage)是管理和处理数据库的重要工具之一。在日常的业务运营过程中,数据的准确性和及时性对企业来说至关重要,这就需要掌握如何在数据库中正确地进行数据修改操作。本文将详细介绍在SQL数据库中如何修改数据,帮助读者更好
2081 4
|
12月前
|
JavaScript 前端开发 测试技术
selenium的底层核心原理
Selenium 是一个强大的Web应用自动化测试工具,通过模拟用户与浏览器的交互来测试Web应用。其核心组件WebDriver支持多种浏览器,通过HTTP请求管理和操作浏览器会话,实现跨浏览器和跨平台的自动化测试。Selenium Grid支持分布式测试,提高测试效率。作为一个开源项目,Selenium不断发展,适应快速变化的Web技术。
|
存储 并行计算 C++
NVIDIA Triton系列08-用户端其他特性
本文详细解析了NVIDIA Triton开源项目的image_client.py示例代码,涵盖指定通信协议(HTTP与gRPC)、调用异步模式与数据流处理、以及使用共享内存等核心功能,为开发者提供撰写Triton用户端应用的指导。通过具体代码示例,帮助读者理解如何高效利用Triton服务器进行模型推理。
292 1
NVIDIA Triton系列08-用户端其他特性
|
前端开发 JavaScript API
前端框架对比和选择
前端框架对比和选择
下一篇
oss云网关配置