Implemented EnsureWebProgressListener(). You can now call GetInterface on the docshell to get to a nsIWebProgressListener interface.

This commit is contained in:
tbogard%aol.net 2000-03-31 04:11:29 +00:00
Родитель 29c2386a5b
Коммит c9d2a7b3e3
2 изменённых файлов: 20 добавлений и 2 удалений

Просмотреть файл

@ -69,6 +69,7 @@ static NS_DEFINE_IID(kDeviceContextCID, NS_DEVICE_CONTEXT_CID);
nsDocShell::nsDocShell() :
mContentListener(nsnull),
mWebProgressListener(nsnull),
mInitInfo(nsnull),
mMarginWidth(0),
mMarginHeight(0),
@ -155,6 +156,9 @@ NS_IMETHODIMP nsDocShell::GetInterface(const nsIID& aIID, void** aSink)
if(aIID.Equals(NS_GET_IID(nsIURIContentListener)) &&
NS_SUCCEEDED(EnsureContentListener()))
*aSink = mContentListener;
if(aIID.Equals(NS_GET_IID(nsIURIContentListener)) &&
NS_SUCCEEDED(EnsureWebProgressListener()))
*aSink = mWebProgressListener;
else if(aIID.Equals(NS_GET_IID(nsIScriptGlobalObject)) &&
NS_SUCCEEDED(EnsureScriptEnvironment()))
*aSink = mScriptGlobal;
@ -1287,6 +1291,12 @@ NS_IMETHODIMP nsDocShell::Destroy()
NS_RELEASE(mContentListener);
}
if(mWebProgressListener)
{
mWebProgressListener->DocShell(nsnull);
NS_RELEASE(mWebProgressListener);
}
return NS_OK;
}
@ -2500,8 +2510,15 @@ NS_IMETHODIMP nsDocShell::UpdateCurrentGlobalHistory()
NS_IMETHODIMP nsDocShell::EnsureWebProgressListener()
{
//XXXTAB
NS_ERROR("Not yet IMplemented");
if(mWebProgressListener)
return NS_OK;
mWebProgressListener = new nsDSWebProgressListener();
NS_ENSURE_TRUE(mWebProgressListener, NS_ERROR_OUT_OF_MEMORY);
NS_ADDREF(mWebProgressListener);
mWebProgressListener->DocShell(this);
return NS_OK;
}

Просмотреть файл

@ -202,6 +202,7 @@ protected:
nsString mTitle;
nsVoidArray mChildren;
nsDSURIContentListener* mContentListener;
nsDSWebProgressListener* mWebProgressListener;
nsDocShellInitInfo* mInitInfo;
nsCOMPtr<nsIContentViewer> mContentViewer;
nsCOMPtr<nsIDeviceContext> mDeviceContext;