declarativeNetRequest.updateDynamicRules

修改扩展的动态规则集。首先会移除 options.removeRuleIds 中列出的规则 ID,然后添加 options.addRules 中提供的规则。请注意,

  • 此更新作为原子操作进行:要么添加并移除所有指定的规则,要么返回错误。
  • 这些规则会在浏览器会话和扩展更新之间持久保存。
  • 作为扩展包一部分定义的静态规则无法通过此函数移除。
  • 可以添加的动态规则数量是有限制的

注意: 在 Firefox 132 及更早版本中,动态规则在浏览器重启后有时不会生效,并且调用此 API 会被拒绝并返回错误(Firefox bug 1921353)。一个解决方法是在 declarative_net_request manifest 键中指定一个启用的静态规则集。规则集文件可以是一个空列表。

语法

js
let rulesUpdated = browser.declarativeNetRequest.updateDynamicRules(
    options                // object
);

参数

options

一个包含要添加到动态规则集或从中删除的规则的详细信息的对象。

addRules 可选

一个 declarativeNetRequest.Rule 数组。要添加的规则的详细信息。

removeRuleIds 可选

一个 number 数组。要移除的规则的 ID。任何无效的 ID 都将被忽略。

返回值

一个 Promise。如果请求成功,Promise 将会以无参数的形式 fulfilled。如果请求失败,Promise 将会以错误消息的形式 rejected。

示例

扩展程序示例

浏览器兼容性