Mozilla 解决 Manifest V3 难题以拯救广告拦截器
Posted: Sat Dec 21, 2024 7:07 am
Mozilla 兑现了其部署 Google 新扩展平台 Manifest V3 的承诺,且不会影响广告拦截器的功能。上个月开始推出的新版 Firefox将确保用户继续使用流行的隐私保护工具,特别是内容阻止扩展。
一方面,通过按照自己的条件应用 Manifest V3,Mozilla 使迁移到新平台的开发人员不必同时确保与其扩展的两个不同版本(适用于 Google Chrome 和 Firefox)的兼容性。另一方面,它允许最初使用限制较少的 Manifest V2 创建的内容阻止扩展继续充分发挥作用。
在继续之前,让我们记住 Manifesto V3 是什么,以及为什么它受到隐私倡导者和内容拦截扩展(包括 AdGuard)开发人员的如此多的批评。
有问题的清单
Manifest V3 是新的 Chrome API 扩展,于 2018 年首次发布。它现在正在向所有基于 Chrome 的浏览器推出,当然包括 Google Chrome 本身。
API 对扩展程序必须遵循的规则进行了重大更改,例如它可以访问哪些浏览器功能以及扩展程序可以修改哪些内容。例如,以前,浏览器会询问内容阻止扩展程序如何处理特定的 Web 请求,扩展程序会 加拿大电报数据库 通过阻止或重定向来响应。新的、更受限制的 API 仅向浏览器本身授予修改请求的权利,而扩展仅限于宣布或“声明”一组浏览器必须响应的规则。谷歌表示,这将阻止包括广告拦截器在内的扩展程序访问“潜在敏感的用户数据”,并使浏览器“对每个人来说都更加安全” 。缺点是这种变化也会导致广告拦截器失去一些功能。
规则永远不嫌多
Manifest V3 的问题在于,它限制了单个用户安装的扩展的内置规则和用户添加规则的数量。这意味着 Chrome 已将每个扩展程序的内置(“静态”)规则保证最小限制设置为 30,000 条,并将全局限制设置为 330,000 条静态规则。至于用户合并的(“动态”)规则,则仅限于 5,000 个。由于任何阻止扩展程序最重要的部分是“教导”如何检测广告的过滤规则,因此这些限制可能成为真正的障碍。
如果您只有一个依赖 Manifest V3 的声明式 NetRequest API 来阻止广告的扩展,那么 Google 提供的数量就足够了。但是,如果您使用多个扩展,这可能会成为一个问题:扩展将竞争剩余的规则,并且某些扩展将无法满负荷运行。
另一个问题是,谷歌希望开发人员在安装时就将所有规则内置到扩展中。从本质上讲,开发人员必须提前定义他们的扩展将如何处理特定请求,而不是像以前那样即兴发挥。这意味着广告拦截器将需要更长的时间来响应网站上的更改,因为每次发生更改时,开发人员都必须上传新版本的扩展程序,并等待它通过审核,这并不意味着其本身就是一个快速的过程。
不过,情况仍有改善的希望。我们提出了增加动态规则和规则集的数量,并在浏览器和内容阻止社区之间正在进行的讨论中提倡在 Manifest V3 中进行这些更改。我们希望我们的论点能够得到考虑。
最后,由于Chrome是浏览器市场的主导力量,一旦谷歌移除Manifest V2,扩展开发者将不得不适应Manifest V3,否则就会失去用户。我们希望这种过渡尽可能顺利。
一方面,通过按照自己的条件应用 Manifest V3,Mozilla 使迁移到新平台的开发人员不必同时确保与其扩展的两个不同版本(适用于 Google Chrome 和 Firefox)的兼容性。另一方面,它允许最初使用限制较少的 Manifest V2 创建的内容阻止扩展继续充分发挥作用。
在继续之前,让我们记住 Manifesto V3 是什么,以及为什么它受到隐私倡导者和内容拦截扩展(包括 AdGuard)开发人员的如此多的批评。
有问题的清单
Manifest V3 是新的 Chrome API 扩展,于 2018 年首次发布。它现在正在向所有基于 Chrome 的浏览器推出,当然包括 Google Chrome 本身。
API 对扩展程序必须遵循的规则进行了重大更改,例如它可以访问哪些浏览器功能以及扩展程序可以修改哪些内容。例如,以前,浏览器会询问内容阻止扩展程序如何处理特定的 Web 请求,扩展程序会 加拿大电报数据库 通过阻止或重定向来响应。新的、更受限制的 API 仅向浏览器本身授予修改请求的权利,而扩展仅限于宣布或“声明”一组浏览器必须响应的规则。谷歌表示,这将阻止包括广告拦截器在内的扩展程序访问“潜在敏感的用户数据”,并使浏览器“对每个人来说都更加安全” 。缺点是这种变化也会导致广告拦截器失去一些功能。
规则永远不嫌多
Manifest V3 的问题在于,它限制了单个用户安装的扩展的内置规则和用户添加规则的数量。这意味着 Chrome 已将每个扩展程序的内置(“静态”)规则保证最小限制设置为 30,000 条,并将全局限制设置为 330,000 条静态规则。至于用户合并的(“动态”)规则,则仅限于 5,000 个。由于任何阻止扩展程序最重要的部分是“教导”如何检测广告的过滤规则,因此这些限制可能成为真正的障碍。
如果您只有一个依赖 Manifest V3 的声明式 NetRequest API 来阻止广告的扩展,那么 Google 提供的数量就足够了。但是,如果您使用多个扩展,这可能会成为一个问题:扩展将竞争剩余的规则,并且某些扩展将无法满负荷运行。
另一个问题是,谷歌希望开发人员在安装时就将所有规则内置到扩展中。从本质上讲,开发人员必须提前定义他们的扩展将如何处理特定请求,而不是像以前那样即兴发挥。这意味着广告拦截器将需要更长的时间来响应网站上的更改,因为每次发生更改时,开发人员都必须上传新版本的扩展程序,并等待它通过审核,这并不意味着其本身就是一个快速的过程。
不过,情况仍有改善的希望。我们提出了增加动态规则和规则集的数量,并在浏览器和内容阻止社区之间正在进行的讨论中提倡在 Manifest V3 中进行这些更改。我们希望我们的论点能够得到考虑。
最后,由于Chrome是浏览器市场的主导力量,一旦谷歌移除Manifest V2,扩展开发者将不得不适应Manifest V3,否则就会失去用户。我们希望这种过渡尽可能顺利。