我使用Firefox Addon SDK来构建监视器并在浏览器中显示HTTP通信量。类似于HTTPFox或Live HTTP Headers。我有兴趣确定浏览器中的哪个选项卡(如果有)生成请求识别在Firefox Addon SDK中发出请求的选项卡
使用observer-service我正在监视“http-on-examine-response”事件。我有如下所示的代码,以确定产生该请求的nsIDomWindow:
const observer = require("observer-service"),
{Ci} = require("chrome");
function getTabFromChannel(channel) {
try {
var noteCB= channel.notificationCallbacks ? channel.notificationCallbacks : channel.loadGroup.notificationCallbacks;
if (!noteCB) { return null; }
var domWin = noteCB.getInterface(Ci.nsIDOMWindow);
return domWin.top;
} catch (e) {
dump(e + "\n");
return null;
}
}
function logHTTPTraffic(sub, data) {
sub.QueryInterface(Ci.nsIHttpChannel);
var ab = getTabFromChannel(sub);
console.log(tab);
}
observer.add("http-on-examine-response", logHTTPTraffic);
从documentation for how to identify the browser that generated the request晴那儿剽窃。有些也取自Firefox的插件Google PageSpeed。
是否有从nsIDOMWindow对象domWin
到SDK tabs模块中的选项卡元素的推荐或首选方法?
我已经考虑过像扫描选项卡列表中的一个与domWin的URL匹配的URL,但后来我不得不担心具有相同URL的多个选项卡。
太棒了,很好用!猜猜我需要留意源代码和文档。 – Rob