mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-05 05:30:29 +00:00
Bug #34321,34350 --> be sure to set the web progress listener on the doc loader
before every load. r=travis
This commit is contained in:
parent
5be529fbad
commit
c075035b09
@ -653,6 +653,9 @@ void nsDocLoaderImpl::FireOnEndDocumentLoad(nsDocLoaderImpl* aLoadInitiator,
|
||||
if (mParent) {
|
||||
mParent->FireOnEndDocumentLoad(aLoadInitiator, aDocChannel, aStatus);
|
||||
}
|
||||
|
||||
// now forget about our progress listener...
|
||||
mProgressListener = nsnull;
|
||||
}
|
||||
|
||||
|
||||
|
@ -681,22 +681,24 @@ nsresult nsURILoader::SetupLoadCookie(nsISupports * aWindowContext, nsISupports
|
||||
nsLoadCookie * newLoadCookie = new nsLoadCookie();
|
||||
if (newLoadCookie)
|
||||
{
|
||||
newLoadCookie->Init(loadCookie);
|
||||
|
||||
// bind the web progress listener (if there is one) to the web progress
|
||||
// instance of the doc loader..
|
||||
nsCOMPtr<nsIDocumentLoader> docLoader (do_GetInterface(loadCookie));
|
||||
nsCOMPtr<nsIWebProgress> webProgress (do_QueryInterface(docLoader));
|
||||
nsCOMPtr<nsIWebProgressListener> webProgressListener (do_GetInterface(aWindowContext));
|
||||
if (webProgress && webProgressListener)
|
||||
webProgress->AddProgressListener(webProgressListener);
|
||||
|
||||
newLoadCookie->Init(loadCookie);
|
||||
rv = cntListener->SetLoadCookie (NS_STATIC_CAST(nsISupports *, (nsIInterfaceRequestor *) newLoadCookie));
|
||||
newLoadCookie->QueryInterface(NS_GET_IID(nsISupports), getter_AddRefs(loadCookie));
|
||||
} // if we created a new cookie
|
||||
} // if we don't have a load cookie already
|
||||
} // if we have a cntListener
|
||||
|
||||
// every time we do a load, we should reset the progress listener on it...
|
||||
if (loadCookie)
|
||||
{
|
||||
// bind the web progress listener (if there is one) to the web progress
|
||||
// instance of the doc loader..
|
||||
nsCOMPtr<nsIDocumentLoader> docLoader (do_GetInterface(loadCookie));
|
||||
nsCOMPtr<nsIWebProgress> webProgress (do_QueryInterface(docLoader));
|
||||
nsCOMPtr<nsIWebProgressListener> webProgressListener (do_GetInterface(aWindowContext));
|
||||
if (webProgress && webProgressListener)
|
||||
webProgress->AddProgressListener(webProgressListener);
|
||||
}
|
||||
|
||||
*aLoadCookie = loadCookie;
|
||||
NS_IF_ADDREF(*aLoadCookie);
|
||||
|
Loading…
x
Reference in New Issue
Block a user