Encontrar la pestaña asociada con una ventana DOM

Estoy agregando algunas funcionalidades nuevas en una extensión de Firefox,Inténtalo de nuev, que atrapa los códigos de error HTTP (por ejemplo, 500) y reintenta automáticamente cargar la página después de un intervalo.

Trapping los códigos funciona excelentemente, y estoy tratando de contar el número total de reintentos y almacenar esto en la pestaña usando Session Store. Desafortunadamente, en este momento estoy obteniendo una referencia a una ventana DOM (a través deinterfaceRequestor.getInterface(Components.interfaces.nsIDOMWindow)), pero necesito una referencia a una pestaña, que es unansIDOMNode segúnnsISessionStore docs en setTabValue ().

Lo que tengo hasta ahora (he eliminado el reintento real de este ejemplo):

// This function implements the nsIObserverService interface and observes
// the status of all HTTP channels
observe : function(aSubject, aTopic, aData) {
    var httpChannel = aSubject
            .QueryInterface(Components.interfaces.nsIHttpChannel);
    if (httpChannel.responseStatus == 500) {
        var domWindow;
        try {
            var notificationCallbacks;
            if (httpChannel.notificationCallbacks) {
                notificationCallbacks = httpChannel.notificationCallbacks;
            } else {
                notificationCallbacks = aSubject.loadGroup
                        .notificationCallbacks;
            }
            var interfaceRequestor = notificationCallbacks
                    .QueryInterface(Components.interfaces
                        .nsIInterfaceRequestor);
            domWindow = interfaceRequestor
                    .getInterface(Components.interfaces.nsIDOMWindow);
        } catch (e) {
            // No window associated with this channel
            return;
        }
        var ss = Components.classes["@mozilla.org/browser/sessionstore;1"]
                .getService(Components.interfaces.nsISessionStore);
        ss.setTabValue(domWindow, "foo", "bar");
    }
},

Esto, por supuesto, falla ensetTabValue con un parámetro no válido. ¿Cómo puedo obtener la pestaña asociada con la ventana DOM?

Como solución alternativa, ¿puedo almacenar variables asociadas con una ventana DOM de alguna manera para que no tenga que limpiar la memoria yo mismo?

Respuestas a la pregunta(2)

Su respuesta a la pregunta