Estoy usando Firefox Addon SDK para crear algo que supervise y muestre el tráfico HTTP en el navegador. Similar a HTTPFox o Live HTTP Headers. Estoy interesado en identificar qué pestaña del navegador (si existe) generé la solicitudPestaña Identificar que realizó una solicitud en Firefox Addon SDK
Uso del observer-service Estoy supervisando los eventos "http-on-examine-response". Tengo un código como el siguiente para identificar el nsIDomWindow que generó la petición:
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);
Parcialmente cribbed del documentation for how to identify the browser that generated the request. Algunos también se toman del complemento Google PageSpeed de Firefox.
¿Existe una manera recomendada o preferida para pasar del objeto nsIDOMWindowdomWin
a un elemento de tabulación en el módulo SDK tabs?
He considerado algo raro como escanear la lista de pestañas para una con una URL que coincida con la URL de domWin, pero luego tengo que preocuparme por las múltiples pestañas que tienen la misma URL.
Impresionante que funciona genial! Supongo que necesito vigilar la fuente y la documentación. – Rob