bug #46866. Added a read-only DOMWindow attribute to nsIWebProgress.

This commit is contained in:
rpotts%netscape.com 2000-12-14 23:26:35 +00:00
Родитель 43cd39908f
Коммит 289298c3f5
3 изменённых файлов: 65 добавлений и 24 удалений

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

@ -593,6 +593,18 @@ NS_IMETHODIMP nsWebBrowser::RemoveProgressListener(nsIWebProgressListener* aList
return mDocShellAsProgress->RemoveProgressListener(aListener);
}
NS_IMETHODIMP nsWebBrowser::GetDOMWindow(nsIDOMWindow **aResult)
{
nsresult rv = NS_ERROR_FAILURE;
*aResult = nsnull;
if (mDocShell) {
rv = mDocShellAsProgress->GetDOMWindow(aResult);
}
return rv;
}
//*****************************************************************************
// nsWebBrowser::nsIBaseWindow
//*****************************************************************************

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

@ -35,6 +35,8 @@
#include "nsCOMPtr.h"
#include "nsCom.h"
#include "nsIDOMWindow.h"
// XXX ick ick ick
#include "nsIContentViewerContainer.h"
#include "nsIDocument.h"
@ -968,6 +970,26 @@ nsDocLoaderImpl::RemoveProgressListener(nsIWebProgressListener *aListener)
return rv;
}
NS_IMETHODIMP
nsDocLoaderImpl::GetDOMWindow(nsIDOMWindow **aResult)
{
nsresult rv = NS_OK;
*aResult = nsnull;
//
// The DOM Window is available from the associated container (ie DocShell)
// if one is available...
//
if (mContainer) {
nsCOMPtr<nsIDOMWindow> window(do_GetInterface(mContainer, &rv));
*aResult = window;
NS_IF_ADDREF(*aResult);
}
return rv;
}
nsresult nsDocLoaderImpl::GetProgressStatusFlags(PRInt32 *aProgressStateFlags)
{
*aProgressStateFlags = mProgressStateFlags;

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

@ -22,37 +22,44 @@
#include "nsISupports.idl"
interface nsIDOMWindow;
interface nsIWebProgressListener;
/**
* The nsIWebProgress interface is used to look at the progress of a given
* browser loading.
* The nsIWebProgress interface is used to look at the progress of document
* loading in a particular DOM Window.
*/
[scriptable, uuid(570F39D0-EFD0-11d3-B093-00A024FFC08C)]
interface nsIWebProgress : nsISupports
{
/*
Registers a listener to be notified of Progress Events
{
/**
* Registers a listener to be notified of Progress Events
*
* @param listener - The listener interface to be called when a progress
* event occurs.
*
* @return NS_OK - Listener was registered successfully.
* NS_INVALID_ARG - The listener passed in was either nsnull,
* or was already registered with this progress
* interface.
*/
void addProgressListener(in nsIWebProgressListener listener);
@param listener - The listener interface to be called when a progress event
occurs.
/**
* Removes a previously registered listener of Progress Events
*
* @param listener - The listener interface previously registered with
* AddListener().
*
* @return NS_OK - Listener was successfully unregistered.
* NS_ERROR_INVALID_ARG - The listener was not previously
* registered listener.
*/
void removeProgressListener(in nsIWebProgressListener listener);
@return NS_OK - Listener was registered successfully.
NS_INVALID_ARG - The listener passed in was either nsnull,
or was already registered with this progress interface.
*/
void addProgressListener(in nsIWebProgressListener listener);
/*
Removes a previously registered listener of Progress Events
@param listener - The listener interface previously registered with
AddListener() this may be nsnull if a valid cookie is provided.
@return NS_OK - Listener was successfully unregistered.
NS_ERROR_INVALID_ARG - Neither the cookie nor the listener point
to a previously registered listener.
*/
void removeProgressListener(in nsIWebProgressListener listener);
/**
* The DOM Window associated with the WebProgress instance.
*/
readonly attribute nsIDOMWindow DOMWindow;
};