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 社区群组中收到的反馈。

新的 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 限制并支持用户脚本。