AdGuard发布了基于Manifest V3的广告拦截器
AdGuard发布了基于ManifestV3的广告拦截器ManifestV3是谷歌于2018年提出的新一代浏览器扩展标准,在2023年初(4个月后)即将部署至最新的Chrome浏览器,原先基于ManifestV2的浏览器插件将停止运行。根据AdGuard今天发表的博客:https://adguard.com/en/blog/adguard-mv3.html,基于ManifestV3的广告屏蔽类扩展将迎来以下变化:1.规则条数的限制:ManifestV3规定浏览器单个插件加载的规则条数不得超过30,000条,整个浏览器所安装的全部屏蔽类插件(例如AdGuard,uBlockOrigin,AdblockPlus等)不得超过330,000条。其中单个插件的规则里最多有1000个使用正则匹配书写的规则,对于用户自己设定的规则,也有不得超过5000条的限制(可以参考的是:AdGuard官方的中文规则集就有25,000+条)2.声明性规则(Declarativerules)的变化:在ManifestV2中,网络请求会先经过浏览器插件的处理,再将结果交由浏览器,而在ManifestV3中,浏览器插件只能向浏览器声明使用到的规则,而网络请求的处理会交给浏览器,浏览器插件甚至无法得到拦截的日志和统计数据,3.规则语法的变化:原先使用一行规则即可完成的操作如今却需要将其转换为json格式,例如:在ManifestV2中的规则:example.com^$script在ManifestV3中需要写成如下形式:{"id":1,"action":{"type":"block"},"condition":{"urlFilter":"example.com^","resourceTypes":["script"],"isUrlFilterCaseSensitive":false}}这将导致现在所有的热门规则失效,因为他们需要将格式转换为ManifestV3的标准格式,并且对于个人而言创建一条自己的规则将变得更困难4.规则集的变化:在ManifestV2中,所有插件内置的规则集都可以在不更新插件的情况下独立更新,而在ManifestV3中,所有的规则集都被写入了插件内的manifest.json文件,只有当插件更新时规则才会得到更新。这会导致一个严重的问题:网站会一直变化,而规则集的更新速度赶不上网站的更新速度,因为在ManifestV3中更新规则集就需要更新插件,而开发者在提交插件至Chrome应用商店后还需要等待其被审核通过才能让用户得到更新5.插件运行后台的变化:在ManifestV3中,除正在浏览的标签页外,对于其他标签页而言,插件将进入一种“休眠状态”,这会导致部分已加载的规则失效,而当再次切换到这些标签页时,插件则需要1.5-2s的时间重新加载规则,这可能会导致广告位置出现“闪烁”频道投稿:@zaihuabot交流群组:@zaihuachat花花优券:@zaihuatb