为什么这个声明性网络请求规则不起作用?



我试图阻止一个使用chrome扩展的网站,该网站使用Manifest V3的新声明性网络请求API,但它根本不起作用。我已经在清单中添加了权限,并确保添加了优先级、id、操作和条件,但它仍然没有任何作用。由于我只阻止了一个域,我尝试将条件中的域列表从"更改为";域";至";域";但这只是屏蔽了每个域。这是我的舱单的适用部分。我不知道为什么,但当我偶尔以私人/匿名标签打开网站时,它会起作用。

"declarative_net_request" : {
"rule_resources" : [{
"id": "rules1",
"enabled": true,
"path": "rules.json"
}]
},
"permissions": [
"declarativeNetRequest"
],

这是我的rules.json文件。

[{
"id": 1,
"priority": 1,
"action": {
"type": "block"
},
"condition": {
"domains": ["google.com"],
"resourceTypes": ["main_frame"]
}
}]

您需要更改;域";标记为";requestDomains";或";initiatorDomains";由于";域";标记已弃用。我假设google.com是你的发起域名,这意味着你想阻止从google.com向任何目的地网站发出的所有请求。如果你想阻止google.com成为目的地网站,即你想停止向google.com发出的任何请求,你需要使用";urlFilter";标记。

我遇到了同样的问题,谷歌在告诉我们不推荐的内容方面做得很糟糕。域被弃用,我们不得不使用initiatorDomains:

对我有效的是:在您的规则条件内-

urlFilter:";https://example.com"以阻止转到您的";https://example.com"然后:initiatorDomains:["mail.google.com"]阻止来自的请求;mail.google.com";(只是一个例子(

必须包含在清单版本3中"host_permissions":["<all_urls>"]

如果我有一个关于如何阻止from和to的例子,我会节省很多时间。我希望这能帮助

最新更新