gecko-dev/xpfe/browser/src/nsBrowserInstance.h

136 строки
4.0 KiB
C
Исходник Обычный вид История

1999-08-31 18:05:08 +04:00
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
1999-08-31 18:05:08 +04:00
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
1999-08-31 18:05:08 +04:00
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
1999-08-31 18:05:08 +04:00
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
1999-08-31 18:05:08 +04:00
*/
#ifndef nsBrowserInstance_h___
#define nsBrowserInstance_h___
// Helper Classes
#include "nsCOMPtr.h"
#include "nsWeakReference.h"
// Interfaces Needed
1999-08-31 18:05:08 +04:00
#include "nsIBrowserInstance.h"
#include "nsIURIContentListener.h"
1999-08-31 18:05:08 +04:00
1999-09-02 00:41:30 +04:00
#include "nsIAppShellComponentImpl.h"
1999-08-31 18:05:08 +04:00
#include "nscore.h"
#include "nsString.h"
#include "nsISupports.h"
#include "nsIStreamObserver.h"
#include "nsIObserver.h"
#include "nsICmdLineHandler.h"
#include "nsIXULBrowserWindow.h"
#include "nsIWebProgressListener.h"
#include "nsIWebShell.h"
2000-05-03 09:33:07 +04:00
#include "nsIUrlbarHistory.h"
#include "nsISHistory.h"
class nsIDocShell;
1999-08-31 18:05:08 +04:00
class nsIScriptContext;
class nsIDOMWindowInternal;
1999-08-31 18:05:08 +04:00
class nsIDOMNode;
class nsIURI;
class nsIWebShellWindow;
class nsIFindComponent;
#define SH_IN_FRAMES
1999-08-31 18:05:08 +04:00
////////////////////////////////////////////////////////////////////////////////
// nsBrowserInstance:
////////////////////////////////////////////////////////////////////////////////
class nsBrowserInstance : public nsIBrowserInstance,
public nsIURIContentListener,
public nsIWebProgressListener,
public nsSupportsWeakReference
{
1999-08-31 18:05:08 +04:00
public:
nsBrowserInstance();
virtual ~nsBrowserInstance();
NS_DECL_ISUPPORTS
NS_DECL_NSIBROWSERINSTANCE
NS_DEFINE_STATIC_CID_ACCESSOR( NS_BROWSERINSTANCE_CID )
// URI Content listener
NS_DECL_NSIURICONTENTLISTENER
// WebProgress listener
NS_DECL_NSIWEBPROGRESSLISTENER
2000-08-23 04:53:04 +04:00
static PRUint32 gRefCnt;
protected:
nsresult GetContentAreaDocShell(nsIDocShell** outDocShell);
nsresult GetContentWindow(nsIDOMWindowInternal** outContentWindow);
nsresult GetContentAreaDocLoader(nsIDocumentLoader** outDocLoader);
nsresult GetFocussedContentWindow(nsIDOMWindowInternal** outFocussedWindow);
void ReinitializeContentVariables();
nsresult InitializeSearch(nsIDOMWindowInternal* windowToSearch, nsIFindComponent *finder );
NS_IMETHOD EnsureXULBrowserWindow();
1999-08-31 18:05:08 +04:00
// helper methods for dealing with document loading...
nsresult StartDocumentLoad(nsIDOMWindow *aDOMWindow,
nsIChannel *aChannel);
nsresult EndDocumentLoad(nsIDOMWindow *aDOMWindow,
nsIChannel *aChannel,
nsresult aResult);
PRBool mIsClosed;
1999-08-31 18:05:08 +04:00
nsCOMPtr<nsIXULBrowserWindow> mXULBrowserWindow;
#ifdef SH_IN_FRAMES
nsCOMPtr<nsISHistory> mSessionHistory;
#endif
1999-08-31 18:05:08 +04:00
nsIScriptContext *mContentScriptContext; // weak reference
nsWeakPtr mContentWindowWeak;
nsWeakPtr mContentAreaDocShellWeak;
nsWeakPtr mContentAreaDocLoaderWeak;
1999-08-31 18:05:08 +04:00
nsIWebShellWindow *mWebShellWin; // weak reference
nsIDocShell * mDocShell; // weak reference
nsIDOMWindowInternal* mDOMWindow; // weak reference
2000-05-03 09:33:07 +04:00
nsCOMPtr<nsIUrlbarHistory> mUrlbarHistory; //We own this
1999-08-31 18:05:08 +04:00
nsCOMPtr<nsISupports> mSearchContext; // at last, something we really own
1999-09-02 00:41:30 +04:00
nsInstanceCounter mInstanceCounter;
nsCOMPtr<nsIInputStream> mPostData; // Post data for current page.
#ifdef DEBUG_warren
1999-08-31 18:05:08 +04:00
PRIntervalTime mLoadStartTime;
#endif
};
#endif // nsBrowserInstance_h___