forked from pool/MozillaFirefox
a7f369b4c2
* MFSA 2012-34/CVE-2012-1938/CVE-2012-1937/CVE-2011-3101 Miscellaneous memory safety hazards * MFSA 2012-36/CVE-2012-1944 (bmo#751422) Content Security Policy inline-script bypass * MFSA 2012-37/CVE-2012-1945 (bmo#670514) Information disclosure though Windows file shares and shortcut files * MFSA 2012-38/CVE-2012-1946 (bmo#750109) Use-after-free while replacing/inserting a node in a document * MFSA 2012-40/CVE-2012-1947/CVE-2012-1940/CVE-2012-1941 Buffer overflow and use-after-free issues found using Address Sanitizer - require NSS 3.13.4 * MFSA 2012-39/CVE-2012-0441 (bmo#715073) - fix sound notifications when filename/path contains a whitespace (bmo#749739) OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox?expand=0&rev=280
47 lines
1.9 KiB
Diff
47 lines
1.9 KiB
Diff
From: Wolfgang Rosenauer
|
|
Subject: Do not use gconf for proxy settings if not running within Gnome
|
|
|
|
Index: toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
|
|
===================================================================
|
|
RCS file: /cvsroot/mozilla/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp,v
|
|
retrieving revision 1.1
|
|
|
|
diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
|
|
--- a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
|
|
+++ b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
|
|
@@ -74,22 +74,28 @@ private:
|
|
nsresult SetProxyResultFromGSettings(const char* aKeyBase, const char* aType, nsACString& aResult);
|
|
};
|
|
|
|
NS_IMPL_ISUPPORTS1(nsUnixSystemProxySettings, nsISystemProxySettings)
|
|
|
|
nsresult
|
|
nsUnixSystemProxySettings::Init()
|
|
{
|
|
- mSchemeProxySettings.Init(5);
|
|
- mGConf = do_GetService(NS_GCONFSERVICE_CONTRACTID);
|
|
- mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID);
|
|
- if (mGSettings) {
|
|
- mGSettings->GetCollectionForSchema(NS_LITERAL_CSTRING("org.gnome.system.proxy"),
|
|
- getter_AddRefs(mProxySettings));
|
|
+ // If this is a GNOME session, load gconf and try to use its preferences.
|
|
+ // If gconf is not available (which would be stupid) we'll proceed as if
|
|
+ // this was not a GNOME session, using *_PROXY environment variables.
|
|
+ const char* sessionType = PR_GetEnv("DESKTOP_SESSION");
|
|
+ if (sessionType && !strcmp(sessionType, "gnome")) {
|
|
+ mSchemeProxySettings.Init(5);
|
|
+ mGConf = do_GetService(NS_GCONFSERVICE_CONTRACTID);
|
|
+ mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID);
|
|
+ if (mGSettings) {
|
|
+ mGSettings->GetCollectionForSchema(NS_LITERAL_CSTRING("org.gnome.system.proxy"),
|
|
+ getter_AddRefs(mProxySettings));
|
|
+ }
|
|
}
|
|
|
|
return NS_OK;
|
|
}
|
|
|
|
bool
|
|
nsUnixSystemProxySettings::IsProxyMode(const char* aMode)
|
|
{
|