From 494fe3ed491be69e6b72f227cb69ae8f1de2eca9 Mon Sep 17 00:00:00 2001 From: "darin%meer.net" Date: Tue, 20 Jul 2004 18:31:57 +0000 Subject: [PATCH] fixes bug 106940 "ActiveX browser should use the newer nsIPrefService APIs instead of nsIPref" patch by gerlofs@us.ibm.com, r=mkaply, sr=darin --- .../activex/src/common/IWebBrowserImpl.h | 36 ++++++++++++------- .../activex/src/control/MozillaBrowser.cpp | 21 ++++++----- .../activex/src/control/MozillaBrowser.h | 4 +-- .../browser/activex/src/control/StdAfx.h | 3 +- .../browser/activex/src/plugin/XPCBrowser.cpp | 15 +++----- .../browser/activex/src/plugin/XPCBrowser.h | 6 ++-- 6 files changed, 45 insertions(+), 40 deletions(-) diff --git a/embedding/browser/activex/src/common/IWebBrowserImpl.h b/embedding/browser/activex/src/common/IWebBrowserImpl.h index 57ed969872b2..4d90f2a233b1 100644 --- a/embedding/browser/activex/src/common/IWebBrowserImpl.h +++ b/embedding/browser/activex/src/common/IWebBrowserImpl.h @@ -42,7 +42,8 @@ #include #include "nsIWebNavigation.h" -#include "nsIPref.h" +#include "nsIPrefBranch.h" +#include "nsIPrefLocalizedString.h" #include "nsIDOMWindow.h" #include "nsIBaseWindow.h" #include "nsIWindowWatcher.h" @@ -92,8 +93,8 @@ public: virtual nsresult GetWebNavigation(nsIWebNavigation **aWebNav) = 0; // Return the nsIDOMWindow object virtual nsresult GetDOMWindow(nsIDOMWindow **aDOMWindow) = 0; - // Return the nsIPref object - virtual nsresult GetPrefs(nsIPref **aPrefs) = 0; + // Return the nsIPrefBranch object + virtual nsresult GetPrefs(nsIPrefBranch **aPrefBranch) = 0; // Return the valid state of the browser virtual PRBool BrowserIsValid() = 0; @@ -173,15 +174,22 @@ public: CComBSTR bstrUrl(L"http://home.netscape.com/"); // Find the home page stored in prefs - nsCOMPtr prefs; - if (NS_SUCCEEDED(GetPrefs(getter_AddRefs(prefs)))) + nsCOMPtr prefBranch; + if (NS_SUCCEEDED(GetPrefs(getter_AddRefs(prefBranch)))) { - nsXPIDLString homePage; - nsresult rv; - rv = prefs->GetLocalizedUnicharPref("browser.startup.homepage", getter_Copies(homePage)); - if (rv == NS_OK) + nsCOMPtr homePage; + prefBranch->GetComplexValue("browser.startup.homepage", + NS_GET_IID(nsIPrefLocalizedString), + getter_AddRefs(homePage)); + + if (homePage) { - bstrUrl = homePage.get();; + nsXPIDLString homePageString; + nsresult rv = homePage->ToString(getter_Copies(homePageString)); + if (NS_SUCCEEDED(rv)) + { + bstrUrl = homePageString.get(); + } } } @@ -197,14 +205,16 @@ public: CComBSTR bstrUrl(L"http://search.netscape.com/"); + //NOTE: This code has not been implemented yet +#if 0 // Find the home page stored in prefs - nsCOMPtr prefs; - if (NS_SUCCEEDED(GetPrefs(getter_AddRefs(prefs)))) + nsCOMPtr prefBranch; + if (NS_SUCCEEDED(GetPrefs(getter_AddRefs(prefBranch)))) { // TODO find and navigate to the search page stored in prefs // and not this hard coded address } - +#endif // Navigate to the search page Navigate(bstrUrl, NULL, NULL, NULL, NULL); diff --git a/embedding/browser/activex/src/control/MozillaBrowser.cpp b/embedding/browser/activex/src/control/MozillaBrowser.cpp index d6c7afeef8bc..cdeb1cd861fd 100644 --- a/embedding/browser/activex/src/control/MozillaBrowser.cpp +++ b/embedding/browser/activex/src/control/MozillaBrowser.cpp @@ -86,7 +86,6 @@ static HANDLE s_hHackedNonReentrancy = NULL; static NS_DEFINE_CID(kPromptServiceCID, NS_PROMPTSERVICE_CID); static NS_DEFINE_CID(kHelperAppLauncherDialogCID, NS_HELPERAPPLAUNCHERDIALOG_CID); -static NS_DEFINE_CID(kPrefCID, NS_PREF_CID); class PrintListener : public nsIWebProgressListener { @@ -1032,7 +1031,7 @@ HRESULT CMozillaBrowser::Initialize() rv = NS_InitEmbedding(binDir, directoryProvider); // Load preferences service - mPrefs = do_GetService(kPrefCID, &rv); + mPrefBranch = do_GetService(NS_PREFSERVICE_CONTRACTID, &rv); if (NS_FAILED(rv)) { NG_ASSERT(0); @@ -1122,7 +1121,7 @@ HRESULT CMozillaBrowser::Terminate() { #endif - mPrefs = nsnull; + mPrefBranch = nsnull; NS_TermEmbedding(); #ifdef HACK_NON_REENTRANCY @@ -1501,8 +1500,8 @@ HRESULT CMozillaBrowser::PrintDocument(BOOL promptUser) // Disable print progress dialog (XUL) PRBool oldShowPrintProgress = FALSE; const char *kShowPrintProgressPref = "print.show_print_progress"; - mPrefs->GetBoolPref(kShowPrintProgressPref, &oldShowPrintProgress); - mPrefs->SetBoolPref(kShowPrintProgressPref, PR_FALSE); + mPrefBranch->GetBoolPref(kShowPrintProgressPref, &oldShowPrintProgress); + mPrefBranch->SetBoolPref(kShowPrintProgressPref, PR_FALSE); // Print PrintListener *listener = new PrintListener; @@ -1518,7 +1517,7 @@ HRESULT CMozillaBrowser::PrintDocument(BOOL promptUser) { printSettings->SetPrintSilent(oldPrintSilent); } - mPrefs->SetBoolPref(kShowPrintProgressPref, oldShowPrintProgress); + mPrefBranch->SetBoolPref(kShowPrintProgressPref, oldShowPrintProgress); return S_OK; } @@ -1727,12 +1726,12 @@ nsresult CMozillaBrowser::GetDOMWindow(nsIDOMWindow **aDOMWindow) return mWebBrowser->GetContentDOMWindow(aDOMWindow); } -nsresult CMozillaBrowser::GetPrefs(nsIPref **aPrefs) +nsresult CMozillaBrowser::GetPrefs(nsIPrefBranch **aPrefBranch) { - if (mPrefs) - *aPrefs = mPrefs; - NS_IF_ADDREF(*aPrefs); - return (*aPrefs) ? NS_OK : NS_ERROR_FAILURE; + if (mPrefBranch) + *aPrefBranch = mPrefBranch; + NS_IF_ADDREF(*aPrefBranch); + return (*aPrefBranch) ? NS_OK : NS_ERROR_FAILURE; } PRBool CMozillaBrowser::BrowserIsValid() diff --git a/embedding/browser/activex/src/control/MozillaBrowser.h b/embedding/browser/activex/src/control/MozillaBrowser.h index f05d93b9b482..c59f6656d975 100644 --- a/embedding/browser/activex/src/control/MozillaBrowser.h +++ b/embedding/browser/activex/src/control/MozillaBrowser.h @@ -376,7 +376,7 @@ protected: nsCOMPtr mContextNode; // Prefs service - nsCOMPtr mPrefs; + nsCOMPtr mPrefBranch; // Flag to indicate if browser is created or not BOOL mValidBrowserFlag; @@ -423,7 +423,7 @@ public: // IWebBrowserImpl overrides virtual nsresult GetWebNavigation(nsIWebNavigation **aWebNav); virtual nsresult GetDOMWindow(nsIDOMWindow **aDOMWindow); - virtual nsresult GetPrefs(nsIPref **aPref); + virtual nsresult GetPrefs(nsIPrefBranch **aPrefBranch); virtual PRBool BrowserIsValid(); // IWebBrowser virtual HRESULT STDMETHODCALLTYPE get_Parent(IDispatch __RPC_FAR *__RPC_FAR *ppDisp); diff --git a/embedding/browser/activex/src/control/StdAfx.h b/embedding/browser/activex/src/control/StdAfx.h index cae8fc5fb523..66914f8f71a6 100644 --- a/embedding/browser/activex/src/control/StdAfx.h +++ b/embedding/browser/activex/src/control/StdAfx.h @@ -73,7 +73,8 @@ #include "nsIHTTPChannel.h" -#include "nsIPref.h" +#include "nsIPrefBranch.h" +#include "nsIPrefService.h" #include "nsIURL.h" #include "nsIBaseWindow.h" #include "nsIWebBrowser.h" diff --git a/embedding/browser/activex/src/plugin/XPCBrowser.cpp b/embedding/browser/activex/src/plugin/XPCBrowser.cpp index 0e343739c40a..41bd0d0362c4 100644 --- a/embedding/browser/activex/src/plugin/XPCBrowser.cpp +++ b/embedding/browser/activex/src/plugin/XPCBrowser.cpp @@ -44,12 +44,12 @@ #include "nsIInterfaceRequestorUtils.h" #include "nsIServiceManagerUtils.h" #include "nsString.h" -#include "nsIPref.h" +#include "nsIPrefBranch.h" +#include "nsIPrefService.h" #include "XPCBrowser.h" -static NS_DEFINE_CID(kPrefCID, NS_PREF_CID); IEBrowser::IEBrowser() { @@ -90,15 +90,10 @@ nsresult IEBrowser::GetDOMWindow(nsIDOMWindow **aDOMWindow) return (*aDOMWindow) ? NS_OK : NS_ERROR_FAILURE; } -// Return the nsIPref object -nsresult IEBrowser::GetPrefs(nsIPref **aPrefs) +// Return the nsIPrefBranch object +nsresult IEBrowser::GetPrefs(nsIPrefBranch **aPrefBranch) { - NS_ENSURE_ARG_POINTER(aPrefs); - nsresult rv; - nsCOMPtr prefs = do_GetService(kPrefCID, &rv); - *aPrefs = prefs; - NS_IF_ADDREF(*aPrefs); - return rv; + return CallGetService(NS_PREFSERVICE_CONTRACTID, aPrefBranch); } // Return the valid state of the browser diff --git a/embedding/browser/activex/src/plugin/XPCBrowser.h b/embedding/browser/activex/src/plugin/XPCBrowser.h index 47fd571410e0..9133538198dd 100644 --- a/embedding/browser/activex/src/plugin/XPCBrowser.h +++ b/embedding/browser/activex/src/plugin/XPCBrowser.h @@ -76,11 +76,11 @@ public: virtual nsresult GetWebNavigation(nsIWebNavigation **aWebNav); // Return the nsIDOMWindow object virtual nsresult GetDOMWindow(nsIDOMWindow **aDOMWindow); - // Return the nsIPref object - virtual nsresult GetPrefs(nsIPref **aPrefs); + // Return the nsIPrefBranch object + virtual nsresult GetPrefs(nsIPrefBranch **aPrefBranch); // Return the valid state of the browser virtual PRBool BrowserIsValid(); }; -#endif \ No newline at end of file +#endif