Identifique la pestaña que realizó la solicitud en el complemento de Firefox SDK

Estoy usando laFirefox Addon SDK para construir algo que monitoree y muestre el tráfico HTTP en el navegador. Similar a HTTPFox o Encabezados HTTP en vivo. Estoy interesado en identificar qué pestaña del navegador (si corresponde) generó la solicitud

Utilizando la servicio-observador Estoy monitoreando los eventos de "http-on-examine-response". Tengo un código como el siguiente para identificar el nsIDomWindow que generó la solicitud:


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

Más importante de ladocumentación sobre cómo identificar el navegador que generó la solicitud. Algunos también se toman de laGoogle PageSpeed Complemento de Firefox.

Hay una forma recomendada o preferida de ir desde la nsIDOMWindow objetodomWin a un elemento de pestaña en la SDK pestañas módulo?

He considerado algo hacky como escanear la lista de pestañas para una con una URL que coincida con la URL de domWin, pero luego tengo que preocuparme de que varias pestañas tengan la misma URL.

Respuestas a la pregunta(4)

Su respuesta a la pregunta