Firefox addon firefox插件webrequest.addListener行为不正常

Firefox addon firefox插件webrequest.addListener行为不正常,firefox-addon,firefox-addon-sdk,Firefox Addon,Firefox Addon Sdk,我想检查firefox扩展中的http请求。为了开始弄清楚如何做我想做的事情,我想我只需要记录所有事情,看看会发生什么: webRequest.onResponseStarted.addListener( (stuff) => {console.log(stuff);}, {urls: [/^.*$/]} ); 域是无关紧要的,我知道正则表达式可以在控制台中进行验证。当运行此代码时,我没有日志记录。当我取出过滤器参数时,我会收到每个请求: webRequest.onRespons

我想检查firefox扩展中的http请求。为了开始弄清楚如何做我想做的事情,我想我只需要记录所有事情,看看会发生什么:

webRequest.onResponseStarted.addListener(
  (stuff) => {console.log(stuff);},
  {urls: [/^.*$/]}
);
域是无关紧要的,我知道正则表达式可以在控制台中进行验证。当运行此代码时,我没有日志记录。当我取出过滤器参数时,我会收到每个请求:

webRequest.onResponseStarted.addListener(
  (stuff) => {console.log(stuff);}
);
酷,我可能做错了什么,但我看不出是什么

另一种方法是自己手动筛选:

var webRequest = Components.utils.import("resource://gre/modules/WebRequest.jsm", {});
var makeRequest = function(type) {
  webRequest[type].addListener(
    (stuff) => {
      console.log(!stuff.url.match(/google.com.*/));
      if(!stuff.url.match(/google.com.*/))
        return;
      console.log(type);
      console.log(stuff);
    }
  );
}
makeRequest("onBeforeRequest");
makeRequest("onBeforeSentHeaders");
makeRequest("onSendHeaders");
makeRequest("onHeadersReceived");
makeRequest("onResponseStarted");
makeRequest("onCompleted");
使用if上面的console.log,我可以看到正则表达式在我希望它返回true时返回true,并且代码使它通过if。当我删除if上的console.log时,if不再执行

我的问题是,如何让过滤参数工作,或者如果过滤参数确实被破坏了,如何让代码通过要执行的if?显然,这是一个消防水龙带,为了开始寻找解决方案,我需要减少数据


谢谢

URL
必须是字符串或数组。不支持正则表达式

WebRequest.jsm
使用
resource://gre/modules/MatchPattern.jsm
。有人可能会对
util/match模式
add-onsdkapi感到困惑,它确实支持正则表达式。

上的文档。这表明URL是一个“RegExp数组”。这很清楚。不管怎么说,我在谷歌上试过你的匹配模式,运气不好。在我这样做之前,日志记录似乎可以在请求内部进行日志记录,我只是不知道它是否真的在做我想要它做的事情。