diff --git a/k-meleon/app/BrowserImpl.cpp b/k-meleon/app/BrowserImpl.cpp index e889ba6c..8b690d3a 100644 --- a/k-meleon/app/BrowserImpl.cpp +++ b/k-meleon/app/BrowserImpl.cpp @@ -865,13 +865,15 @@ NS_IMETHODIMP CBrowserImpl::HandleEvent(nsIDOMEvent *aEvent) /* See if this is from the toplevel frame */ nsCOMPtr domWin; + nsCOMPtr pdomWin; domDoc->GetDefaultView(getter_AddRefs(domWin)); NS_ENSURE_TRUE (domWin, NS_ERROR_FAILURE); nsCOMPtr topDomWin; - domWin->GetTop (getter_AddRefs (topDomWin)); + pdomWin = do_QueryInterface(domWin); + topDomWin = pdomWin->GetTop(); - nsCOMPtr domWinAsISupports (do_QueryInterface (domWin)); + nsCOMPtr domWinAsISupports (do_QueryInterface (pdomWin)); nsCOMPtr topDomWinAsISupports (do_QueryInterface (topDomWin)); /* disallow subframes to set favicon */ if (domWinAsISupports != topDomWinAsISupports) return NS_OK; diff --git a/k-meleon/app/BrowserImplWebPrgrsLstnr.cpp b/k-meleon/app/BrowserImplWebPrgrsLstnr.cpp index 2ea2484e..aef5a496 100644 --- a/k-meleon/app/BrowserImplWebPrgrsLstnr.cpp +++ b/k-meleon/app/BrowserImplWebPrgrsLstnr.cpp @@ -37,6 +37,7 @@ #include "nsIRequest.h" #include "nsIChannel.h" #include "nsIWebProgress.h" +#include "nsPIDOMWindow.h" //***************************************************************************** // CBrowserImpl::nsIWebProgressListener Implementation @@ -148,17 +149,19 @@ NS_IMETHODIMP CBrowserImpl::OnLocationChange(nsIWebProgress* aWebProgress, if (aWebProgress) { nsCOMPtr domWindow; nsCOMPtr topDomWindow; + nsCOMPtr pdomWindow; aWebProgress->GetDOMWindow(getter_AddRefs(domWindow)); if (domWindow) { // Get root domWindow - domWindow->GetTop(getter_AddRefs(topDomWindow)); + pdomWindow = do_QueryInterface(domWindow); + topDomWindow = pdomWindow->GetTop(); } - if (domWindow != topDomWindow) + if (pdomWindow != topDomWindow) isSubFrameLoad = PR_TRUE; } if (isSubFrameLoad) - return NS_OK; + return NS_OK; m_pBrowserFrameGlue->UpdateCurrentURI(location); diff --git a/k-meleon/kplugins/adblock/adblock.cpp b/k-meleon/kplugins/adblock/adblock.cpp index 2b343628..c7ab75f8 100644 --- a/k-meleon/kplugins/adblock/adblock.cpp +++ b/k-meleon/kplugins/adblock/adblock.cpp @@ -34,6 +34,7 @@ #include "nsGenericFactory.h" #include "adcomp.h" #include "nsEmbedString.h" +#include "nsPIDOMWindow.h" #include "nsIDOMWindow.h" #include "nsIDOMDocument.h" #include "nsIDOMLocation.h" @@ -679,11 +680,10 @@ NS_IMETHODIMP Policy::Observe(nsISupports *aSubject, const char * aTopic, const static vector domPopup; if (strcmp(aTopic, "content-document-global-created") == 0) { - nsCOMPtr dom = do_QueryInterface(aSubject); + nsCOMPtr dom = do_QueryInterface(aSubject); if (!dom) return NS_OK; - nsCOMPtr opener; - dom->GetOpener(getter_AddRefs(opener)); + nsCOMPtr opener = dom->GetOpener(); if (!opener) return NS_OK; nsCOMPtr location; @@ -749,8 +749,8 @@ NS_IMETHODIMP Policy::Observe(nsISupports *aSubject, const char * aTopic, const nsCOMPtr uri; channel->GetURI(getter_AddRefs(uri)); - nsCOMPtr opener; - dom->GetOpener(getter_AddRefs(opener)); + nsCOMPtr pdom = do_QueryInterface(dom); + nsCOMPtr opener = pdom->GetOpener(); if (!opener) return NS_OK; nsCOMPtr document; @@ -1183,8 +1183,8 @@ void Create(HWND hwnd) browser->GetContentDOMWindow(getter_AddRefs(dom)); if (!dom) return; - nsCOMPtr opener; - dom->GetOpener(getter_AddRefs(opener)); + nsCOMPtr pdom = do_QueryInterface(dom); + nsCOMPtr opener = pdom->GetOpener(); //kmeleonDocInfo *info = kPlugin.kFuncs->GetDocInfo(hwnd); //rules.match(info->url diff --git a/k-meleon/winEmbed/WebBrowserChrome.cpp b/k-meleon/winEmbed/WebBrowserChrome.cpp index 8afb8d03..3e566e2a 100644 --- a/k-meleon/winEmbed/WebBrowserChrome.cpp +++ b/k-meleon/winEmbed/WebBrowserChrome.cpp @@ -31,6 +31,7 @@ #include "resource.h" #include "winEmbed.h" #include "WebBrowserChrome.h" +#include "nsPIDOMWindow.h" // OS headers #include @@ -284,12 +285,14 @@ NS_IMETHODIMP WebBrowserChrome::OnLocationChange(nsIWebProgress* aWebProgress, PRBool isSubFrameLoad = PR_FALSE; // Is this a subframe load if (aWebProgress) { nsCOMPtr domWindow; - nsCOMPtr topDomWindow; + nsCOMPtr pdomWindow; + nsCOMPtr topDomWindow; aWebProgress->GetDOMWindow(getter_AddRefs(domWindow)); if (domWindow) { // Get root domWindow - domWindow->GetTop(getter_AddRefs(topDomWindow)); + pdomWindow = do_QueryInterface(domWindow); + topDomWindow = pdomWindow->GetTop(); } - if (domWindow != topDomWindow) + if (pdomWindow != topDomWindow) isSubFrameLoad = PR_TRUE; } if (!isSubFrameLoad)