e10s-我想从nsIObserver nsIHttpChannel nsIDOMWindow nsIDOMDocument获取。我怎么做?

e10s-我想从nsIObserver nsIHttpChannel nsIDOMWindow nsIDOMDocument获取。我怎么做?,e10s,E10s,我的插件在FF41上工作。现在我想在E10上迁移。使用Firefox开发者版v43。 示例观察者(c++)。 示例JS助手 频道\u GetownerWindows: function( objChannel ) // This option does not worked in v43[e10s]; <br> { try { var notificationCallbacks = objChannel.QueryInterface(Comp


我的插件在FF41上工作。现在我想在E10上迁移。使用Firefox开发者版v43。

示例观察者(c++)。


示例JS助手

频道\u GetownerWindows:

function( objChannel ) // This option does not worked in v43[e10s]; <br>
{ 
    try 
    { 
        var notificationCallbacks = objChannel.QueryInterface(Components.interfaces.nsIHttpChannel).notificationCallbacks; 
        if ( !notificationCallbacks ) 
        { 
            var loadGroup = objChannel.QueryInterface(Components.interfaces.nsIRequest).loadGroup.notificationCallbacks; 
            if ( loadGroup ) notificationCallbacks = loadGroup.notificationCallbacks; 
        } 
        if ( notificationCallbacks ) 
        { 
            return notificationCallbacks.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
                                                                    .getInterface(Components.interfaces.nsIDOMWindow) 
                                                                    .QueryInterface(Components.interfaces.nsISupports); 
        } 
    } 
    catch ( err ) 
    { 
        this.ErrorOut( err ); 
    }   
    return null;
}
function( objChannel ) 
{   
    try 
    { 
        return objChannel.QueryInterface(Components.interfaces.nsIHttpChannel) 
                                            .notificationCallbacks 
                                            .getInterface(Components.interfaces.nsILoadContext)
                                            .topFrameElement 
                                            .QueryInterface(Components.interfaces.nsISupports); 
    } 
    catch ( err ) 
    { 
        this.ErrorOut( err ); 
    }   
    return null; 
}
是错误-没有接口….


频道\u GetownerWindows:

function( objChannel ) // This option does not worked in v43[e10s]; <br>
{ 
    try 
    { 
        var notificationCallbacks = objChannel.QueryInterface(Components.interfaces.nsIHttpChannel).notificationCallbacks; 
        if ( !notificationCallbacks ) 
        { 
            var loadGroup = objChannel.QueryInterface(Components.interfaces.nsIRequest).loadGroup.notificationCallbacks; 
            if ( loadGroup ) notificationCallbacks = loadGroup.notificationCallbacks; 
        } 
        if ( notificationCallbacks ) 
        { 
            return notificationCallbacks.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
                                                                    .getInterface(Components.interfaces.nsIDOMWindow) 
                                                                    .QueryInterface(Components.interfaces.nsISupports); 
        } 
    } 
    catch ( err ) 
    { 
        this.ErrorOut( err ); 
    }   
    return null;
}
function( objChannel ) 
{   
    try 
    { 
        return objChannel.QueryInterface(Components.interfaces.nsIHttpChannel) 
                                            .notificationCallbacks 
                                            .getInterface(Components.interfaces.nsILoadContext)
                                            .topFrameElement 
                                            .QueryInterface(Components.interfaces.nsISupports); 
    } 
    catch ( err ) 
    { 
        this.ErrorOut( err ); 
    }   
    return null; 
}

请帮我解决这个问题。谢谢。
已解决

var browser = objChannel.QueryInterface(Components.interfaces.nsIHttpChannel)
    .notificationCallbacks
    .getInterface(Components.interfaces.nsILoadContext).topFrameElement;

var window = browser.contentWindow.QueryInterface(Components.interfaces.nsISupports);

请格式化您的代码。每行需要四个空格来表示它是代码。将代码格式化为代码,删除了不需要的
,修复了非结束粗体