My addon worked on FF41. Now I want to migrate on e10s. Use Firefox developer edition v43.
The example observer (c++).
NS_IMETHODIMP CFFObserver::Observe( nsISupports* aSubject, const char* aTopic, const char16_t* aData )
{ .........
if ( lstrcmpA( aTopic, "http-on-modify-request" ) == 0 )
{
CFFObserver::onSending( aSubject );
} ..........
}
void CFFObserver::onSending( nsISupports* IHttpChannel )
{
..............
nsISupports* IDOMWindowOwner = m_gate.Channel_GetOwnerWindow( IHttpChannel );
.................
}
The example JS helper.
Channel_GetOwnerWindow:
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;
}
Below code works but I cannot get document from getting nsIDOMWindow.
......
objWindow.QueryInterface(Components.interfaces.nsIDOMWindow).document.QueryInterface(Components.interfaces.nsISupports)
is error - no interface....
Channel_GetOwnerWindow:
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;
}
Help me please resolve this problem. Thanks.
that werent needed, fixed non closing bolds – mikek3332002 Oct 06 '15 at 05:41