无法将事件侦听器添加到 webNavigation.onCompleted

Unable to add event listener to webNavigation.onCompleted

将下面的模拟函数与开发控制台一起使用:

此调用有效:

chrome.webNavigation.onCompleted.addListener(processWebNavChange, filtera);

但是当我实际传递我的真实 var filter 时,它会抛出此错误: Uncaught TypeError: Could not add listener

我的实际数据是这样的:

{
    url: [ {hostContains: ".im88rmbOwZ"} ]
}
function registerWebNavListener() {
    var matchers = getUrlMatchers();
    var filter = {
        url: matchers
    };
    // test with mock data filtera that actually works
    const filtera = {
      url:
      [
        {hostContains: "example.com"},
      ]
    }
    if (matchers.length > 0) {
        chrome.webNavigation.onCompleted.addListener(processWebNavChange, filtera);
    }
}

async function processWebNavChange(data) {
}

我实际使用的数据结构有问题吗?我不相信我返回的过滤器对象不正确 }

编辑: 我添加了一个新的

const filterb = {
        url: [ {hostContains: ".im88rmbOwZ"} ]
    };

它仍然失败了。单个条目 {hostContains: ".im88rmbOwZ"} 是从 getURLMatchers() 返回的第一个项目,我将其用作返回真实数据的示例。

以上关于大写字母的注释是问题的原因。将所有内容都转换为小写解决了问题。

尽管如此,我并不清楚为什么这从一开始就是个问题。 (如果chromium源代码事件过滤器处理程序中有任何提示,请指出,我将不胜感激)。