@ Владимир Палант Я приму к сведению ваш комментарий.

авляю некоторые новые функциональные возможности в расширение Firefox,Попробуйте еще раз, который перехватывает коды ошибок HTTP (например, 500) и автоматически повторяет загрузку страницы через некоторый интервал.

Захват кодов работает отлично, и я пытаюсь подсчитать общее количество попыток исохранить это на вкладке с помощью Session Store, К сожалению, сейчас я получаю ссылку на окно DOM (черезinterfaceRequestor.getInterface(Components.interfaces.nsIDOMWindow)), но мне нужна ссылка на вкладку, которая являетсяnsIDOMNode согласноДокументация nsISessionStore для setTabValue ().

Что у меня есть до сих пор (я вырвал реальную попытку из этого примера):

// 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");
    }
},

Это, конечно, не наsetTabValue с неверным параметром. Как я могу получить вкладку, связанную с окном DOM?

Как альтернативное решение, могу ли я каким-то образом хранить переменные, связанные с DOM-окном, чтобы мне не приходилось очищать память самостоятельно?

Ответы на вопрос(2)

Ваш ответ на вопрос