Chrome 120 扩展程序中的新功能

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 团队决定,用户必须选择启用开发者模式,然后才能运行用户脚本。

“附加信息”页面
“扩展程序”页面 (chrome://extensions)

我们新的 userScript 示例展示了一种简单的方法,用于检测开发者模式是否已启用并提供简单的初始配置流程。

用户脚本的新手入门流程示例。
在开发者模式停用时引导用户完成初始配置。

如需开始使用,请查看文档或参阅官方示例

提高静态 DNR 规则集限额

我们将已启用的静态规则集的数量上限从 10 大幅提高到 50。此外,我们将允许的静态规则集总数从 50 个增加到 100 个。这是对我们在 Web Extensions Community Group 中收到的反馈做出的回应。

新的 ReadingList API

Chrome 于 2021 年推出了阅读清单功能。去年,Chrome 团队通过侧边栏让用户可以更轻松地访问阅读清单。在 Chrome 120 中,我们新增了 Chrome 扩展程序创建、读取、更新和删除阅读清单条目的功能。如需了解详情,请查看 API 文档和我们的新示例

Chrome 的阅读清单,其中显示了扩展程序文档页面。
Chrome 中的阅读清单侧边栏。

ChromeOS 上的文件处理

文件处理功能可让扩展程序以类似于 Web 平台文件处理的方式打开具有指定 MIME 类型和文件扩展名的文件。如需详细了解如何使用该功能,请参阅 ChromeOS 中的文件处理

ChromeOS 上显示“打开文件”对话框的屏幕截图
在 ChromeOS 上通过扩展程序打开文件。

在 30 秒后触发闹钟

这是一项小更新,但弥补了 Service Worker 生命周期中的一个重要缺口。由于 Service Worker 是事件驱动型的,因此建议使用 chrome.alarms 在未来触发事件。Alarms API 可确保即使服务工作线程在此期间关闭,事件也会触发。

不过,这里有个问题。在 Chrome 120 之前,触发闹钟的最短时间间隔为 1 分钟。不过,服务工作线程会在闲置 30 秒后关闭。因此,没有直接的方法来安排在 45 秒后触发闹钟,因为在使用 setTimeout() 在 45 秒后设置事件时,服务工作线程可能会在事件触发之前关闭。

从 Chrome 120 开始,您现在可以在以下位置触发事件:

await chrome.alarms.create('demo-default-alarm', {
   periodInMinutes: 0.45
 });

摘要

我们非常高兴地看到,扩展平台在过去一年中取得了显著进展。Chrome 120 是又一个重大版本,它提高了 DNR 限额并支持用户脚本。