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 社区群组中收到的反馈。
新的 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 限制并支持用户脚本。