2015-10-16 70 views
0

我想檢查Firefox擴展中的http請求。要開始考慮如何做我想做的事情我想我只要登錄一切,看看會發生什麼吧:firefox addon webrequest.addListener行事不端

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"); 

通過上面的的的console.log如果,我可以看到正則表達式返回true時,我想它和代碼使其成爲過去,如果。當我刪除console.log時,如果不再執行。

我的問題是,我如何獲得過濾參數的工作,或者如果這確實被打破,我怎麼能得到的代碼,如果被執行?顯然,這是一個消防水帶,並開始尋找解決方案,我將需要減少數據。

由於

回答

0

urls必須是字符串或match patterns陣列。正則表達式不受支持。

WebRequest.jsm使用resource://gre/modules/MatchPattern.jsm。有人可能會對util/match-pattern add-on sdk api產生困惑,它支持正則表達式。

+0

從https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/WebRequest.jsm#onBeforeRequest處獲得文檔。這表明,網址是「RegExp數組」。這很清楚。無論如何,我從谷歌嘗試你的匹配模式,沒有運氣。在我這樣做之前,幾乎看起來在進行日誌記錄之前,可以在請求內部進行日誌記錄,但我不知道它是否正在按照我的需要進行操作。 – Dale