Аддон Firefox: получение вкладки из XMLHttpRequest

Я пытаюсь связать XMLHttpRequest с вкладкой в ​​браузере, используя следующий код:

function getBrowserFromChannel(aChannel) {
    var notificationCallbacks = 
        aChannel.notificationCallbacks ? 
                    aChannel.notificationCallbacks :
                    aChannel.loadGroup.notificationCallbacks;

    if (!notificationCallbacks) {
        console.log("no callbacks");
        return (0);
    }
    var loadContext = notificationCallbacks.getInterface(Ci.nsILoadContext);

getInterface(Ci.nsILoadContext) завершается с ошибкой: «У компонента нет запрошенного интерфейса»

Любая идея, как еще я могу получить браузер?

Спасибо


person Community    schedule 13.01.2014    source источник


Ответы (1)


Попробуйте этот код (от Lightbeam) :

function getLoadContext(aRequest) {
    try {
        // first try the notification callbacks
        var loadContext = aRequest.QueryInterface(Ci.nsIChannel)
            .notificationCallbacks.getInterface(Ci.nsILoadContext);
        return loadContext;
    } catch (ex) {
        // fail over to trying the load group
        try {
            if (!aRequest.loadGroup) return null;

            var loadContext = aRequest.loadGroup.notificationCallbacks.getInterface(Ci.nsILoadContext);
            return loadContext;
        } catch (ex) {
            return null;
        }
    }
}

Обратите внимание на лицензию MPL 1.1/GPL 2.0/LGPL 2.1.

person erikvold    schedule 10.04.2014