Bug #20132 --> pass in the interface request object into open url.

Some plugin code in nsWebShell::GetInterface broke progress / status information because it broke
the GetInterface method for webshell. I fixed this.
r=rpotts


git-svn-id: svn://10.0.0.236/trunk@57425 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
mscott%netscape.com
2000-01-11 20:59:24 +00:00
parent b5787cf895
commit da9368485e
2 changed files with 16 additions and 6 deletions

View File

@@ -751,6 +751,7 @@ NS_IMETHODIMP
nsWebShell::GetInterface(const nsIID &aIID, void** aInstancePtr)
{
NS_ENSURE_ARG_POINTER(aInstancePtr);
nsresult rv = NS_OK;
if(aIID.Equals(NS_GET_IID(nsILinkHandler)))
{
@@ -778,9 +779,12 @@ nsWebShell::GetInterface(const nsIID &aIID, void** aInstancePtr)
return NS_OK;
}
else if(mPluginManager) //XXX this seems a little wrong. MMP
return mPluginManager->QueryInterface(aIID, aInstancePtr);
rv = mPluginManager->QueryInterface(aIID, aInstancePtr);
return QueryInterface(aIID, aInstancePtr);
if (!*aInstancePtr || NS_FAILED(rv))
return QueryInterface(aIID, aInstancePtr);
else
return rv;
}
NS_IMETHODIMP
@@ -1566,8 +1570,9 @@ nsWebShell::DoLoadURL(nsIURI * aUri,
* so that urlbar, forward/back buttons will
* behave properly when going to named anchors
*/
nsIInterfaceRequestor * interfaceRequestor = NS_STATIC_CAST(nsIInterfaceRequestor *, this);
nsCOMPtr<nsIChannel> dummyChannel;
rv = NS_OpenURI(getter_AddRefs(dummyChannel), aUri, nsnull);
rv = NS_OpenURI(getter_AddRefs(dummyChannel), aUri, nsnull, interfaceRequestor);
if (NS_FAILED(rv)) return rv;
if (nsnull != (const char *) ref) {
rv = OnStartDocumentLoad(mDocLoader, aUri, "load");