Chrome 120 现已推出 Beta 版,其中包含许多令人兴奋的更新,可供 Chrome 扩展程序开发者使用。
对于 Chrome 扩展程序团队来说,今年是忙碌的一年。随着昨天发布 Chrome 120 Beta 版,扩展平台又向前迈出了一大步。如需大致了解今年发生的情况,请查看我们 7 月和 10 月的季度更新。请继续阅读,了解 Chrome 120 中针对扩展程序的新变化。
弥合平台差距
随着 Chrome 120 的发布,我们将弥合Manifest V3 已知问题页面上列出的剩余平台差距。新的 userScript API 以及对 ChromeOS 上文件处理的支持是列表中的最后两项,我们现在可以将其划掉。再加上上个季度更新中所述的更改,我们对 Chrome 扩展平台目前的状态以及过去一年所取得的成就感到非常满意。
新的 userScripts API
用户脚本支持已正式推出!用户脚本是扩展程序可以注入到网页中的(通常相对较小的)代码段,用于修改网页的外观或行为。用户可以直接创建这些脚本,也可以在网络上许多不同的用户脚本代码库中发现这些脚本。从 Chrome 120 开始,Manifest V3 扩展程序现在可以管理用户脚本的集合,并确定何时以及如何将它们注入到网页中。
Manifest V2 和 Manifest V3 在用户脚本支持方面存在一个显著区别。由于用户脚本功能强大,需要高度信任用户脚本的作者,因此 Chrome 团队决定,用户必须选择启用开发者模式,然后才能运行用户脚本。
 
  我们新的 userScript 示例展示了一种简单的方法,用于检测开发者模式是否已启用并提供简单的初始配置流程。
 
提高静态 DNR 规则集限额
我们将已启用的静态规则集的数量上限从 10 大幅提高到 50。此外,我们将允许的静态规则集总数从 50 个增加到 100 个。这是对我们在 Web Extensions Community Group 中收到的反馈做出的回应。
新的 ReadingList API
Chrome 于 2021 年推出了阅读清单功能。去年,Chrome 团队通过侧边栏让用户可以更轻松地访问阅读清单。在 Chrome 120 中,我们新增了 Chrome 扩展程序创建、读取、更新和删除阅读清单条目的功能。如需了解详情,请查看 API 文档和我们的新示例。
 
ChromeOS 上的文件处理
文件处理功能可让扩展程序以类似于 Web 平台文件处理的方式打开具有指定 MIME 类型和文件扩展名的文件。如需详细了解如何使用该功能,请参阅 ChromeOS 中的文件处理。
 
在 30 秒后触发闹钟
这是一项小更新,但弥补了 Service Worker 生命周期中的一个重要缺口。由于 Service Worker 是事件驱动型的,因此建议使用 chrome.alarms 在未来触发事件。Alarms API 可确保即使服务工作线程在此期间关闭,事件也会触发。
不过,这里有个问题。在 Chrome 120 之前,触发闹钟的最短时间间隔为 1 分钟。不过,服务工作线程会在闲置 30 秒后关闭。因此,没有直接的方法来安排在 45 秒后触发闹钟,因为在使用 setTimeout() 在 45 秒后设置事件时,服务工作线程可能会在事件触发之前关闭。
从 Chrome 120 开始,您现在可以在以下位置触发事件:
- 使用 setTimeout()时,时长不到 30 秒。
- 使用 chrome.alarms表示时长大于或等于 30 秒的任何内容:
await chrome.alarms.create('demo-default-alarm', {
   periodInMinutes: 0.45
 });
摘要
我们非常高兴地看到,扩展平台在过去一年中取得了显著进展。Chrome 120 是又一个重大版本,它提高了 DNR 限额并支持用户脚本。
