新版本的 AdGuard 浏览器扩展程序发生了几项重大变化,尽管这些变化并不立即引人注目。我们用 TypeScript 重写了所有过滤代码,并将其移至新的单独库中。这使我们能够为无缝过渡到 MV3 做好准备。
Manifest V3 (MV3) 是新的 Chrome 扩展 API。除此之外,通过限制可应用的过滤规则的数量,浏览器扩展阻止广告的难度将大大增加。您可以阅读有关Chrome 限制的更多信息,以及我们如何尝试调整它们以构建世界上第一个基于 Manifest V3 的广告拦截器。
一些背景知识
不久前,我们将扩展程序的 URL 过滤引擎移至一个名为tsurlfilter.创建这个库的主要原因是为了重用其他产品中的过滤逻辑(Chrome 和 Firefox 的浏览器扩展、Safari 的规则转换器、linter 等)。
它tsurlfilter有两个主要部分:
一个过滤引擎,可以发现 URL 及其携带的过滤规则之间的兼容性。
Chrome 和 Firefox 特定的编 比利时电报数据库 程接口,负责应用所发现的规则。
使用MV3,我们不仅需要维护不同浏览器的过滤代码,还需要维护不同版本Manifest的过滤代码。此外,当其他浏览器删除旧的 API 时,我们需要提供从 MV2 到 MV3 的无缝过渡。我们并不急于迁移到 MV3,因为新的 API 非常有限。
添加新的逻辑来解决这个问题tsurlfilter会使库变得非常重,因此我们决定创建一个新的软件平台,将不同浏览器的特定逻辑和清单隐藏在一个简单的 API 后面。新图书馆名为tswebextension.
新图书馆tswebextension
有了tswebextension,我们的产品的维护和更新将会变得更加容易。
在新版 Chrome 和 Firefox 浏览器扩展中,我们使用tswebextension.这样可以在未来版本中顺利过渡到 Chrome 中的 MV3。
此外,我们还更新了 AdGuard API 以使用tswebextension.
完整的更改列表可在GitHub上找到。与往常一样,我们很乐意在社交媒体上(只需在您喜欢的平台上搜索 AdGuard)或通过GitHub issues听到您对我们的浏览器扩展的反馈。
你喜欢这篇文章吗?
订阅我们的时事通讯