diff options
author | Christian Persch <chpe@cvs.gnome.org> | 2004-05-11 21:57:24 +0800 |
---|---|---|
committer | Christian Persch <chpe@src.gnome.org> | 2004-05-11 21:57:24 +0800 |
commit | 5521d2ae1b4be64108418937f79983cfc5caf476 (patch) | |
tree | 50d186cc70b7fd52c1f0f10e467d429539e6437e /embed/mozilla/EphyBrowser.cpp | |
parent | 83ae598bfce22d0da57a0073fdf89025c8a1cb44 (diff) | |
download | gsoc2013-epiphany-5521d2ae1b4be64108418937f79983cfc5caf476.tar gsoc2013-epiphany-5521d2ae1b4be64108418937f79983cfc5caf476.tar.gz gsoc2013-epiphany-5521d2ae1b4be64108418937f79983cfc5caf476.tar.bz2 gsoc2013-epiphany-5521d2ae1b4be64108418937f79983cfc5caf476.tar.lz gsoc2013-epiphany-5521d2ae1b4be64108418937f79983cfc5caf476.tar.xz gsoc2013-epiphany-5521d2ae1b4be64108418937f79983cfc5caf476.tar.zst gsoc2013-epiphany-5521d2ae1b4be64108418937f79983cfc5caf476.zip |
Destroy browser on destroy, but delete it on finalize. Fix for bug
2004-05-11 Christian Persch <chpe@cvs.gnome.org>
* embed/mozilla/EphyBrowser.cpp:
* embed/mozilla/mozilla-embed.cpp:
Destroy browser on destroy, but delete it on finalize. Fix for
bug #142184, merged from HEAD.
Diffstat (limited to 'embed/mozilla/EphyBrowser.cpp')
-rw-r--r-- | embed/mozilla/EphyBrowser.cpp | 31 |
1 files changed, 24 insertions, 7 deletions
diff --git a/embed/mozilla/EphyBrowser.cpp b/embed/mozilla/EphyBrowser.cpp index 7ad661b5e..9530b346c 100644 --- a/embed/mozilla/EphyBrowser.cpp +++ b/embed/mozilla/EphyBrowser.cpp @@ -394,7 +394,10 @@ nsresult EphyBrowser::Destroy () DetachListeners (); mWebBrowser = nsnull; - + mDOMWindow = nsnull; + + mInitialized = PR_FALSE; + return NS_OK; } @@ -410,7 +413,7 @@ nsresult EphyBrowser::GoToHistoryIndex (PRInt16 index) nsresult EphyBrowser::SetZoom (float aZoom, PRBool reflow) { - NS_ENSURE_TRUE (mWebBrowser, NS_ERROR_FAILURE); + if (!mWebBrowser) return NS_ERROR_FAILURE; if (reflow) { @@ -484,6 +487,8 @@ nsresult EphyBrowser::GetContentViewer (nsIContentViewer **aViewer) nsresult EphyBrowser::GetZoom (float *aZoom) { + NS_ENSURE_TRUE (mWebBrowser, NS_ERROR_FAILURE); + nsCOMPtr<nsIContentViewer> contentViewer; GetContentViewer (getter_AddRefs(contentViewer)); NS_ENSURE_TRUE (contentViewer, NS_ERROR_FAILURE); @@ -533,6 +538,8 @@ nsresult EphyBrowser::GetTargetDocument (nsIDOMDocument **aDOMDocument) nsresult EphyBrowser::GetSHInfo (PRInt32 *count, PRInt32 *index) { + NS_ENSURE_TRUE (mWebBrowser, NS_ERROR_FAILURE); + nsCOMPtr<nsISHistory> SessionHistory; GetSHistory (getter_AddRefs(SessionHistory)); NS_ENSURE_TRUE (SessionHistory, NS_ERROR_FAILURE); @@ -545,6 +552,8 @@ nsresult EphyBrowser::GetSHInfo (PRInt32 *count, PRInt32 *index) nsresult EphyBrowser::GetSHTitleAtIndex (PRInt32 index, PRUnichar **title) { + NS_ENSURE_TRUE (mWebBrowser, NS_ERROR_FAILURE); + nsCOMPtr<nsISHistory> SessionHistory; GetSHistory (getter_AddRefs(SessionHistory)); NS_ENSURE_TRUE (SessionHistory, NS_ERROR_FAILURE); @@ -563,6 +572,8 @@ nsresult EphyBrowser::GetSHTitleAtIndex (PRInt32 index, PRUnichar **title) nsresult EphyBrowser::GetSHUrlAtIndex (PRInt32 index, nsCString &url) { + NS_ENSURE_TRUE (mWebBrowser, NS_ERROR_FAILURE); + nsCOMPtr<nsISHistory> SessionHistory; GetSHistory (getter_AddRefs(SessionHistory)); NS_ENSURE_TRUE (SessionHistory, NS_ERROR_FAILURE); @@ -629,7 +640,7 @@ nsresult EphyBrowser::GetPageDescriptor(nsISupports **aPageDescriptor) nsresult EphyBrowser::GetDocumentUrl (nsCString &url) { - if (!mDOMWindow) return NS_ERROR_FAILURE; + NS_ENSURE_TRUE (mDOMWindow, NS_ERROR_FAILURE); nsCOMPtr<nsIDOMDocument> DOMDocument; mDOMWindow->GetDocument (getter_AddRefs(DOMDocument)); @@ -655,6 +666,8 @@ nsresult EphyBrowser::GetDocumentUrl (nsCString &url) nsresult EphyBrowser::GetTargetDocumentUrl (nsCString &url) { + NS_ENSURE_TRUE (mWebBrowser, NS_ERROR_FAILURE); + nsCOMPtr<nsIDOMDocument> DOMDocument; GetTargetDocument (getter_AddRefs(DOMDocument)); NS_ENSURE_TRUE (DOMDocument, NS_ERROR_FAILURE); @@ -679,6 +692,8 @@ nsresult EphyBrowser::GetTargetDocumentUrl (nsCString &url) nsresult EphyBrowser::ForceEncoding (const char *encoding) { + NS_ENSURE_TRUE (mWebBrowser, NS_ERROR_FAILURE); + nsCOMPtr<nsIContentViewer> contentViewer; GetContentViewer (getter_AddRefs(contentViewer)); NS_ENSURE_TRUE (contentViewer, NS_ERROR_FAILURE); @@ -715,6 +730,8 @@ nsresult EphyBrowser::GetEncodingInfo (EphyEncodingInfo **infoptr) nsresult result; EphyEncodingInfo *info; + NS_ENSURE_TRUE (mWebBrowser, NS_ERROR_FAILURE); + nsCOMPtr<nsIDOMDocument> domDoc; GetTargetDocument (getter_AddRefs(domDoc)); NS_ENSURE_TRUE (domDoc, NS_ERROR_FAILURE); @@ -836,10 +853,9 @@ nsresult EphyBrowser::GetEncodingInfo (EphyEncodingInfo **infoptr) nsresult EphyBrowser::DoCommand (const char *command) { - nsCOMPtr<nsICommandManager> cmdManager; - NS_ENSURE_TRUE (mWebBrowser, NS_ERROR_FAILURE); + nsCOMPtr<nsICommandManager> cmdManager; cmdManager = do_GetInterface (mWebBrowser); NS_ENSURE_TRUE (cmdManager, NS_ERROR_FAILURE); @@ -848,10 +864,9 @@ nsresult EphyBrowser::DoCommand (const char *command) nsresult EphyBrowser::GetCommandState (const char *command, PRBool *enabled) { - nsCOMPtr<nsICommandManager> cmdManager; - NS_ENSURE_TRUE (mWebBrowser, NS_ERROR_FAILURE); + nsCOMPtr<nsICommandManager> cmdManager; cmdManager = do_GetInterface (mWebBrowser); NS_ENSURE_TRUE (cmdManager, NS_ERROR_FAILURE); @@ -962,6 +977,8 @@ nsresult EphyBrowser::GetHasModifiedForms (PRBool *modified) { *modified = PR_FALSE; + NS_ENSURE_TRUE (mWebBrowser, NS_ERROR_FAILURE); + nsCOMPtr<nsIDocShell> rootDocShell = do_GetInterface (mWebBrowser); NS_ENSURE_TRUE (rootDocShell, NS_ERROR_FAILURE); |