From 7247372aa3e4ef99a3e5bbe413cb730543b1bb3b Mon Sep 17 00:00:00 2001 From: "bryner%brianryner.com" Date: Mon, 3 May 2004 21:48:36 +0000 Subject: [PATCH] deCOMtaminate nsPIDOMWindow (bug 242111). r+sr=jst. git-svn-id: svn://10.0.0.236/trunk@155867 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/accessible/src/base/nsAccessible.cpp | 4 +- .../accessible/src/base/nsRootAccessible.cpp | 2 +- mozilla/chrome/src/nsChromeRegistry.cpp | 1 - mozilla/content/base/src/nsDocument.cpp | 1 - mozilla/content/base/src/nsDocumentViewer.cpp | 17 +- mozilla/content/base/src/nsFrameLoader.cpp | 6 +- mozilla/content/base/src/nsGenericElement.cpp | 4 +- mozilla/content/base/src/nsPrintEngine.cpp | 6 +- .../events/public/nsIEventListenerManager.h | 1 + .../events/src/nsEventListenerManager.cpp | 4 +- .../events/src/nsEventStateManager.cpp | 57 +++-- .../content/events/src/nsEventStateManager.h | 2 +- .../html/content/src/nsGenericHTMLElement.cpp | 4 +- .../html/content/src/nsHTMLInputElement.cpp | 12 +- .../content/xbl/src/nsXBLPrototypeHandler.cpp | 6 +- .../content/xul/content/src/nsXULElement.cpp | 4 +- .../document/src/nsXULCommandDispatcher.cpp | 4 +- .../xul/document/src/nsXULCommandDispatcher.h | 1 - .../xul/document/src/nsXULDocument.cpp | 2 +- mozilla/docshell/base/nsDocShell.cpp | 13 +- mozilla/docshell/base/nsWebShell.cpp | 3 +- mozilla/dom/public/base/nsPIDOMWindow.h | 72 ++++--- mozilla/dom/src/base/nsFocusController.cpp | 13 +- mozilla/dom/src/base/nsGlobalWindow.cpp | 194 +++++------------- mozilla/dom/src/base/nsGlobalWindow.h | 47 ++--- .../browser/cocoa/src/CHBrowserView.mm | 4 +- .../browser/gtk/src/EmbedPrivate.cpp | 22 +- .../browser/photon/src/EmbedPrivate.cpp | 14 +- .../browser/photon/src/PtMozilla.cpp | 3 +- .../webBrowser/nsDocShellTreeOwner.cpp | 13 +- .../browser/webBrowser/nsWebBrowser.cpp | 25 +-- .../components/commandhandler/src/Makefile.in | 1 + .../commandhandler/src/nsCommandManager.cpp | 3 +- .../components/find/src/nsWebBrowserFind.cpp | 12 +- .../components/windowwatcher/src/Makefile.in | 1 + .../windowwatcher/src/nsWindowWatcher.cpp | 7 +- .../typeaheadfind/src/nsTypeAheadFind.cpp | 19 +- mozilla/layout/base/nsCSSFrameConstructor.cpp | 1 - mozilla/layout/base/nsDocumentViewer.cpp | 17 +- mozilla/layout/base/nsIChromeEventHandler.idl | 4 +- mozilla/layout/base/nsPresShell.cpp | 15 +- .../base/public/nsIChromeEventHandler.idl | 4 +- mozilla/layout/generic/nsFrameFrame.cpp | 1 - mozilla/layout/generic/nsHTMLFrame.cpp | 1 - mozilla/layout/generic/nsObjectFrame.cpp | 4 +- mozilla/layout/html/base/src/nsHTMLFrame.cpp | 1 - .../layout/html/base/src/nsObjectFrame.cpp | 4 +- mozilla/layout/html/base/src/nsPresShell.cpp | 15 +- .../layout/html/document/src/nsFrameFrame.cpp | 1 - .../html/style/src/nsCSSFrameConstructor.cpp | 1 - mozilla/layout/printing/nsPrintEngine.cpp | 6 +- .../layout/xul/base/src/nsMenuBarFrame.cpp | 4 +- mozilla/rdf/chrome/src/nsChromeRegistry.cpp | 1 - .../satchel/src/nsFormFillController.cpp | 10 +- .../xpfe/appshell/src/nsChromeTreeOwner.cpp | 1 - .../xpfe/appshell/src/nsWebShellWindow.cpp | 15 +- .../xpfe/browser/src/nsBrowserInstance.cpp | 1 - mozilla/xpinstall/src/Makefile.in | 1 + mozilla/xpinstall/src/nsXPInstallManager.cpp | 5 +- 59 files changed, 278 insertions(+), 439 deletions(-) diff --git a/mozilla/accessible/src/base/nsAccessible.cpp b/mozilla/accessible/src/base/nsAccessible.cpp index a3f2232bc62..c2ec8856aed 100644 --- a/mozilla/accessible/src/base/nsAccessible.cpp +++ b/mozilla/accessible/src/base/nsAccessible.cpp @@ -498,7 +498,7 @@ PRBool nsAccessible::IsPartiallyVisible(PRBool *aIsOffscreen) nsresult nsAccessible::GetFocusedNode(nsIDOMNode *aCurrentNode, nsIDOMNode **aFocusedNode) { - nsCOMPtr focusController; + nsIFocusController *focusController = nsnull; nsCOMPtr document; nsCOMPtr content(do_QueryInterface(aCurrentNode)); if (content) @@ -509,7 +509,7 @@ nsresult nsAccessible::GetFocusedNode(nsIDOMNode *aCurrentNode, nsIDOMNode **aFo if (document) { nsCOMPtr ourWindow(do_QueryInterface(document->GetScriptGlobalObject())); if (ourWindow) - ourWindow->GetRootFocusController(getter_AddRefs(focusController)); + focusController = ourWindow->GetRootFocusController(); } if (focusController) { diff --git a/mozilla/accessible/src/base/nsRootAccessible.cpp b/mozilla/accessible/src/base/nsRootAccessible.cpp index cae66dbb0a7..ff95f6093ec 100644 --- a/mozilla/accessible/src/base/nsRootAccessible.cpp +++ b/mozilla/accessible/src/base/nsRootAccessible.cpp @@ -146,7 +146,7 @@ nsRootAccessible::GetChromeEventHandler(nsIDOMEventTarget **aChromeTarget) nsCOMPtr privateDOMWindow(do_QueryInterface(domWin)); nsCOMPtr chromeEventHandler; if (privateDOMWindow) { - privateDOMWindow->GetChromeEventHandler(getter_AddRefs(chromeEventHandler)); + chromeEventHandler = privateDOMWindow->GetChromeEventHandler(); } nsCOMPtr target(do_QueryInterface(chromeEventHandler)); diff --git a/mozilla/chrome/src/nsChromeRegistry.cpp b/mozilla/chrome/src/nsChromeRegistry.cpp index 5cf216e4ac2..1ad0a2a431d 100644 --- a/mozilla/chrome/src/nsChromeRegistry.cpp +++ b/mozilla/chrome/src/nsChromeRegistry.cpp @@ -64,7 +64,6 @@ #include "nsNetUtil.h" #include "nsIFileChannel.h" #include "nsIXBLService.h" -#include "nsPIDOMWindow.h" #include "nsIDOMWindowInternal.h" #include "nsIDOMWindowCollection.h" #include "nsIDOMLocation.h" diff --git a/mozilla/content/base/src/nsDocument.cpp b/mozilla/content/base/src/nsDocument.cpp index cbb61e5bdcd..9c05db55352 100644 --- a/mozilla/content/base/src/nsDocument.cpp +++ b/mozilla/content/base/src/nsDocument.cpp @@ -94,7 +94,6 @@ #include "nsIPrivateDOMImplementation.h" #include "nsIDOMWindowInternal.h" -#include "nsPIDOMWindow.h" #include "nsIDOMElement.h" #include "nsIBoxObject.h" diff --git a/mozilla/content/base/src/nsDocumentViewer.cpp b/mozilla/content/base/src/nsDocumentViewer.cpp index c87abfa35be..03b74d7f2e1 100644 --- a/mozilla/content/base/src/nsDocumentViewer.cpp +++ b/mozilla/content/base/src/nsDocumentViewer.cpp @@ -568,15 +568,11 @@ nsresult DocumentViewerImpl::SyncParentSubDocMap() { nsCOMPtr item(do_QueryInterface(mContainer)); - nsCOMPtr win(do_GetInterface(item)); - nsCOMPtr pwin(do_QueryInterface(win)); + nsCOMPtr pwin(do_QueryInterface(item)); nsCOMPtr content; if (mDocument && pwin) { - nsCOMPtr frame_element; - pwin->GetFrameElementInternal(getter_AddRefs(frame_element)); - - content = do_QueryInterface(frame_element); + content = do_QueryInterface(pwin->GetFrameElementInternal()); } if (content) { @@ -2787,17 +2783,12 @@ DocumentViewerImpl::GetPopupNode(nsIDOMNode** aNode) NS_ENSURE_TRUE(document, NS_ERROR_FAILURE); - // get the internal dom window - nsCOMPtr internalWin(do_QueryInterface(document->GetScriptGlobalObject(), &rv)); - NS_ENSURE_SUCCESS(rv, rv); - // get the private dom window - nsCOMPtr privateWin(do_QueryInterface(internalWin, &rv)); + nsCOMPtr privateWin(do_QueryInterface(document->GetScriptGlobalObject(), &rv)); NS_ENSURE_SUCCESS(rv, rv); // get the focus controller - nsCOMPtr focusController; - privateWin->GetRootFocusController(getter_AddRefs(focusController)); + nsIFocusController *focusController = privateWin->GetRootFocusController(); NS_ENSURE_TRUE(focusController, NS_ERROR_FAILURE); // get the popup node diff --git a/mozilla/content/base/src/nsFrameLoader.cpp b/mozilla/content/base/src/nsFrameLoader.cpp index 0534d639420..61ff3c80712 100644 --- a/mozilla/content/base/src/nsFrameLoader.cpp +++ b/mozilla/content/base/src/nsFrameLoader.cpp @@ -358,8 +358,7 @@ nsFrameLoader::Destroy() } // Let our window know that we are gone - nsCOMPtr win(do_GetInterface(mDocShell)); - nsCOMPtr win_private(do_QueryInterface(win)); + nsCOMPtr win_private(do_GetInterface(mDocShell)); if (win_private) { win_private->SetFrameElementInternal(nsnull); } @@ -562,8 +561,7 @@ nsFrameLoader::EnsureDocShell() nsCOMPtr frame_element(do_QueryInterface(mOwnerContent)); NS_ASSERTION(frame_element, "frame loader owner element not a DOM element!"); - nsCOMPtr win(do_GetInterface(mDocShell)); - nsCOMPtr win_private(do_QueryInterface(win)); + nsCOMPtr win_private(do_GetInterface(mDocShell)); NS_ENSURE_TRUE(win_private, NS_ERROR_UNEXPECTED); win_private->SetFrameElementInternal(frame_element); diff --git a/mozilla/content/base/src/nsGenericElement.cpp b/mozilla/content/base/src/nsGenericElement.cpp index d7ab54a54ed..b37b8fd02ec 100644 --- a/mozilla/content/base/src/nsGenericElement.cpp +++ b/mozilla/content/base/src/nsGenericElement.cpp @@ -3238,9 +3238,7 @@ nsGenericElement::HasMutationListeners(nsIContent* aContent, PRUint32 aType) if (!window) return PR_FALSE; - PRBool set; - window->HasMutationListeners(aType, &set); - if (!set) + if (!window->HasMutationListeners(aType)) return PR_FALSE; // We know a mutation listener is registered, but it might not diff --git a/mozilla/content/base/src/nsPrintEngine.cpp b/mozilla/content/base/src/nsPrintEngine.cpp index 551e4b1983f..b70db4602df 100644 --- a/mozilla/content/base/src/nsPrintEngine.cpp +++ b/mozilla/content/base/src/nsPrintEngine.cpp @@ -3966,9 +3966,9 @@ nsPrintEngine::FindFocusedDOMWindow() nsIScriptGlobalObject* theSGO = theDoc->GetScriptGlobalObject(); nsCOMPtr theDOMWindow = do_QueryInterface(theSGO); if(theDOMWindow){ - nsCOMPtr focusController; - theDOMWindow->GetRootFocusController(getter_AddRefs(focusController)); - if(focusController){ + nsIFocusController *focusController = + theDOMWindow->GetRootFocusController(); + if (focusController) { nsCOMPtr theDOMWin; focusController->GetFocusedWindow(getter_AddRefs(theDOMWin)); if(theDOMWin && IsWindowsInOurSubTree(theDOMWin)){ diff --git a/mozilla/content/events/public/nsIEventListenerManager.h b/mozilla/content/events/public/nsIEventListenerManager.h index 1acfa44f05f..4e47a586506 100644 --- a/mozilla/content/events/public/nsIEventListenerManager.h +++ b/mozilla/content/events/public/nsIEventListenerManager.h @@ -47,6 +47,7 @@ class nsIDOMEventListener; class nsIScriptContext; class nsIDOMEventTarget; class nsIDOMEventGroup; +class nsIAtom; /* * Event listener manager interface. diff --git a/mozilla/content/events/src/nsEventListenerManager.cpp b/mozilla/content/events/src/nsEventListenerManager.cpp index 26b8cd8f233..2a3a59afaf6 100644 --- a/mozilla/content/events/src/nsEventListenerManager.cpp +++ b/mozilla/content/events/src/nsEventListenerManager.cpp @@ -1931,8 +1931,8 @@ nsEventListenerManager::FixContextMenuEvent(nsIPresContext* aPresContext, if (doc) { nsCOMPtr privWindow = do_QueryInterface(doc->GetScriptGlobalObject()); if (privWindow) { - nsCOMPtr focusController; - privWindow->GetRootFocusController(getter_AddRefs(focusController)); + nsIFocusController *focusController = + privWindow->GetRootFocusController(); if (focusController) focusController->GetFocusedElement(getter_AddRefs(currentFocus)); } diff --git a/mozilla/content/events/src/nsEventStateManager.cpp b/mozilla/content/events/src/nsEventStateManager.cpp index 1ec7f07488c..f5f65b21052 100644 --- a/mozilla/content/events/src/nsEventStateManager.cpp +++ b/mozilla/content/events/src/nsEventStateManager.cpp @@ -545,11 +545,11 @@ nsEventStateManager::PreHandleEvent(nsIPresContext* aPresContext, // we will be focusing it again later when we receive the NS_ACTIVATE // event. See bug 120209. - nsCOMPtr focusController; + nsIFocusController *focusController = nsnull; PRBool isAlreadySuppressed = PR_FALSE; if (ourWindow) { - ourWindow->GetRootFocusController(getter_AddRefs(focusController)); + focusController = ourWindow->GetRootFocusController(); if (focusController) { focusController->GetSuppressFocus(&isAlreadySuppressed); focusController->SetSuppressFocus(PR_TRUE, @@ -646,15 +646,15 @@ nsEventStateManager::PreHandleEvent(nsIPresContext* aPresContext, // Try to keep the focus controllers and the globals in synch if (gLastFocusedDocument && gLastFocusedDocument != mDocument) { - nsCOMPtr lastController; + nsIFocusController *lastController = nsnull; nsCOMPtr lastWindow = do_QueryInterface(gLastFocusedDocument->GetScriptGlobalObject()); if (lastWindow) - lastWindow->GetRootFocusController(getter_AddRefs(lastController)); + lastController = lastWindow->GetRootFocusController(); - nsCOMPtr nextController; + nsIFocusController *nextController = nsnull; nsCOMPtr nextWindow = do_QueryInterface(mDocument->GetScriptGlobalObject()); if (nextWindow) - nextWindow->GetRootFocusController(getter_AddRefs(nextController)); + nextController = nextWindow->GetRootFocusController(); if (lastController != nextController && lastController && nextController) lastController->SetActive(PR_FALSE); @@ -780,8 +780,7 @@ nsEventStateManager::PreHandleEvent(nsIPresContext* aPresContext, return NS_ERROR_NULL_POINTER; } - nsCOMPtr focusController; - win->GetRootFocusController(getter_AddRefs(focusController)); + nsIFocusController *focusController = win->GetRootFocusController(); nsCOMPtr focusedElement; nsCOMPtr focusedWindow; @@ -796,7 +795,7 @@ nsEventStateManager::PreHandleEvent(nsIPresContext* aPresContext, } if (!focusedWindow) - focusedWindow = do_QueryInterface(mDocument->GetScriptGlobalObject()); + focusedWindow = win; NS_WARN_IF_FALSE(focusedWindow,"check why focusedWindow is null!!!"); @@ -863,7 +862,9 @@ nsEventStateManager::PreHandleEvent(nsIPresContext* aPresContext, // focused sub-window and sub-element for this top-level // window. - nsCOMPtr focusController = GetFocusControllerForDocument(mDocument); + nsIFocusController *focusController = + GetFocusControllerForDocument(mDocument); + if (focusController) focusController->SetSuppressFocus(PR_TRUE, "Deactivate Suppression"); @@ -1544,8 +1545,7 @@ nsEventStateManager::ChangeTextSize(PRInt32 change) nsCOMPtr ourWindow = do_QueryInterface(gLastFocusedDocument->GetScriptGlobalObject()); if(!ourWindow) return NS_ERROR_FAILURE; - nsCOMPtr rootWindow; - ourWindow->GetPrivateRoot(getter_AddRefs(rootWindow)); + nsIDOMWindowInternal *rootWindow = ourWindow->GetPrivateRoot(); if(!rootWindow) return NS_ERROR_FAILURE; nsCOMPtr windowContent; @@ -4001,8 +4001,7 @@ nsEventStateManager::SetContentState(nsIContent *aContent, PRInt32 aState) // see comments in ShiftFocusInternal on mCurrentFocus overloading PRBool fcActive = PR_FALSE; if (mDocument) { - nsCOMPtr fc; - fc = getter_AddRefs(GetFocusControllerForDocument(mDocument)); + nsIFocusController *fc = GetFocusControllerForDocument(mDocument); if (fc) fc->GetActive(&fcActive); } @@ -4209,14 +4208,14 @@ nsEventStateManager::SendFocusBlur(nsIPresContext* aPresContext, // Make sure we're not switching command dispatchers, if so, surpress the blurred one if(gLastFocusedDocument && mDocument) { - nsCOMPtr newFocusController; - nsCOMPtr oldFocusController; + nsIFocusController *newFocusController = nsnull; + nsIFocusController *oldFocusController = nsnull; nsCOMPtr newWindow = do_QueryInterface(mDocument->GetScriptGlobalObject()); nsCOMPtr oldWindow = do_QueryInterface(gLastFocusedDocument->GetScriptGlobalObject()); if(newWindow) - newWindow->GetRootFocusController(getter_AddRefs(newFocusController)); + newFocusController = newWindow->GetRootFocusController(); if(oldWindow) - oldWindow->GetRootFocusController(getter_AddRefs(oldFocusController)); + oldFocusController = oldWindow->GetRootFocusController(); if(oldFocusController && oldFocusController != newFocusController) oldFocusController->SetSuppressFocus(PR_TRUE, "SendFocusBlur Window Switch"); } @@ -4263,15 +4262,15 @@ nsEventStateManager::SendFocusBlur(nsIPresContext* aPresContext, // Make sure we're not switching command dispatchers, if so, surpress the blurred one if (mDocument) { - nsCOMPtr newFocusController; - nsCOMPtr oldFocusController; + nsIFocusController *newFocusController = nsnull; + nsIFocusController *oldFocusController = nsnull; nsCOMPtr newWindow = do_QueryInterface(mDocument->GetScriptGlobalObject()); nsCOMPtr oldWindow = do_QueryInterface(gLastFocusedDocument->GetScriptGlobalObject()); if (newWindow) - newWindow->GetRootFocusController(getter_AddRefs(newFocusController)); - oldWindow->GetRootFocusController(getter_AddRefs(oldFocusController)); - if(oldFocusController && oldFocusController != newFocusController) + newFocusController = newWindow->GetRootFocusController(); + oldFocusController = oldWindow->GetRootFocusController(); + if (oldFocusController && oldFocusController != newFocusController) oldFocusController->SetSuppressFocus(PR_TRUE, "SendFocusBlur Window Switch #2"); } @@ -4771,7 +4770,8 @@ nsEventStateManager::FocusElementButNotDocument(nsIContent *aContent) * while the window focus is currently somewhere else such as the find dialog */ - nsCOMPtr focusController(GetFocusControllerForDocument(mDocument)); + nsIFocusController *focusController = + GetFocusControllerForDocument(mDocument); if (!focusController) return; @@ -5444,16 +5444,11 @@ nsEventStateManager::ShiftFocusByDoc(PRBool aForward) } // Get the FocusController given an nsIDocument -already_AddRefed +nsIFocusController* nsEventStateManager::GetFocusControllerForDocument(nsIDocument* aDocument) { nsCOMPtr container = aDocument->GetContainer(); nsCOMPtr windowPrivate = do_GetInterface(container); - nsIFocusController* fc; - if (windowPrivate) - windowPrivate->GetRootFocusController(&fc); - else - fc = nsnull; - return fc; + return windowPrivate ? windowPrivate->GetRootFocusController() : nsnull; } diff --git a/mozilla/content/events/src/nsEventStateManager.h b/mozilla/content/events/src/nsEventStateManager.h index da9be00a884..d13001ee4cf 100644 --- a/mozilla/content/events/src/nsEventStateManager.h +++ b/mozilla/content/events/src/nsEventStateManager.h @@ -180,7 +180,7 @@ protected: void EnsureDocument(nsIPresShell* aPresShell); void EnsureDocument(nsIPresContext* aPresContext); void FlushPendingEvents(nsIPresContext* aPresContext); - already_AddRefed GetFocusControllerForDocument(nsIDocument* aDocument); + nsIFocusController* GetFocusControllerForDocument(nsIDocument* aDocument); typedef enum { eAccessKeyProcessingNormal = 0, diff --git a/mozilla/content/html/content/src/nsGenericHTMLElement.cpp b/mozilla/content/html/content/src/nsGenericHTMLElement.cpp index d7d2e889aa1..447142b06f6 100644 --- a/mozilla/content/html/content/src/nsGenericHTMLElement.cpp +++ b/mozilla/content/html/content/src/nsGenericHTMLElement.cpp @@ -1394,9 +1394,9 @@ nsGenericHTMLElement::HandleDOMEventForAnchors(nsIPresContext* aPresContext, // If the window is not active, do not allow the focus to bring the // window to the front. We update the focus controller, but do // nothing else. - nsCOMPtr focusController; nsCOMPtr win(do_QueryInterface(mDocument->GetScriptGlobalObject())); - win->GetRootFocusController(getter_AddRefs(focusController)); + nsIFocusController *focusController = + win->GetRootFocusController(); PRBool isActive = PR_FALSE; focusController->GetActive(&isActive); if (!isActive) { diff --git a/mozilla/content/html/content/src/nsHTMLInputElement.cpp b/mozilla/content/html/content/src/nsHTMLInputElement.cpp index 8a9e176e7c6..9dc6a9557e8 100644 --- a/mozilla/content/html/content/src/nsHTMLInputElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLInputElement.cpp @@ -1092,14 +1092,12 @@ nsHTMLInputElement::SetFocus(nsIPresContext* aPresContext) // If the window is not active, do not allow the focus to bring the // window to the front. We update the focus controller, but do // nothing else. - nsCOMPtr focusController; nsCOMPtr win(do_QueryInterface(mDocument->GetScriptGlobalObject())); - win->GetRootFocusController(getter_AddRefs(focusController)); + nsIFocusController *focusController = win->GetRootFocusController(); PRBool isActive = PR_FALSE; focusController->GetActive(&isActive); if (!isActive) { - nsCOMPtr domWin(do_QueryInterface(win)); - focusController->SetFocusedWindow(domWin); + focusController->SetFocusedWindow(win); focusController->SetFocusedElement(this); return; @@ -1164,13 +1162,11 @@ nsHTMLInputElement::Select() // window to the front. We update the focus controller, but do // nothing else. nsCOMPtr win(do_QueryInterface(mDocument->GetScriptGlobalObject())); - nsCOMPtr focusController; - win->GetRootFocusController(getter_AddRefs(focusController)); + nsIFocusController *focusController = win->GetRootFocusController(); PRBool isActive = PR_FALSE; focusController->GetActive(&isActive); if (!isActive) { - nsCOMPtr domWin(do_QueryInterface(win)); - focusController->SetFocusedWindow(domWin); + focusController->SetFocusedWindow(win); focusController->SetFocusedElement(this); SelectAll(presContext); return NS_OK; diff --git a/mozilla/content/xbl/src/nsXBLPrototypeHandler.cpp b/mozilla/content/xbl/src/nsXBLPrototypeHandler.cpp index f6f5921544e..190f1d5de08 100644 --- a/mozilla/content/xbl/src/nsXBLPrototypeHandler.cpp +++ b/mozilla/content/xbl/src/nsXBLPrototypeHandler.cpp @@ -279,7 +279,7 @@ nsXBLPrototypeHandler::ExecuteHandler(nsIDOMEventReceiver* aReceiver, privateWindow = do_QueryInterface(doc->GetScriptGlobalObject()); } - privateWindow->GetRootFocusController(getter_AddRefs(focusController)); + focusController = privateWindow->GetRootFocusController(); } NS_LossyConvertUCS2toASCII command(mHandlerText); @@ -365,9 +365,7 @@ nsXBLPrototypeHandler::ExecuteHandler(nsIDOMEventReceiver* aReceiver, // that. if (focusedWin) { nsCOMPtr piWin(do_QueryInterface(focusedWin)); - nsCOMPtr rootWin; - piWin->GetPrivateRoot(getter_AddRefs(rootWin)); - boundGlobal = do_QueryInterface(rootWin); + boundGlobal = do_QueryInterface(piWin->GetPrivateRoot()); } else boundGlobal = do_QueryInterface(aReceiver); diff --git a/mozilla/content/xul/content/src/nsXULElement.cpp b/mozilla/content/xul/content/src/nsXULElement.cpp index de512a71794..eedcee427b9 100644 --- a/mozilla/content/xul/content/src/nsXULElement.cpp +++ b/mozilla/content/xul/content/src/nsXULElement.cpp @@ -370,9 +370,7 @@ static PRBool HasMutationListeners(nsIContent* aContent, PRUint32 aType) if (!window) return PR_FALSE; - PRBool set; - window->HasMutationListeners(aType, &set); - if (!set) + if (!window->HasMutationListeners(aType)) return PR_FALSE; // We know a mutation listener is registered, but it might not diff --git a/mozilla/content/xul/document/src/nsXULCommandDispatcher.cpp b/mozilla/content/xul/document/src/nsXULCommandDispatcher.cpp index dd6c23d351d..a58ff68bf22 100644 --- a/mozilla/content/xul/document/src/nsXULCommandDispatcher.cpp +++ b/mozilla/content/xul/document/src/nsXULCommandDispatcher.cpp @@ -128,9 +128,7 @@ nsXULCommandDispatcher::EnsureFocusController() // guaranteed that the focus controller outlives us, so it // is safe to hold on to it (since we can't die until it has // died). - nsCOMPtr focus; - win->GetRootFocusController(getter_AddRefs(focus)); - mFocusController = focus; // Store as a weak ptr. + mFocusController = win->GetRootFocusController(); // Store as a weak ptr. } } diff --git a/mozilla/content/xul/document/src/nsXULCommandDispatcher.h b/mozilla/content/xul/document/src/nsXULCommandDispatcher.h index 8d039cdeace..8aee342a81e 100644 --- a/mozilla/content/xul/document/src/nsXULCommandDispatcher.h +++ b/mozilla/content/xul/document/src/nsXULCommandDispatcher.h @@ -54,7 +54,6 @@ #include "nsString.h" class nsIDOMElement; -class nsPIDOMWindow; class nsIFocusController; class nsXULCommandDispatcher : public nsIDOMXULCommandDispatcher, diff --git a/mozilla/content/xul/document/src/nsXULDocument.cpp b/mozilla/content/xul/document/src/nsXULDocument.cpp index e7f84874c96..919479a45d5 100644 --- a/mozilla/content/xul/document/src/nsXULDocument.cpp +++ b/mozilla/content/xul/document/src/nsXULDocument.cpp @@ -4219,7 +4219,7 @@ nsXULDocument::GetFocusController(nsIFocusController** aFocusController) nsCOMPtr ir = do_QueryReferent(mDocumentContainer); nsCOMPtr windowPrivate = do_GetInterface(ir); if (windowPrivate) { - windowPrivate->GetRootFocusController(aFocusController); + NS_IF_ADDREF(*aFocusController = windowPrivate->GetRootFocusController()); } else *aFocusController = nsnull; } diff --git a/mozilla/docshell/base/nsDocShell.cpp b/mozilla/docshell/base/nsDocShell.cpp index e232b9472c2..ac0f61a39c1 100644 --- a/mozilla/docshell/base/nsDocShell.cpp +++ b/mozilla/docshell/base/nsDocShell.cpp @@ -4744,10 +4744,10 @@ nsDocShell::SetupNewViewer(nsIContentViewer * aNewViewer) // testing bugs #28580 and 50509. These are immensely important bugs, // so PLEASE take care not to regress them if you decide to alter this // code later -- hyatt - nsCOMPtr focusController; + nsIFocusController *focusController = nsnull; if (mScriptGlobal) { nsCOMPtr ourWindow = do_QueryInterface(mScriptGlobal); - ourWindow->GetRootFocusController(getter_AddRefs(focusController)); + focusController = ourWindow->GetRootFocusController(); if (focusController) { // Suppress the command dispatcher. focusController->SetSuppressFocus(PR_TRUE, @@ -4755,7 +4755,6 @@ nsDocShell::SetupNewViewer(nsIContentViewer * aNewViewer) // Remove focus from the element that has it nsCOMPtr focusedWindow; focusController->GetFocusedWindow(getter_AddRefs(focusedWindow)); - nsCOMPtr ourFocusedWindow(do_QueryInterface(ourWindow)); // We want to null out the last focused element if the document containing // it is going away. If the last focused element is in a descendent @@ -4768,7 +4767,7 @@ nsDocShell::SetupNewViewer(nsIContentViewer * aNewViewer) if (focusedWindow) focusedWindow->GetParent(getter_AddRefs(curwin)); while (curwin) { - if (curwin == NS_STATIC_CAST(nsIDOMWindow*, ourFocusedWindow)) { + if (curwin == ourWindow) { isSubWindow = PR_TRUE; break; } @@ -4784,7 +4783,7 @@ nsDocShell::SetupNewViewer(nsIContentViewer * aNewViewer) curwin = dont_AddRef(temp); } - if (ourFocusedWindow == focusedWindow || isSubWindow) + if (ourWindow == focusedWindow || isSubWindow) focusController->ResetElementFocus(); } } @@ -6770,9 +6769,9 @@ NS_IMETHODIMP nsDocShell::EnsureFind() // if we can, search the focussed window nsCOMPtr ourWindow = do_QueryInterface(scriptGO); - nsCOMPtr focusController; + nsIFocusController *focusController = nsnull; if (ourWindow) - ourWindow->GetRootFocusController(getter_AddRefs(focusController)); + focusController = ourWindow->GetRootFocusController(); if (focusController) { nsCOMPtr focussedWindow; diff --git a/mozilla/docshell/base/nsWebShell.cpp b/mozilla/docshell/base/nsWebShell.cpp index 1dc0feacd24..86669f519b9 100644 --- a/mozilla/docshell/base/nsWebShell.cpp +++ b/mozilla/docshell/base/nsWebShell.cpp @@ -1047,8 +1047,7 @@ nsWebShell::GetControllerForCommand ( const char * inCommand, nsIController** ou nsCOMPtr window ( do_QueryInterface(mScriptGlobal) ); if ( window ) { - nsCOMPtr focusController; - rv = window->GetRootFocusController ( getter_AddRefs(focusController) ); + nsIFocusController *focusController = window->GetRootFocusController(); if ( focusController ) rv = focusController->GetControllerForCommand ( inCommand, outController ); } // if window diff --git a/mozilla/dom/public/base/nsPIDOMWindow.h b/mozilla/dom/public/base/nsPIDOMWindow.h index 4746bd9c639..5ae3ed11898 100644 --- a/mozilla/dom/public/base/nsPIDOMWindow.h +++ b/mozilla/dom/public/base/nsPIDOMWindow.h @@ -45,56 +45,78 @@ #include "nsIDOMXULCommandDispatcher.h" #include "nsIDocument.h" #include "nsIDOMElement.h" +#include "nsIDOMWindowInternal.h" +#include "nsIChromeEventHandler.h" +#include "nsIDOMDocument.h" +#include "nsIURI.h" +#include "nsCOMPtr.h" class nsIDocShell; -class nsIDOMWindowInternal; -class nsIChromeEventHandler; class nsIFocusController; +class nsTimeoutImpl; #define NS_PIDOMWINDOW_IID \ -{ 0x3aa80781, 0x7e6a, 0x11d3, \ - { 0xbf, 0x87, 0x0, 0x10, 0x5a, 0x1b, 0x6, 0x27 } } +{ 0x7e12a2d6, 0x9a2a, 0x4907, \ + { 0xab, 0x85, 0x01, 0x34, 0xe3, 0xa8, 0x1a, 0x3f } } -class nsPIDOMWindow : public nsISupports +class nsPIDOMWindow : public nsIDOMWindowInternal { public: NS_DEFINE_STATIC_IID_ACCESSOR(NS_PIDOMWINDOW_IID) - NS_IMETHOD GetPrivateParent(nsPIDOMWindow** aResult) = 0; - NS_IMETHOD GetPrivateRoot(nsIDOMWindowInternal** aResult) = 0; + virtual nsPIDOMWindow* GetPrivateRoot() = 0; - NS_IMETHOD GetObjectProperty(const PRUnichar* aProperty, - nsISupports** aObject) = 0; + virtual nsresult GetObjectProperty(const PRUnichar* aProperty, + nsISupports** aObject) = 0; // This is private because activate/deactivate events are not part // of the DOM spec. - NS_IMETHOD Activate() = 0; - NS_IMETHOD Deactivate() = 0; + virtual nsresult Activate() = 0; + virtual nsresult Deactivate() = 0; - NS_IMETHOD GetChromeEventHandler(nsIChromeEventHandler** aHandler) = 0; + nsIChromeEventHandler* GetChromeEventHandler() + { + return mChromeEventHandler; + } - NS_IMETHOD HasMutationListeners(PRUint32 aMutationEventType, - PRBool* aResult) = 0; - NS_IMETHOD SetMutationListeners(PRUint32 aType) = 0; + PRBool HasMutationListeners(PRUint32 aMutationEventType) + { + return (mMutationBits & aMutationEventType) != 0; + } - NS_IMETHOD GetRootFocusController(nsIFocusController** aResult) = 0; + void SetMutationListeners(PRUint32 aType) { mMutationBits |= aType; } + + virtual nsIFocusController* GetRootFocusController() = 0; // GetExtantDocument provides a backdoor to the DOM GetDocument accessor - NS_IMETHOD GetExtantDocument(nsIDOMDocument** aDocument) = 0; - - NS_IMETHOD ReallyCloseWindow() = 0; + nsIDOMDocument* GetExtantDocument() { return mDocument; } // Internal getter/setter for the frame element, this version of the // getter crosses chrome boundaries whereas the public scriptable // one doesn't for security reasons. - NS_IMETHOD GetFrameElementInternal(nsIDOMElement** aFrameElement) = 0; - NS_IMETHOD SetFrameElementInternal(nsIDOMElement* aFrameElement) = 0; + nsIDOMElement* GetFrameElementInternal() { return mFrameElement; } + void SetFrameElementInternal(nsIDOMElement *aFrameElement) + { + mFrameElement = aFrameElement; + } - NS_IMETHOD IsLoadingOrRunningTimeout(PRBool* aResult) = 0; - NS_IMETHOD IsPopupSpamWindow(PRBool *aResult) = 0; - NS_IMETHOD SetPopupSpamWindow(PRBool aPopup) = 0; + PRBool IsLoadingOrRunningTimeout() const + { + return mIsDocumentLoaded || mRunningTimeout; + } - NS_IMETHOD SetOpenerScriptURL(nsIURI* aURI) = 0; + virtual void SetOpenerScriptURL(nsIURI* aURI) = 0; + +protected: + nsCOMPtr mChromeEventHandler; // strong + nsCOMPtr mDocument; // strong + nsIDOMElement *mFrameElement; // weak + nsCOMPtr mOpenerScriptURL; // strong; used to determine whether to clear scope + nsTimeoutImpl *mRunningTimeout; + + PRUint32 mMutationBits; + + PRBool mIsDocumentLoaded; }; #endif // nsPIDOMWindow_h__ diff --git a/mozilla/dom/src/base/nsFocusController.cpp b/mozilla/dom/src/base/nsFocusController.cpp index 75b1ed60d57..15d6996c8ca 100644 --- a/mozilla/dom/src/base/nsFocusController.cpp +++ b/mozilla/dom/src/base/nsFocusController.cpp @@ -63,6 +63,7 @@ #include "nsIDocShellTreeOwner.h" #include "nsIInterfaceRequestorUtils.h" #include "nsIServiceManagerUtils.h" +#include "nsGlobalWindow.h" #ifdef MOZ_XUL #include "nsIDOMXULDocument.h" @@ -406,8 +407,10 @@ nsFocusController::GetControllerForCommand(const char * aCommand, nsIController* currentWindow = do_QueryInterface(domWindow); } else if (mCurrentWindow) { - nsCOMPtr privateWin = do_QueryInterface(mCurrentWindow); - privateWin->GetPrivateParent(getter_AddRefs(currentWindow)); + GlobalWindowImpl *win = + NS_STATIC_CAST(GlobalWindowImpl*, + NS_STATIC_CAST(nsIDOMWindowInternal*, mCurrentWindow)); + currentWindow = win->GetPrivateParent(); } else return NS_OK; @@ -426,8 +429,10 @@ nsFocusController::GetControllerForCommand(const char * aCommand, nsIController* } } } - nsCOMPtr parentPWindow = currentWindow; - parentPWindow->GetPrivateParent(getter_AddRefs(currentWindow)); + GlobalWindowImpl *win = + NS_STATIC_CAST(GlobalWindowImpl*, + NS_STATIC_CAST(nsIDOMWindowInternal*, currentWindow)); + currentWindow = win->GetPrivateParent(); } return NS_OK; diff --git a/mozilla/dom/src/base/nsGlobalWindow.cpp b/mozilla/dom/src/base/nsGlobalWindow.cpp index e4ede45e257..cd18f6efb59 100644 --- a/mozilla/dom/src/base/nsGlobalWindow.cpp +++ b/mozilla/dom/src/base/nsGlobalWindow.cpp @@ -232,13 +232,10 @@ GlobalWindowImpl::GlobalWindowImpl() : mJSObject(nsnull), mTimeouts(nsnull), mTimeoutInsertionPoint(&mTimeouts), - mRunningTimeout(nsnull), mTimeoutPublicIdCounter(1), mTimeoutFiringDepth(0), - mMutationBits(0), mFirstDocumentLoad(PR_TRUE), mIsScopeClear(PR_TRUE), - mIsDocumentLoaded(PR_FALSE), mFullScreen(PR_FALSE), mIsClosed(PR_FALSE), mOpenerWasCleared(PR_FALSE), @@ -246,10 +243,14 @@ GlobalWindowImpl::GlobalWindowImpl() mLastMouseButtonAction(LL_ZERO), mGlobalObjectOwner(nsnull), mDocShell(nsnull), - mCurrentEvent(0), - mChromeEventHandler(nsnull), - mFrameElement(nsnull) + mCurrentEvent(0) { + // nsPIDOMWindow initializers + mFrameElement = nsnull; + mRunningTimeout = nsnull; + mMutationBits = 0; + mIsDocumentLoaded = PR_FALSE; + // We could have failed the first time through trying // to create the entropy collector, so we should // try to get one until we succeed. @@ -318,9 +319,7 @@ GlobalWindowImpl::CleanUp() mContext = nsnull; // Forces Release mChromeEventHandler = nsnull; // Forces Release - PRBool popup; - IsPopupSpamWindow(&popup); - if (popup) { + if (IsPopupSpamWindow()) { SetPopupSpamWindow(PR_FALSE); --gOpenPopupSpamCount; } @@ -411,11 +410,10 @@ GlobalWindowImpl::GetContext() return mContext; } -NS_IMETHODIMP +void GlobalWindowImpl::SetOpenerScriptURL(nsIURI* aURI) { mOpenerScriptURL = aURI; - return NS_OK; } nsresult @@ -499,8 +497,7 @@ GlobalWindowImpl::SetNewDocument(nsIDOMDocument* aDocument, // Get our private root. If it is equal to us, then we // need to attach our global key bindings that handle // browser scrolling and other browser commands. - nsCOMPtr internal; - GetPrivateRoot(getter_AddRefs(internal)); + nsIDOMWindowInternal *internal = GlobalWindowImpl::GetPrivateRoot(); if (internal == NS_STATIC_CAST(nsIDOMWindowInternal *, this)) { nsCOMPtr xblService = @@ -671,8 +668,8 @@ GlobalWindowImpl::SetDocShell(nsIDocShell* aDocShell) // if we are closing the window while in full screen mode, be sure // to restore os chrome if (mFullScreen) { - nsCOMPtr focusController; - GetRootFocusController(getter_AddRefs(focusController)); + nsIFocusController *focusController = + GlobalWindowImpl::GetRootFocusController(); PRBool isActive = PR_FALSE; focusController->GetActive(&isActive); // only restore OS chrome if the closing window was active @@ -731,8 +728,7 @@ GlobalWindowImpl::SetDocShell(nsIDocShell* aDocShell) GetParent(getter_AddRefs(parentWindow)); if (parentWindow.get() != NS_STATIC_CAST(nsIDOMWindow*,this)) { nsCOMPtr piWindow(do_QueryInterface(parentWindow)); - nsCOMPtr handler; - piWindow->GetChromeEventHandler(getter_AddRefs(mChromeEventHandler)); + mChromeEventHandler = piWindow->GetChromeEventHandler(); } else NS_NewWindowRoot(this, getter_AddRefs(mChromeEventHandler)); } @@ -1036,16 +1032,6 @@ GlobalWindowImpl::GetDocument(nsIDOMDocument** aDocument) return NS_OK; } -// like GetDocument, but merely fetches the document if it already exists -NS_IMETHODIMP GlobalWindowImpl::GetExtantDocument(nsIDOMDocument** aDocument) -{ - NS_ENSURE_ARG_POINTER(aDocument); - - NS_IF_ADDREF(*aDocument = mDocument); - - return NS_OK; -} - //***************************************************************************** // GlobalWindowImpl::nsIDOMWindowInternal //***************************************************************************** @@ -2495,8 +2481,8 @@ GlobalWindowImpl::Focus() } } else { - nsCOMPtr focusController; - GetRootFocusController(getter_AddRefs(focusController)); + nsIFocusController *focusController = + GlobalWindowImpl::GetRootFocusController(); if (focusController) focusController->SetFocusedWindow(this); } @@ -3271,11 +3257,9 @@ GlobalWindowImpl::Open(const nsAString& aUrl, _retval); if (NS_SUCCEEDED(rv)) { if (abuseLevel >= openControlled) { - nsCOMPtr opened(do_QueryInterface(*_retval)); - if (opened) { - opened->SetPopupSpamWindow(PR_TRUE); - ++gOpenPopupSpamCount; - } + GlobalWindowImpl *opened = NS_STATIC_CAST(GlobalWindowImpl*, *_retval); + opened->SetPopupSpamWindow(PR_TRUE); + ++gOpenPopupSpamCount; } if (abuseLevel >= openAbused) FireAbuseEvents(PR_FALSE, PR_TRUE, aUrl, aOptions); @@ -3358,11 +3342,9 @@ GlobalWindowImpl::Open(nsIDOMWindow **_retval) } if (abuseLevel >= openControlled) { - nsCOMPtr opened(do_QueryInterface(*_retval)); - if (opened) { - opened->SetPopupSpamWindow(PR_TRUE); - ++gOpenPopupSpamCount; - } + GlobalWindowImpl *opened = NS_STATIC_CAST(GlobalWindowImpl*, *_retval); + opened->SetPopupSpamWindow(PR_TRUE); + ++gOpenPopupSpamCount; } if (abuseLevel >= openAbused) FireAbuseEvents(PR_FALSE, PR_TRUE, url, options); @@ -3628,14 +3610,16 @@ GlobalWindowImpl::Close() } else rv = NS_ERROR_OUT_OF_MEMORY; } - if (NS_FAILED(rv)) - rv = ReallyCloseWindow(); + if (NS_FAILED(rv)) { + ReallyCloseWindow(); + rv = NS_OK; + } return rv; } -NS_IMETHODIMP +void GlobalWindowImpl::ReallyCloseWindow() { nsCOMPtr treeOwnerAsWin; @@ -3647,8 +3631,6 @@ GlobalWindowImpl::ReallyCloseWindow() treeOwnerAsWin->Destroy(); CleanUp(); } - - return NS_OK; } NS_IMETHODIMP @@ -3678,49 +3660,10 @@ GlobalWindowImpl::GetFrameElement(nsIDOMElement** aFrameElement) return NS_OK; } -NS_IMETHODIMP -GlobalWindowImpl::GetFrameElementInternal(nsIDOMElement** aFrameElement) -{ - *aFrameElement = mFrameElement; - NS_IF_ADDREF(*aFrameElement); - - return NS_OK; -} - -NS_IMETHODIMP -GlobalWindowImpl::SetFrameElementInternal(nsIDOMElement* aFrameElement) -{ - mFrameElement = aFrameElement; - - return NS_OK; -} - -NS_IMETHODIMP -GlobalWindowImpl::IsLoadingOrRunningTimeout(PRBool* aResult) -{ - *aResult = !mIsDocumentLoaded || mRunningTimeout; - return NS_OK; -} - -NS_IMETHODIMP -GlobalWindowImpl::IsPopupSpamWindow(PRBool *aResult) -{ - *aResult = mIsPopupSpam; - return NS_OK; -} - -NS_IMETHODIMP -GlobalWindowImpl::SetPopupSpamWindow(PRBool aPopup) -{ - mIsPopupSpam = aPopup; - return NS_OK; -} - NS_IMETHODIMP GlobalWindowImpl::UpdateCommands(const nsAString& anAction) { - nsCOMPtr rootWindow; - GetPrivateRoot(getter_AddRefs(rootWindow)); + nsIDOMWindowInternal *rootWindow = GlobalWindowImpl::GetPrivateRoot(); if (!rootWindow) return NS_OK; @@ -4261,12 +4204,10 @@ GlobalWindowImpl::GetSystemEventGroup(nsIDOMEventGroup **aGroup) // GlobalWindowImpl::nsPIDOMWindow //***************************************************************************** -NS_IMETHODIMP -GlobalWindowImpl::GetPrivateParent(nsPIDOMWindow ** aParent) +nsPIDOMWindow* +GlobalWindowImpl::GetPrivateParent() { nsCOMPtr parent; - *aParent = nsnull; // Set to null so we can bail out later - GetParent(getter_AddRefs(parent)); if (NS_STATIC_CAST(nsIDOMWindow *, this) == parent.get()) { @@ -4285,24 +4226,24 @@ GlobalWindowImpl::GetPrivateParent(nsPIDOMWindow ** aParent) parent = do_QueryInterface(globalObject); } - if (parent) - CallQueryInterface(parent.get(), aParent); + if (parent) { + return NS_STATIC_CAST(GlobalWindowImpl*, + NS_STATIC_CAST(nsIDOMWindow*, parent.get())); + } - return NS_OK; + return nsnull; } -NS_IMETHODIMP -GlobalWindowImpl::GetPrivateRoot(nsIDOMWindowInternal ** aParent) +nsPIDOMWindow* +GlobalWindowImpl::GetPrivateRoot() { - *aParent = nsnull; // Set to null so we can bail out later - nsCOMPtr parent; GetTop(getter_AddRefs(parent)); nsCOMPtr parentTop = do_QueryInterface(parent); NS_ASSERTION(parentTop, "cannot get parentTop"); - if(parentTop == nsnull) - return NS_ERROR_FAILURE; + if (!parentTop) + return nsnull; nsIDocShell *docShell = parentTop->GetDocShell(); @@ -4319,16 +4260,17 @@ GlobalWindowImpl::GetPrivateRoot(nsIDOMWindowInternal ** aParent) parent = do_QueryInterface(doc->GetScriptGlobalObject()); nsCOMPtr tempParent; parent->GetTop(getter_AddRefs(tempParent)); - CallQueryInterface(tempParent, aParent); - return NS_OK; + return NS_STATIC_CAST(GlobalWindowImpl*, + NS_STATIC_CAST(nsIDOMWindow*, tempParent)); } } if (parent) { - CallQueryInterface(parent, aParent); + return NS_STATIC_CAST(GlobalWindowImpl*, + NS_STATIC_CAST(nsIDOMWindow*, parent)); } - return NS_OK; + return nsnull; } @@ -4349,7 +4291,7 @@ GlobalWindowImpl::GetLocation(nsIDOMLocation ** aLocation) return NS_OK; } -NS_IMETHODIMP +nsresult GlobalWindowImpl::GetObjectProperty(const PRUnichar *aProperty, nsISupports ** aObject) { @@ -4383,7 +4325,7 @@ GlobalWindowImpl::GetObjectProperty(const PRUnichar *aProperty, return NS_OK; } -NS_IMETHODIMP +nsresult GlobalWindowImpl::Activate() { /* @@ -4450,7 +4392,7 @@ GlobalWindowImpl::Activate() return NS_OK; } -NS_IMETHODIMP +nsresult GlobalWindowImpl::Deactivate() { nsCOMPtr presShell; @@ -4478,49 +4420,24 @@ GlobalWindowImpl::Deactivate() return NS_OK; } -NS_IMETHODIMP -GlobalWindowImpl::GetChromeEventHandler(nsIChromeEventHandler** aHandler) +nsIFocusController* +GlobalWindowImpl::GetRootFocusController() { - NS_IF_ADDREF(*aHandler = mChromeEventHandler); - - return NS_OK; -} - -NS_IMETHODIMP -GlobalWindowImpl::GetRootFocusController(nsIFocusController** aController) -{ - *aController = nsnull; - - nsCOMPtr rootWindow; - GetPrivateRoot(getter_AddRefs(rootWindow)); + nsIDOMWindowInternal *rootWindow = GlobalWindowImpl::GetPrivateRoot(); if (rootWindow) { // Obtain the chrome event handler. - nsCOMPtr chromeHandler; nsCOMPtr piWin(do_QueryInterface(rootWindow)); - piWin->GetChromeEventHandler(getter_AddRefs(chromeHandler)); + nsIChromeEventHandler *chromeHandler = piWin->GetChromeEventHandler(); if (chromeHandler) { nsCOMPtr windowRoot(do_QueryInterface(chromeHandler)); if (windowRoot) { - windowRoot->GetFocusController(aController); + nsCOMPtr fc; + windowRoot->GetFocusController(getter_AddRefs(fc)); + return fc; // this reference is going away, but the root holds onto it } } } - return NS_OK; -} - -NS_IMETHODIMP -GlobalWindowImpl::HasMutationListeners(PRUint32 aMutationEventType, - PRBool* aResult) -{ - *aResult = (mMutationBits & aMutationEventType) != 0; - return NS_OK; -} - -NS_IMETHODIMP -GlobalWindowImpl::SetMutationListeners(PRUint32 aType) -{ - mMutationBits |= aType; - return NS_OK; + return nsnull; } //***************************************************************************** @@ -4769,7 +4686,8 @@ GlobalWindowImpl::CloseWindow(nsISupports *aWindow) { nsCOMPtr win(do_QueryInterface(aWindow)); - win->ReallyCloseWindow(); + NS_STATIC_CAST(GlobalWindowImpl*, + NS_STATIC_CAST(nsPIDOMWindow*, win))->ReallyCloseWindow(); } //***************************************************************************** diff --git a/mozilla/dom/src/base/nsGlobalWindow.h b/mozilla/dom/src/base/nsGlobalWindow.h index f83ec7fb05a..a187ee61a1f 100644 --- a/mozilla/dom/src/base/nsGlobalWindow.h +++ b/mozilla/dom/src/base/nsGlobalWindow.h @@ -114,17 +114,21 @@ class nsIDocShellLoadInfo; class GlobalWindowImpl : public nsIScriptGlobalObject, - public nsIDOMWindowInternal, + public nsPIDOMWindow, public nsIDOMJSWindow, public nsIScriptObjectPrincipal, public nsIDOMEventReceiver, public nsIDOM3EventTarget, - public nsPIDOMWindow, public nsIDOMViewCSS, public nsSupportsWeakReference, public nsIInterfaceRequestor { public: + // public methods + nsPIDOMWindow* GetPrivateParent(); + // callback for close event + void ReallyCloseWindow(); + // nsISupports NS_DECL_ISUPPORTS @@ -175,27 +179,14 @@ public: NS_IMETHOD GetSystemEventGroup(nsIDOMEventGroup** aGroup); // nsPIDOMWindow - NS_IMETHOD GetPrivateParent(nsPIDOMWindow** aResult); - NS_IMETHOD GetPrivateRoot(nsIDOMWindowInternal** aResult); - NS_IMETHOD GetObjectProperty(const PRUnichar* aProperty, - nsISupports** aObject); - NS_IMETHOD Activate(); - NS_IMETHOD Deactivate(); - NS_IMETHOD GetChromeEventHandler(nsIChromeEventHandler** aHandler); - NS_IMETHOD HasMutationListeners(PRUint32 aMutationEventType, - PRBool* aResult); - NS_IMETHOD SetMutationListeners(PRUint32 aEventType); - NS_IMETHOD GetRootFocusController(nsIFocusController** aResult); - NS_IMETHOD GetExtantDocument(nsIDOMDocument** aDocument); + virtual NS_HIDDEN_(nsPIDOMWindow*) GetPrivateRoot(); + virtual NS_HIDDEN_(nsresult) GetObjectProperty(const PRUnichar* aProperty, + nsISupports** aObject); + virtual NS_HIDDEN_(nsresult) Activate(); + virtual NS_HIDDEN_(nsresult) Deactivate(); + virtual NS_HIDDEN_(nsIFocusController*) GetRootFocusController(); - NS_IMETHOD ReallyCloseWindow(); - NS_IMETHOD IsLoadingOrRunningTimeout(PRBool* aResult); - NS_IMETHOD IsPopupSpamWindow(PRBool *aResult); - NS_IMETHOD SetPopupSpamWindow(PRBool aPopup); - - NS_IMETHOD GetFrameElementInternal(nsIDOMElement** aFrameElement); - NS_IMETHOD SetFrameElementInternal(nsIDOMElement* aFrameElement); - NS_IMETHOD SetOpenerScriptURL(nsIURI* aURI); + virtual NS_HIDDEN_(void) SetOpenerScriptURL(nsIURI* aURI); // nsIDOMViewCSS NS_DECL_NSIDOMVIEWCSS @@ -221,6 +212,10 @@ protected: // Get the parent, returns null if this is a toplevel window nsIDOMWindowInternal *GetParentInternal(); + // popup tracking + PRBool IsPopupSpamWindow() const { return mIsPopupSpam; } + void SetPopupSpamWindow(PRBool aPopup) { mIsPopupSpam = aPopup; } + // Window Control Functions NS_IMETHOD OpenInternal(const nsAString& aUrl, const nsAString& aName, @@ -281,7 +276,6 @@ protected: // these cycles, ownership of such members must be released in // |CleanUp| and |SetDocShell|. nsCOMPtr mContext; - nsCOMPtr mDocument; nsCOMPtr mOpener; nsCOMPtr mControllers; nsCOMPtr mListenerManager; @@ -299,13 +293,10 @@ protected: nsRefPtr mScrollbars; nsTimeoutImpl* mTimeouts; nsTimeoutImpl** mTimeoutInsertionPoint; - nsTimeoutImpl* mRunningTimeout; PRUint32 mTimeoutPublicIdCounter; PRUint32 mTimeoutFiringDepth; - PRUint32 mMutationBits; PRPackedBool mFirstDocumentLoad; PRPackedBool mIsScopeClear; - PRPackedBool mIsDocumentLoaded; // true between onload and onunload events PRPackedBool mFullScreen; PRPackedBool mIsClosed; PRPackedBool mOpenerWasCleared; @@ -317,11 +308,9 @@ protected: nsIScriptGlobalObjectOwner* mGlobalObjectOwner; // Weak Reference nsIDocShell* mDocShell; // Weak Reference nsEvent* mCurrentEvent; - nsCOMPtr mChromeEventHandler; // [Strong] We break it when we get torn down. nsCOMPtr mCrypto; nsCOMPtr mPkcs11; nsCOMPtr mDocumentPrincipal; - nsCOMPtr mOpenerScriptURL; // Used to determine whether to clear scope // XXX We need mNavigatorHolder because we make two SetNewDocument() // calls when transitioning from page to page. This keeps a reference @@ -332,8 +321,6 @@ protected: // on how we can remove the need for this. nsCOMPtr mNavigatorHolder; - nsIDOMElement* mFrameElement; // WEAK - friend class nsDOMScriptableHelper; static nsIXPConnect *sXPConnect; static nsIScriptSecurityManager *sSecMan; diff --git a/mozilla/embedding/browser/cocoa/src/CHBrowserView.mm b/mozilla/embedding/browser/cocoa/src/CHBrowserView.mm index f1eebbb5096..5256e254304 100644 --- a/mozilla/embedding/browser/cocoa/src/CHBrowserView.mm +++ b/mozilla/embedding/browser/cocoa/src/CHBrowserView.mm @@ -144,9 +144,7 @@ const char kDirServiceContractID[] = "@mozilla.org/file/directory_service;1"; nsCOMPtr contentWindow = getter_AddRefs([self getContentWindow]); nsCOMPtr piWindow(do_QueryInterface(contentWindow)); - nsCOMPtr chromeHandler; - piWindow->GetChromeEventHandler(getter_AddRefs(chromeHandler)); - nsCOMPtr rec(do_QueryInterface(chromeHandler)); + nsCOMPtr rec(do_QueryInterface(piWindow->GetChromeEventHandler())); if ( rec ) rec->AddEventListenerByIID(clickListener, NS_GET_IID(nsIDOMMouseListener)); } diff --git a/mozilla/embedding/browser/gtk/src/EmbedPrivate.cpp b/mozilla/embedding/browser/gtk/src/EmbedPrivate.cpp index 49fef580370..c63e18b1153 100644 --- a/mozilla/embedding/browser/gtk/src/EmbedPrivate.cpp +++ b/mozilla/embedding/browser/gtk/src/EmbedPrivate.cpp @@ -671,8 +671,7 @@ EmbedPrivate::TopLevelFocusIn(void) if (!piWin) return; - nsCOMPtr focusController; - piWin->GetRootFocusController(getter_AddRefs(focusController)); + nsIFocusController *focusController = piWin->GetRootFocusController(); if (focusController) focusController->SetActive(PR_TRUE); } @@ -689,8 +688,7 @@ EmbedPrivate::TopLevelFocusOut(void) if (!piWin) return; - nsCOMPtr focusController; - piWin->GetRootFocusController(getter_AddRefs(focusController)); + nsIFocusController *focusController = piWin->GetRootFocusController(); if (focusController) focusController->SetActive(PR_FALSE); } @@ -726,8 +724,7 @@ EmbedPrivate::ChildFocusOut(void) // but the window is still active until the toplevel gets a focus // out - nsCOMPtr focusController; - piWin->GetRootFocusController(getter_AddRefs(focusController)); + nsIFocusController *focusController = piWin->GetRootFocusController(); if (focusController) focusController->SetActive(PR_TRUE); @@ -747,10 +744,7 @@ EmbedPrivate::GetListener(void) if (!piWin) return; - nsCOMPtr chromeHandler; - piWin->GetChromeEventHandler(getter_AddRefs(chromeHandler)); - - mEventReceiver = do_QueryInterface(chromeHandler); + mEventReceiver = do_QueryInterface(piWin->GetChromeEventHandler()); } // attach key and mouse event listeners @@ -846,14 +840,8 @@ EmbedPrivate::GetPIDOMWindow(nsPIDOMWindow **aPIWin) // get the private DOM window nsCOMPtr domWindowPrivate = do_QueryInterface(domWindow); // and the root window for that DOM window - nsCOMPtr rootWindow; - domWindowPrivate->GetPrivateRoot(getter_AddRefs(rootWindow)); + *aPIWin = domWindowPrivate->GetPrivateRoot(); - nsCOMPtr chromeHandler; - nsCOMPtr piWin(do_QueryInterface(rootWindow)); - - *aPIWin = piWin.get(); - if (*aPIWin) { NS_ADDREF(*aPIWin); return NS_OK; diff --git a/mozilla/embedding/browser/photon/src/EmbedPrivate.cpp b/mozilla/embedding/browser/photon/src/EmbedPrivate.cpp index 34b6570122b..75598989a2d 100644 --- a/mozilla/embedding/browser/photon/src/EmbedPrivate.cpp +++ b/mozilla/embedding/browser/photon/src/EmbedPrivate.cpp @@ -754,8 +754,7 @@ EmbedPrivate::TopLevelFocusIn(void) if (!piWin) return; - nsCOMPtr focusController; - piWin->GetRootFocusController(getter_AddRefs(focusController)); + nsIFocusController *focusController = piWin->GetRootFocusController(); if (focusController) focusController->SetActive(PR_TRUE); } @@ -769,8 +768,7 @@ EmbedPrivate::TopLevelFocusOut(void) if (!piWin) return; - nsCOMPtr focusController; - piWin->GetRootFocusController(getter_AddRefs(focusController)); + nsIFocusController *focusController = piWin->GetRootFocusController(); if (focusController) focusController->SetActive(PR_FALSE); } @@ -800,8 +798,7 @@ EmbedPrivate::ChildFocusOut(void) // but the window is still active until the toplevel gets a focus // out - nsCOMPtr focusController; - piWin->GetRootFocusController(getter_AddRefs(focusController)); + nsIFocusController *focusController = piWin->GetRootFocusController(); if (focusController) focusController->SetActive(PR_TRUE); @@ -821,10 +818,7 @@ EmbedPrivate::GetListener(void) if (!piWin) return; - nsCOMPtr chromeHandler; - piWin->GetChromeEventHandler(getter_AddRefs(chromeHandler)); - - mEventReceiver = do_QueryInterface(chromeHandler); + mEventReceiver = do_QueryInterface(piWin->GetChromeEventHandler()); } // attach key and mouse event listeners diff --git a/mozilla/embedding/browser/photon/src/PtMozilla.cpp b/mozilla/embedding/browser/photon/src/PtMozilla.cpp index a8cf8bd60e0..6e95adf5220 100644 --- a/mozilla/embedding/browser/photon/src/PtMozilla.cpp +++ b/mozilla/embedding/browser/photon/src/PtMozilla.cpp @@ -199,8 +199,7 @@ static int child_getting_focus( PtWidget_t *widget, PtWidget_t *child, PhEvent_t moz->EmbedRef->GetPIDOMWindow( getter_AddRefs( piWin ) ); if( !piWin ) return Pt_CONTINUE; - nsCOMPtr focusController; - piWin->GetRootFocusController(getter_AddRefs(focusController)); + nsIFocusController *focusController = piWin->GetRootFocusController(); if( focusController ) focusController->SetActive( PR_TRUE ); return Pt_CONTINUE; } diff --git a/mozilla/embedding/browser/webBrowser/nsDocShellTreeOwner.cpp b/mozilla/embedding/browser/webBrowser/nsDocShellTreeOwner.cpp index 8f4b59d1851..8e624faae60 100644 --- a/mozilla/embedding/browser/webBrowser/nsDocShellTreeOwner.cpp +++ b/mozilla/embedding/browser/webBrowser/nsDocShellTreeOwner.cpp @@ -88,6 +88,7 @@ #include "nsIContent.h" #include "imgIContainer.h" #include "nsContextMenuInfo.h" +#include "nsIPresContext.h" // // GetEventReceiver @@ -104,13 +105,9 @@ GetEventReceiver ( nsWebBrowser* inBrowser, nsIDOMEventReceiver** outEventRcvr ) nsCOMPtr domWindowPrivate = do_QueryInterface(domWindow); NS_ENSURE_TRUE(domWindowPrivate, NS_ERROR_FAILURE); - nsCOMPtr rootWindow; - domWindowPrivate->GetPrivateRoot(getter_AddRefs(rootWindow)); + nsPIDOMWindow *rootWindow = domWindowPrivate->GetPrivateRoot(); NS_ENSURE_TRUE(rootWindow, NS_ERROR_FAILURE); - nsCOMPtr chromeHandler; - nsCOMPtr piWin(do_QueryInterface(rootWindow)); - NS_ENSURE_TRUE(piWin, NS_ERROR_FAILURE); - piWin->GetChromeEventHandler(getter_AddRefs(chromeHandler)); + nsIChromeEventHandler *chromeHandler = rootWindow->GetChromeEventHandler(); NS_ENSURE_TRUE(chromeHandler, NS_ERROR_FAILURE); nsCOMPtr rcvr = do_QueryInterface(chromeHandler); @@ -1685,9 +1682,7 @@ ChromeContextMenuListener::ContextMenu(nsIDOMEvent* aMouseEvent) NS_ENSURE_SUCCESS(res, res); NS_ENSURE_TRUE(privateWin, NS_ERROR_FAILURE); // get the focus controller - nsCOMPtr focusController; - res = privateWin->GetRootFocusController(getter_AddRefs(focusController)); - NS_ENSURE_SUCCESS(res, res); + nsIFocusController *focusController = privateWin->GetRootFocusController(); NS_ENSURE_TRUE(focusController, NS_ERROR_FAILURE); // set the focus controller's popup node to the event target res = focusController->SetPopupNode(targetDOMnode); diff --git a/mozilla/embedding/browser/webBrowser/nsWebBrowser.cpp b/mozilla/embedding/browser/webBrowser/nsWebBrowser.cpp index f228e556cb7..34b529e3e88 100644 --- a/mozilla/embedding/browser/webBrowser/nsWebBrowser.cpp +++ b/mozilla/embedding/browser/webBrowser/nsWebBrowser.cpp @@ -1734,13 +1734,10 @@ NS_IMETHODIMP nsWebBrowser::Activate(void) // focus controller object. nsCOMPtr domWindowExternal; GetContentDOMWindow(getter_AddRefs(domWindowExternal)); - nsCOMPtr domWindow; - domWindow = do_QueryInterface(domWindowExternal); - nsCOMPtr piWin(do_QueryInterface(domWindow)); + nsCOMPtr piWin(do_QueryInterface(domWindowExternal)); PRBool needToFocus = PR_TRUE; if (piWin) { - nsCOMPtr focusController; - piWin->GetRootFocusController(getter_AddRefs(focusController)); + nsIFocusController *focusController = piWin->GetRootFocusController(); if (focusController) { // Go ahead and mark the focus controller as being active. We have // to do this even before the activate message comes in. @@ -1751,8 +1748,8 @@ NS_IMETHODIMP nsWebBrowser::Activate(void) if (focusedWindow) { needToFocus = PR_FALSE; focusController->SetSuppressFocus(PR_TRUE, "Activation Suppression"); - domWindow->Focus(); // This sets focus, but we'll ignore it. - // A subsequent activate will cause us to stop suppressing. + piWin->Focus(); // This sets focus, but we'll ignore it. + // A subsequent activate will cause us to stop suppressing. } } } @@ -1765,8 +1762,8 @@ NS_IMETHODIMP nsWebBrowser::Activate(void) GetPrimaryContentWindow(getter_AddRefs(contentDomWindow)); if (contentDomWindow) contentDomWindow->Focus(); - else if (domWindow) - domWindow->Focus(); + else if (piWin) + piWin->Focus(); } nsCOMPtr win; @@ -1814,8 +1811,8 @@ NS_IMETHODIMP nsWebBrowser::Deactivate(void) if (domWindow) { nsCOMPtr privateDOMWindow = do_QueryInterface(domWindow); if(privateDOMWindow) { - nsCOMPtr focusController; - privateDOMWindow->GetRootFocusController(getter_AddRefs(focusController)); + nsIFocusController *focusController = + privateDOMWindow->GetRootFocusController(); if (focusController) focusController->SetActive(PR_FALSE); privateDOMWindow->Deactivate(); @@ -1852,8 +1849,7 @@ NS_IMETHODIMP nsWebBrowser::GetFocusedWindow(nsIDOMWindow * *aFocusedWindow) nsCOMPtr piWin(do_QueryInterface(domWindowExternal /*domWindow*/, &rv)); if (NS_FAILED(rv)) return rv; - nsCOMPtr focusController; - piWin->GetRootFocusController(getter_AddRefs(focusController)); + nsIFocusController *focusController = piWin->GetRootFocusController(); if (focusController) rv = focusController->GetFocusedWindow(getter_AddRefs(focusedWindow)); @@ -1882,8 +1878,7 @@ NS_IMETHODIMP nsWebBrowser::GetFocusedElement(nsIDOMElement * *aFocusedElement) nsCOMPtr piWin(do_QueryInterface(domWindowExternal, &rv)); if (NS_FAILED(rv)) return rv; - nsCOMPtr focusController; - piWin->GetRootFocusController(getter_AddRefs(focusController)); + nsIFocusController *focusController = piWin->GetRootFocusController(); if (focusController) rv = focusController->GetFocusedElement(getter_AddRefs(focusedElement)); diff --git a/mozilla/embedding/components/commandhandler/src/Makefile.in b/mozilla/embedding/components/commandhandler/src/Makefile.in index fe88a618099..1ffdaeb06c3 100644 --- a/mozilla/embedding/components/commandhandler/src/Makefile.in +++ b/mozilla/embedding/components/commandhandler/src/Makefile.in @@ -53,6 +53,7 @@ REQUIRES = string \ caps \ xpconnect \ js \ + layout \ $(NULL) LIBRARY_NAME = commandhandler_s diff --git a/mozilla/embedding/components/commandhandler/src/nsCommandManager.cpp b/mozilla/embedding/components/commandhandler/src/nsCommandManager.cpp index 47935f4373e..d561b4a9760 100644 --- a/mozilla/embedding/components/commandhandler/src/nsCommandManager.cpp +++ b/mozilla/embedding/components/commandhandler/src/nsCommandManager.cpp @@ -325,8 +325,7 @@ nsCommandManager::GetControllerForCommand(const char *aCommand, if (!window) return NS_ERROR_FAILURE; - nsCOMPtr focusController; - rv = window->GetRootFocusController(getter_AddRefs(focusController)); + nsIFocusController *focusController = window->GetRootFocusController(); if (!focusController) return NS_ERROR_FAILURE; diff --git a/mozilla/embedding/components/find/src/nsWebBrowserFind.cpp b/mozilla/embedding/components/find/src/nsWebBrowserFind.cpp index 36c45049814..66c16c1092d 100644 --- a/mozilla/embedding/components/find/src/nsWebBrowserFind.cpp +++ b/mozilla/embedding/components/find/src/nsWebBrowserFind.cpp @@ -371,11 +371,11 @@ NS_IMETHODIMP nsWebBrowserFind::SetMatchCase(PRBool aMatchCase) static void FocusElementButNotDocument(nsIDocument* aDocument, nsIContent* aContent) { - nsCOMPtr focusController; + nsIFocusController *focusController = nsnull; nsCOMPtr ourWindow = do_QueryInterface(aDocument->GetScriptGlobalObject()); if (ourWindow) - ourWindow->GetRootFocusController(getter_AddRefs(focusController)); + focusController = ourWindow->GetRootFocusController(); if (!focusController) return; @@ -844,8 +844,8 @@ nsWebBrowserFind::GetFrameSelection(nsIDOMWindow* aWindow, nsCOMPtr ourWindow = do_QueryInterface(doc->GetScriptGlobalObject()); if (ourWindow) { - nsCOMPtr focusController; - ourWindow->GetRootFocusController(getter_AddRefs(focusController)); + nsIFocusController *focusController = + ourWindow->GetRootFocusController(); if (focusController) { nsCOMPtr focusedElement; focusController->GetFocusedElement(getter_AddRefs(focusedElement)); @@ -887,9 +887,9 @@ nsresult nsWebBrowserFind::OnFind(nsIDOMWindow *aFoundWindow) // focus the frame we found in nsCOMPtr ourWindow = do_QueryInterface(aFoundWindow); - nsCOMPtr focusController; + nsIFocusController *focusController = nsnull; if (ourWindow) - ourWindow->GetRootFocusController(getter_AddRefs(focusController)); + focusController = ourWindow->GetRootFocusController(); if (focusController) { nsCOMPtr windowInt = do_QueryInterface(aFoundWindow); diff --git a/mozilla/embedding/components/windowwatcher/src/Makefile.in b/mozilla/embedding/components/windowwatcher/src/Makefile.in index 279533c75fd..62b382a2c47 100644 --- a/mozilla/embedding/components/windowwatcher/src/Makefile.in +++ b/mozilla/embedding/components/windowwatcher/src/Makefile.in @@ -60,6 +60,7 @@ REQUIRES = xpcom \ webbrwsr \ embed_base \ intl \ + layout \ $(NULL) CPPSRCS = nsPrompt.cpp \ diff --git a/mozilla/embedding/components/windowwatcher/src/nsWindowWatcher.cpp b/mozilla/embedding/components/windowwatcher/src/nsWindowWatcher.cpp index 6891ed0efc4..803ae49fb38 100644 --- a/mozilla/embedding/components/windowwatcher/src/nsWindowWatcher.cpp +++ b/mozilla/embedding/components/windowwatcher/src/nsWindowWatcher.cpp @@ -595,7 +595,7 @@ nsWindowWatcher::OpenWindowJS(nsIDOMWindow *aParent, // is the parent under popup conditions? nsCOMPtr piWindow(do_QueryInterface(aParent)); if (piWindow) - piWindow->IsLoadingOrRunningTimeout(&popupConditions); + popupConditions = piWindow->IsLoadingOrRunningTimeout(); // chrome is always allowed, so clear the flag if the opener is chrome if (popupConditions) { @@ -758,10 +758,7 @@ nsWindowWatcher::OpenWindowJS(nsIDOMWindow *aParent, Also using GetDocument to force document creation seems to screw up focus in the hidden window; see bug 36016. */ - nsCOMPtr document; - w->GetExtantDocument(getter_AddRefs(document)); - - nsCOMPtr doc(do_QueryInterface(document)); + nsCOMPtr doc(do_QueryInterface(w->GetExtantDocument())); if (doc) { // Set the referrer loadInfo->SetReferrer(doc->GetDocumentURI()); diff --git a/mozilla/extensions/typeaheadfind/src/nsTypeAheadFind.cpp b/mozilla/extensions/typeaheadfind/src/nsTypeAheadFind.cpp index fffe1b45c13..095a9d5f8c6 100644 --- a/mozilla/extensions/typeaheadfind/src/nsTypeAheadFind.cpp +++ b/mozilla/extensions/typeaheadfind/src/nsTypeAheadFind.cpp @@ -87,7 +87,6 @@ #include "nsICaret.h" #include "nsIScriptGlobalObject.h" -#include "nsPIDOMWindow.h" #include "nsIDOMKeyEvent.h" #include "nsIDocShellTreeItem.h" #include "nsIWebNavigation.h" @@ -398,18 +397,14 @@ nsTypeAheadFind::Observe(nsISupports *aSubject, const char *aTopic, // Attach nsTypeAheadController to window // so it can handle / and ' shortcuts to start text and link search - nsCOMPtr winInternal = - do_QueryInterface(aSubject); - if (winInternal) { + nsCOMPtr privateWindow = do_QueryInterface(aSubject); + if (privateWindow) { nsCOMPtr controllers; - winInternal->GetControllers(getter_AddRefs(controllers)); + privateWindow->GetControllers(getter_AddRefs(controllers)); NS_ENSURE_TRUE(controllers, NS_ERROR_FAILURE); - nsCOMPtr privateWindow(do_QueryInterface(topLevelWindow)); - NS_ENSURE_TRUE(privateWindow, NS_ERROR_FAILURE); - - nsCOMPtr focusController; - privateWindow->GetRootFocusController(getter_AddRefs(focusController)); + nsIFocusController *focusController = + privateWindow->GetRootFocusController(); NS_ENSURE_TRUE(focusController, NS_ERROR_FAILURE); nsCOMPtr controller = @@ -2387,9 +2382,9 @@ nsTypeAheadFind::GetChromeEventHandler(nsIDOMWindow *aDOMWin, nsIDOMEventTarget **aChromeTarget) { nsCOMPtr privateDOMWindow(do_QueryInterface(aDOMWin)); - nsCOMPtr chromeEventHandler; + nsIChromeEventHandler *chromeEventHandler = nsnull; if (privateDOMWindow) { - privateDOMWindow->GetChromeEventHandler(getter_AddRefs(chromeEventHandler)); + chromeEventHandler = privateDOMWindow->GetChromeEventHandler(); } nsCOMPtr target(do_QueryInterface(chromeEventHandler)); diff --git a/mozilla/layout/base/nsCSSFrameConstructor.cpp b/mozilla/layout/base/nsCSSFrameConstructor.cpp index c090826d615..d10d592affc 100644 --- a/mozilla/layout/base/nsCSSFrameConstructor.cpp +++ b/mozilla/layout/base/nsCSSFrameConstructor.cpp @@ -120,7 +120,6 @@ static NS_DEFINE_CID(kTextNodeCID, NS_TEXTNODE_CID); static NS_DEFINE_CID(kHTMLElementFactoryCID, NS_HTML_ELEMENT_FACTORY_CID); #include "nsIDOMWindowInternal.h" -#include "nsPIDOMWindow.h" #include "nsIMenuFrame.h" #include "nsBox.h" diff --git a/mozilla/layout/base/nsDocumentViewer.cpp b/mozilla/layout/base/nsDocumentViewer.cpp index c87abfa35be..03b74d7f2e1 100644 --- a/mozilla/layout/base/nsDocumentViewer.cpp +++ b/mozilla/layout/base/nsDocumentViewer.cpp @@ -568,15 +568,11 @@ nsresult DocumentViewerImpl::SyncParentSubDocMap() { nsCOMPtr item(do_QueryInterface(mContainer)); - nsCOMPtr win(do_GetInterface(item)); - nsCOMPtr pwin(do_QueryInterface(win)); + nsCOMPtr pwin(do_QueryInterface(item)); nsCOMPtr content; if (mDocument && pwin) { - nsCOMPtr frame_element; - pwin->GetFrameElementInternal(getter_AddRefs(frame_element)); - - content = do_QueryInterface(frame_element); + content = do_QueryInterface(pwin->GetFrameElementInternal()); } if (content) { @@ -2787,17 +2783,12 @@ DocumentViewerImpl::GetPopupNode(nsIDOMNode** aNode) NS_ENSURE_TRUE(document, NS_ERROR_FAILURE); - // get the internal dom window - nsCOMPtr internalWin(do_QueryInterface(document->GetScriptGlobalObject(), &rv)); - NS_ENSURE_SUCCESS(rv, rv); - // get the private dom window - nsCOMPtr privateWin(do_QueryInterface(internalWin, &rv)); + nsCOMPtr privateWin(do_QueryInterface(document->GetScriptGlobalObject(), &rv)); NS_ENSURE_SUCCESS(rv, rv); // get the focus controller - nsCOMPtr focusController; - privateWin->GetRootFocusController(getter_AddRefs(focusController)); + nsIFocusController *focusController = privateWin->GetRootFocusController(); NS_ENSURE_TRUE(focusController, NS_ERROR_FAILURE); // get the popup node diff --git a/mozilla/layout/base/nsIChromeEventHandler.idl b/mozilla/layout/base/nsIChromeEventHandler.idl index 9cc31d3d4a2..2e5760c64f9 100644 --- a/mozilla/layout/base/nsIChromeEventHandler.idl +++ b/mozilla/layout/base/nsIChromeEventHandler.idl @@ -40,8 +40,8 @@ #include "nsISupports.idl" %{ C++ -#include "nsIPresContext.h" -#include "nsEvent.h" +#include "nsEvent.h" // for nsEventStatus enum +class nsIPresContext; %} [ptr] native nsIPresContext(nsIPresContext); diff --git a/mozilla/layout/base/nsPresShell.cpp b/mozilla/layout/base/nsPresShell.cpp index 4600b355aaf..1fbc4328fd1 100644 --- a/mozilla/layout/base/nsPresShell.cpp +++ b/mozilla/layout/base/nsPresShell.cpp @@ -4304,8 +4304,8 @@ PresShell::ScrollFrameIntoView(nsIFrame *aFrame, if (document){ nsCOMPtr ourWindow = do_QueryInterface(document->GetScriptGlobalObject()); if(ourWindow) { - nsCOMPtr focusController; - ourWindow->GetRootFocusController(getter_AddRefs(focusController)); + nsIFocusController *focusController = + ourWindow->GetRootFocusController(); if (focusController) { PRBool dontScroll; focusController->GetSuppressFocusScroll(&dontScroll); @@ -4553,8 +4553,7 @@ PresShell::GetSelectionForCopy(nsISelection** outSelection) nsCOMPtr content; nsCOMPtr ourWindow = do_QueryInterface(mDocument->GetScriptGlobalObject()); if (ourWindow) { - nsCOMPtr focusController; - ourWindow->GetRootFocusController(getter_AddRefs(focusController)); + nsIFocusController *focusController = ourWindow->GetRootFocusController(); if (focusController) { nsCOMPtr focusedElement; focusController->GetFocusedElement(getter_AddRefs(focusedElement)); @@ -4867,9 +4866,9 @@ void PresShell::UnsuppressAndInvalidate() { nsCOMPtr ourWindow = do_QueryInterface(mDocument->GetScriptGlobalObject()); - nsCOMPtr focusController; + nsIFocusController *focusController = nsnull; if (ourWindow) - ourWindow->GetRootFocusController(getter_AddRefs(focusController)); + focusController = ourWindow->GetRootFocusController(); if (focusController) // Suppress focus. The act of tearing down the old content viewer // causes us to blur incorrectly. @@ -5844,8 +5843,8 @@ PresShell::HandleEvent(nsIView *aView, // sends IME event to pre-focused element nsCOMPtr ourWindow = do_QueryInterface(mDocument->GetScriptGlobalObject()); if (ourWindow) { - nsCOMPtr focusController; - ourWindow->GetRootFocusController(getter_AddRefs(focusController)); + nsIFocusController *focusController = + ourWindow->GetRootFocusController(); if (focusController) { PRBool active = PR_FALSE; // check input focus is in Mozilla diff --git a/mozilla/layout/base/public/nsIChromeEventHandler.idl b/mozilla/layout/base/public/nsIChromeEventHandler.idl index 9cc31d3d4a2..2e5760c64f9 100644 --- a/mozilla/layout/base/public/nsIChromeEventHandler.idl +++ b/mozilla/layout/base/public/nsIChromeEventHandler.idl @@ -40,8 +40,8 @@ #include "nsISupports.idl" %{ C++ -#include "nsIPresContext.h" -#include "nsEvent.h" +#include "nsEvent.h" // for nsEventStatus enum +class nsIPresContext; %} [ptr] native nsIPresContext(nsIPresContext); diff --git a/mozilla/layout/generic/nsFrameFrame.cpp b/mozilla/layout/generic/nsFrameFrame.cpp index 2e513982348..e1d87147567 100644 --- a/mozilla/layout/generic/nsFrameFrame.cpp +++ b/mozilla/layout/generic/nsFrameFrame.cpp @@ -82,7 +82,6 @@ #include "nsWeakReference.h" #include "nsIDOMWindow.h" #include "nsIDOMDocument.h" -#include "nsPIDOMWindow.h" #include "nsIRenderingContext.h" #include "nsIFrameFrame.h" #include "nsAutoPtr.h" diff --git a/mozilla/layout/generic/nsHTMLFrame.cpp b/mozilla/layout/generic/nsHTMLFrame.cpp index e69e497f1d3..e4a56e00b29 100644 --- a/mozilla/layout/generic/nsHTMLFrame.cpp +++ b/mozilla/layout/generic/nsHTMLFrame.cpp @@ -64,7 +64,6 @@ #include "nsIDOMWindowInternal.h" #include "nsIScriptGlobalObject.h" #include "nsIFocusController.h" -#include "nsPIDOMWindow.h" #include "nsIScrollableFrame.h" #include "nsIScrollableView.h" #include "nsIDocShell.h" diff --git a/mozilla/layout/generic/nsObjectFrame.cpp b/mozilla/layout/generic/nsObjectFrame.cpp index b69f77cb87c..76c6be06d0e 100644 --- a/mozilla/layout/generic/nsObjectFrame.cpp +++ b/mozilla/layout/generic/nsObjectFrame.cpp @@ -3792,9 +3792,9 @@ NS_IMETHODIMP nsPluginInstanceOwner::Init(nsIPresContext* aPresContext, nsObject // content viewer doesn't transfer focus to the toplevel window. nsCOMPtr privWindow = do_GetInterface(container); - nsCOMPtr fc; + nsIFocusController *fc = nsnull; if (privWindow) { - privWindow->GetRootFocusController(getter_AddRefs(fc)); + fc = privWindow->GetRootFocusController(); if (fc) fc->SetSuppressFocus(PR_TRUE, "PluginInstanceOwner::Init Suppression"); } diff --git a/mozilla/layout/html/base/src/nsHTMLFrame.cpp b/mozilla/layout/html/base/src/nsHTMLFrame.cpp index e69e497f1d3..e4a56e00b29 100644 --- a/mozilla/layout/html/base/src/nsHTMLFrame.cpp +++ b/mozilla/layout/html/base/src/nsHTMLFrame.cpp @@ -64,7 +64,6 @@ #include "nsIDOMWindowInternal.h" #include "nsIScriptGlobalObject.h" #include "nsIFocusController.h" -#include "nsPIDOMWindow.h" #include "nsIScrollableFrame.h" #include "nsIScrollableView.h" #include "nsIDocShell.h" diff --git a/mozilla/layout/html/base/src/nsObjectFrame.cpp b/mozilla/layout/html/base/src/nsObjectFrame.cpp index b69f77cb87c..76c6be06d0e 100644 --- a/mozilla/layout/html/base/src/nsObjectFrame.cpp +++ b/mozilla/layout/html/base/src/nsObjectFrame.cpp @@ -3792,9 +3792,9 @@ NS_IMETHODIMP nsPluginInstanceOwner::Init(nsIPresContext* aPresContext, nsObject // content viewer doesn't transfer focus to the toplevel window. nsCOMPtr privWindow = do_GetInterface(container); - nsCOMPtr fc; + nsIFocusController *fc = nsnull; if (privWindow) { - privWindow->GetRootFocusController(getter_AddRefs(fc)); + fc = privWindow->GetRootFocusController(); if (fc) fc->SetSuppressFocus(PR_TRUE, "PluginInstanceOwner::Init Suppression"); } diff --git a/mozilla/layout/html/base/src/nsPresShell.cpp b/mozilla/layout/html/base/src/nsPresShell.cpp index 4600b355aaf..1fbc4328fd1 100644 --- a/mozilla/layout/html/base/src/nsPresShell.cpp +++ b/mozilla/layout/html/base/src/nsPresShell.cpp @@ -4304,8 +4304,8 @@ PresShell::ScrollFrameIntoView(nsIFrame *aFrame, if (document){ nsCOMPtr ourWindow = do_QueryInterface(document->GetScriptGlobalObject()); if(ourWindow) { - nsCOMPtr focusController; - ourWindow->GetRootFocusController(getter_AddRefs(focusController)); + nsIFocusController *focusController = + ourWindow->GetRootFocusController(); if (focusController) { PRBool dontScroll; focusController->GetSuppressFocusScroll(&dontScroll); @@ -4553,8 +4553,7 @@ PresShell::GetSelectionForCopy(nsISelection** outSelection) nsCOMPtr content; nsCOMPtr ourWindow = do_QueryInterface(mDocument->GetScriptGlobalObject()); if (ourWindow) { - nsCOMPtr focusController; - ourWindow->GetRootFocusController(getter_AddRefs(focusController)); + nsIFocusController *focusController = ourWindow->GetRootFocusController(); if (focusController) { nsCOMPtr focusedElement; focusController->GetFocusedElement(getter_AddRefs(focusedElement)); @@ -4867,9 +4866,9 @@ void PresShell::UnsuppressAndInvalidate() { nsCOMPtr ourWindow = do_QueryInterface(mDocument->GetScriptGlobalObject()); - nsCOMPtr focusController; + nsIFocusController *focusController = nsnull; if (ourWindow) - ourWindow->GetRootFocusController(getter_AddRefs(focusController)); + focusController = ourWindow->GetRootFocusController(); if (focusController) // Suppress focus. The act of tearing down the old content viewer // causes us to blur incorrectly. @@ -5844,8 +5843,8 @@ PresShell::HandleEvent(nsIView *aView, // sends IME event to pre-focused element nsCOMPtr ourWindow = do_QueryInterface(mDocument->GetScriptGlobalObject()); if (ourWindow) { - nsCOMPtr focusController; - ourWindow->GetRootFocusController(getter_AddRefs(focusController)); + nsIFocusController *focusController = + ourWindow->GetRootFocusController(); if (focusController) { PRBool active = PR_FALSE; // check input focus is in Mozilla diff --git a/mozilla/layout/html/document/src/nsFrameFrame.cpp b/mozilla/layout/html/document/src/nsFrameFrame.cpp index 2e513982348..e1d87147567 100644 --- a/mozilla/layout/html/document/src/nsFrameFrame.cpp +++ b/mozilla/layout/html/document/src/nsFrameFrame.cpp @@ -82,7 +82,6 @@ #include "nsWeakReference.h" #include "nsIDOMWindow.h" #include "nsIDOMDocument.h" -#include "nsPIDOMWindow.h" #include "nsIRenderingContext.h" #include "nsIFrameFrame.h" #include "nsAutoPtr.h" diff --git a/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp b/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp index c090826d615..d10d592affc 100644 --- a/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp +++ b/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp @@ -120,7 +120,6 @@ static NS_DEFINE_CID(kTextNodeCID, NS_TEXTNODE_CID); static NS_DEFINE_CID(kHTMLElementFactoryCID, NS_HTML_ELEMENT_FACTORY_CID); #include "nsIDOMWindowInternal.h" -#include "nsPIDOMWindow.h" #include "nsIMenuFrame.h" #include "nsBox.h" diff --git a/mozilla/layout/printing/nsPrintEngine.cpp b/mozilla/layout/printing/nsPrintEngine.cpp index 551e4b1983f..b70db4602df 100644 --- a/mozilla/layout/printing/nsPrintEngine.cpp +++ b/mozilla/layout/printing/nsPrintEngine.cpp @@ -3966,9 +3966,9 @@ nsPrintEngine::FindFocusedDOMWindow() nsIScriptGlobalObject* theSGO = theDoc->GetScriptGlobalObject(); nsCOMPtr theDOMWindow = do_QueryInterface(theSGO); if(theDOMWindow){ - nsCOMPtr focusController; - theDOMWindow->GetRootFocusController(getter_AddRefs(focusController)); - if(focusController){ + nsIFocusController *focusController = + theDOMWindow->GetRootFocusController(); + if (focusController) { nsCOMPtr theDOMWin; focusController->GetFocusedWindow(getter_AddRefs(theDOMWin)); if(theDOMWin && IsWindowsInOurSubTree(theDOMWin)){ diff --git a/mozilla/layout/xul/base/src/nsMenuBarFrame.cpp b/mozilla/layout/xul/base/src/nsMenuBarFrame.cpp index 9bfcb3f766c..2b866371b78 100644 --- a/mozilla/layout/xul/base/src/nsMenuBarFrame.cpp +++ b/mozilla/layout/xul/base/src/nsMenuBarFrame.cpp @@ -215,8 +215,8 @@ nsMenuBarFrame::SetActive(PRBool aActiveFlag) if (!windowPrivate) break; - nsCOMPtr focusController; - windowPrivate->GetRootFocusController(getter_AddRefs(focusController)); + nsIFocusController *focusController = + windowPrivate->GetRootFocusController(); if (!focusController) break; diff --git a/mozilla/rdf/chrome/src/nsChromeRegistry.cpp b/mozilla/rdf/chrome/src/nsChromeRegistry.cpp index c9c890ab5cd..c5aa51613ad 100644 --- a/mozilla/rdf/chrome/src/nsChromeRegistry.cpp +++ b/mozilla/rdf/chrome/src/nsChromeRegistry.cpp @@ -64,7 +64,6 @@ #include "nsNetUtil.h" #include "nsIFileChannel.h" #include "nsIXBLService.h" -#include "nsPIDOMWindow.h" #include "nsIDOMWindowInternal.h" #include "nsIDOMWindowCollection.h" #include "nsIDOMLocation.h" diff --git a/mozilla/toolkit/components/satchel/src/nsFormFillController.cpp b/mozilla/toolkit/components/satchel/src/nsFormFillController.cpp index d9e8cbe9b1c..3b67213930a 100644 --- a/mozilla/toolkit/components/satchel/src/nsFormFillController.cpp +++ b/mozilla/toolkit/components/satchel/src/nsFormFillController.cpp @@ -663,9 +663,10 @@ nsFormFillController::AddFocusListener(nsIDOMWindow *aWindow) return; nsCOMPtr privateDOMWindow(do_QueryInterface(aWindow)); - nsCOMPtr chromeEventHandler; + nsIChromeEventHandler *chromeEventHandler = nsnull; if (privateDOMWindow) - privateDOMWindow->GetChromeEventHandler(getter_AddRefs(chromeEventHandler)); + chromeEventHandler = privateDOMWindow->GetChromeEventHandler(); + nsCOMPtr target(do_QueryInterface(chromeEventHandler)); if (target) @@ -683,9 +684,10 @@ nsFormFillController::RemoveFocusListener(nsIDOMWindow *aWindow) StopControllingInput(); nsCOMPtr privateDOMWindow(do_QueryInterface(aWindow)); - nsCOMPtr chromeEventHandler; + nsIChromeEventHandler *chromeEventHandler = nsnull; if (privateDOMWindow) - privateDOMWindow->GetChromeEventHandler(getter_AddRefs(chromeEventHandler)); + chromeEventHandler = privateDOMWindow->GetChromeEventHandler(); + nsCOMPtr target(do_QueryInterface(chromeEventHandler)); target->RemoveEventListener(NS_LITERAL_STRING("focus"), diff --git a/mozilla/xpfe/appshell/src/nsChromeTreeOwner.cpp b/mozilla/xpfe/appshell/src/nsChromeTreeOwner.cpp index 1ed399a7cea..95980c44844 100644 --- a/mozilla/xpfe/appshell/src/nsChromeTreeOwner.cpp +++ b/mozilla/xpfe/appshell/src/nsChromeTreeOwner.cpp @@ -60,7 +60,6 @@ #include "nsIDOMWindowInternal.h" #include "nsIDOMXULElement.h" #include "nsIXULBrowserWindow.h" -#include "nsPIDOMWindow.h" // CIDs static NS_DEFINE_CID(kWindowMediatorCID, NS_WINDOWMEDIATOR_CID); diff --git a/mozilla/xpfe/appshell/src/nsWebShellWindow.cpp b/mozilla/xpfe/appshell/src/nsWebShellWindow.cpp index be485b2e77d..c398615df61 100644 --- a/mozilla/xpfe/appshell/src/nsWebShellWindow.cpp +++ b/mozilla/xpfe/appshell/src/nsWebShellWindow.cpp @@ -458,8 +458,8 @@ nsWebShellWindow::HandleEvent(nsGUIEvent *aEvent) if (domWindow) { nsCOMPtr privateDOMWindow = do_QueryInterface(domWindow); if(privateDOMWindow) { - nsCOMPtr focusController; - privateDOMWindow->GetRootFocusController(getter_AddRefs(focusController)); + nsIFocusController *focusController = + privateDOMWindow->GetRootFocusController(); if (focusController) focusController->RewindFocusState(); } @@ -559,8 +559,8 @@ nsWebShellWindow::HandleEvent(nsGUIEvent *aEvent) if (domWindow) { nsCOMPtr privateDOMWindow = do_QueryInterface(domWindow); if(privateDOMWindow) { - nsCOMPtr focusController; - privateDOMWindow->GetRootFocusController(getter_AddRefs(focusController)); + nsIFocusController *focusController = + privateDOMWindow->GetRootFocusController(); if (focusController) focusController->SetActive(PR_FALSE); privateDOMWindow->Deactivate(); @@ -580,8 +580,7 @@ nsWebShellWindow::HandleEvent(nsGUIEvent *aEvent) if (!domWindow) { break; } - nsCOMPtr focusController; - piWin->GetRootFocusController(getter_AddRefs(focusController)); + nsIFocusController *focusController = piWin->GetRootFocusController(); if (focusController) { // This is essentially the first stage of activation (NS_GOTFOCUS is // followed by the DOM window getting activated (which is direct on Win32 @@ -1241,9 +1240,7 @@ nsWebShellWindow::OnStateChange(nsIWebProgress *aProgress, aProgress->GetDOMWindow(getter_AddRefs(eventWin)); nsCOMPtr eventPWin(do_QueryInterface(eventWin)); if (eventPWin) { - nsCOMPtr rootiwin; - eventPWin->GetPrivateRoot(getter_AddRefs(rootiwin)); - nsCOMPtr rootPWin(do_QueryInterface(rootiwin)); + nsPIDOMWindow *rootPWin = eventPWin->GetPrivateRoot(); if (eventPWin != rootPWin) return NS_OK; } diff --git a/mozilla/xpfe/browser/src/nsBrowserInstance.cpp b/mozilla/xpfe/browser/src/nsBrowserInstance.cpp index 75db1303b6b..d07e6d37aa5 100644 --- a/mozilla/xpfe/browser/src/nsBrowserInstance.cpp +++ b/mozilla/xpfe/browser/src/nsBrowserInstance.cpp @@ -50,7 +50,6 @@ #include "nsIHttpProtocolHandler.h" #include "nsISHistory.h" #include "nsIWebNavigation.h" -#include "nsPIDOMWindow.h" /// Unsorted Includes diff --git a/mozilla/xpinstall/src/Makefile.in b/mozilla/xpinstall/src/Makefile.in index eaf2892f225..313af9298e1 100644 --- a/mozilla/xpinstall/src/Makefile.in +++ b/mozilla/xpinstall/src/Makefile.in @@ -76,6 +76,7 @@ REQUIRES = xpcom \ plugin \ unicharutil \ appshell \ + layout \ $(ZLIB_REQUIRES) \ $(NULL) diff --git a/mozilla/xpinstall/src/nsXPInstallManager.cpp b/mozilla/xpinstall/src/nsXPInstallManager.cpp index 74513cca457..8aba30b8535 100644 --- a/mozilla/xpinstall/src/nsXPInstallManager.cpp +++ b/mozilla/xpinstall/src/nsXPInstallManager.cpp @@ -165,10 +165,7 @@ nsXPInstallManager::InitManager(nsIScriptGlobalObject* aGlobalObject, nsXPITrigg // Don't launch installs while page is still loading PRBool isPageLoading = PR_FALSE; nsCOMPtr piWindow = do_QueryInterface(mParentWindow); - if (piWindow) - piWindow->IsLoadingOrRunningTimeout(&isPageLoading); - - if (isPageLoading) + if (piWindow && piWindow->IsLoadingOrRunningTimeout()) rv = NS_ERROR_FAILURE; else {