diff --git a/mozilla/docshell/base/nsWebShell.cpp b/mozilla/docshell/base/nsWebShell.cpp index 05393c2583f..00892b10ce0 100644 --- a/mozilla/docshell/base/nsWebShell.cpp +++ b/mozilla/docshell/base/nsWebShell.cpp @@ -272,22 +272,6 @@ nsWebShell::GetInterface(const nsIID &aIID, void** aInstancePtr) NS_ADDREF((nsISupports*)*aInstancePtr); return NS_OK; } - else if(aIID.Equals(NS_GET_IID(nsIScriptGlobalObject))) - { - NS_ENSURE_SUCCESS(EnsureScriptEnvironment(), NS_ERROR_FAILURE); - *aInstancePtr = mScriptGlobal; - NS_ADDREF((nsISupports*)*aInstancePtr); - return NS_OK; - } - else if(aIID.Equals(NS_GET_IID(nsIDOMWindowInternal)) || - aIID.Equals(NS_GET_IID(nsIDOMWindow))) - - { - NS_ENSURE_SUCCESS(EnsureScriptEnvironment(), NS_ERROR_FAILURE); - NS_ENSURE_SUCCESS(mScriptGlobal->QueryInterface(aIID, aInstancePtr), - NS_ERROR_FAILURE); - return NS_OK; - } if (!*aInstancePtr || NS_FAILED(rv)) return nsDocShell::GetInterface(aIID,aInstancePtr); diff --git a/mozilla/embedding/browser/webBrowser/nsWebBrowser.cpp b/mozilla/embedding/browser/webBrowser/nsWebBrowser.cpp index a324ac9c0af..e8847962a4d 100644 --- a/mozilla/embedding/browser/webBrowser/nsWebBrowser.cpp +++ b/mozilla/embedding/browser/webBrowser/nsWebBrowser.cpp @@ -914,12 +914,17 @@ NS_IMETHODIMP nsWebBrowser::Create() NS_IMETHODIMP nsWebBrowser::Destroy() { - InternalDestroy(); + // Stop any activity within the webBrowser... + if (mDocShellAsNav) { + mDocShellAsNav->Stop(nsIWebNavigation::STOP_ALL); + } - if(!mInitInfo) - mInitInfo = new nsWebBrowserInitInfo(); + InternalDestroy(); - return NS_OK; + if(!mInitInfo) + mInitInfo = new nsWebBrowserInitInfo(); + + return NS_OK; } NS_IMETHODIMP nsWebBrowser::SetPosition(PRInt32 aX, PRInt32 aY) @@ -1403,6 +1408,11 @@ NS_IMETHODIMP nsWebBrowser::Activate(void) domWindow = do_QueryInterface(domWindowExternal); nsCOMPtr piWin(do_QueryInterface(domWindow)); nsCOMPtr focusController; + + // Do nothing if there is no DOMWindow. + if (!piWin) { + return NS_ERROR_FAILURE; + } piWin->GetRootFocusController(getter_AddRefs(focusController)); PRBool needToFocus = PR_TRUE; if (focusController) {