thunderbird/mozilla-1540145.patch

169 lines
6.3 KiB
Diff

diff -up firefox-66.0.1/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp.mozilla-1540145 firefox-66.0.1/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
--- firefox-66.0.1/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp.mozilla-1540145 2019-03-22 06:06:07.000000000 +0100
+++ firefox-66.0.1/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp 2019-04-01 09:33:18.621166482 +0200
@@ -6,7 +6,6 @@
#include "nsISystemProxySettings.h"
#include "mozilla/ModuleUtils.h"
#include "nsIServiceManager.h"
-#include "nsIGConfService.h"
#include "nsIURI.h"
#include "nsReadableUtils.h"
#include "nsArrayUtils.h"
@@ -32,16 +31,10 @@ class nsUnixSystemProxySettings final :
private:
~nsUnixSystemProxySettings() = default;
- nsCOMPtr<nsIGConfService> mGConf;
- nsCOMPtr<nsIGSettingsService> mGSettings;
+ nsCOMPtr<nsIGSettingsService> mGSettings;
nsCOMPtr<nsIGSettingsCollection> mProxySettings;
nsInterfaceHashtable<nsCStringHashKey, nsIGSettingsCollection>
mSchemeProxySettings;
- bool IsProxyMode(const char* aMode);
- nsresult SetProxyResultFromGConf(const char* aKeyBase, const char* aType,
- nsACString& aResult);
- nsresult GetProxyFromGConf(const nsACString& aScheme, const nsACString& aHost,
- int32_t aPort, nsACString& aResult);
nsresult GetProxyFromGSettings(const nsACString& aScheme,
const nsACString& aHost, int32_t aPort,
nsACString& aResult);
@@ -66,20 +59,10 @@ nsresult nsUnixSystemProxySettings::Init
NS_LITERAL_CSTRING("org.gnome.system.proxy"),
getter_AddRefs(mProxySettings));
}
- if (!mProxySettings) {
- mGConf = do_GetService(NS_GCONFSERVICE_CONTRACTID);
- }
return NS_OK;
}
-bool nsUnixSystemProxySettings::IsProxyMode(const char* aMode) {
- nsAutoCString mode;
- return NS_SUCCEEDED(mGConf->GetString(
- NS_LITERAL_CSTRING("/system/proxy/mode"), mode)) &&
- mode.EqualsASCII(aMode);
-}
-
nsresult nsUnixSystemProxySettings::GetPACURI(nsACString& aResult) {
if (mProxySettings) {
nsCString proxyMode;
@@ -92,14 +75,8 @@ nsresult nsUnixSystemProxySettings::GetP
}
/* The org.gnome.system.proxy schema has been found, but auto mode is not
* set. Don't try the GConf and return empty string. */
- aResult.Truncate();
- return NS_OK;
}
- if (mGConf && IsProxyMode("auto")) {
- return mGConf->GetString(NS_LITERAL_CSTRING("/system/proxy/autoconfig_url"),
- aResult);
- }
// Return an empty string when auto mode is not set.
aResult.Truncate();
return NS_OK;
@@ -217,30 +194,6 @@ static nsresult GetProxyFromEnvironment(
return NS_OK;
}
-nsresult nsUnixSystemProxySettings::SetProxyResultFromGConf(
- const char* aKeyBase, const char* aType, nsACString& aResult) {
- nsAutoCString hostKey;
- hostKey.AppendASCII(aKeyBase);
- hostKey.AppendLiteral("host");
- nsAutoCString host;
- nsresult rv = mGConf->GetString(hostKey, host);
- NS_ENSURE_SUCCESS(rv, rv);
- if (host.IsEmpty()) return NS_ERROR_FAILURE;
-
- nsAutoCString portKey;
- portKey.AppendASCII(aKeyBase);
- portKey.AppendLiteral("port");
- int32_t port;
- rv = mGConf->GetInt(portKey, &port);
- NS_ENSURE_SUCCESS(rv, rv);
-
- /* When port is 0, proxy is not considered as enabled even if host is set. */
- if (port == 0) return NS_ERROR_FAILURE;
-
- SetProxyResult(aType, host, port, aResult);
- return NS_OK;
-}
-
nsresult nsUnixSystemProxySettings::SetProxyResultFromGSettings(
const char* aKeyBase, const char* aType, nsACString& aResult) {
nsDependentCString key(aKeyBase);
@@ -366,63 +319,6 @@ static bool HostIgnoredByProxy(const nsA
return memcmp(&ignoreAddr, &hostAddr, sizeof(PRIPv6Addr)) == 0;
}
-nsresult nsUnixSystemProxySettings::GetProxyFromGConf(const nsACString& aScheme,
- const nsACString& aHost,
- int32_t aPort,
- nsACString& aResult) {
- bool masterProxySwitch = false;
- mGConf->GetBool(NS_LITERAL_CSTRING("/system/http_proxy/use_http_proxy"),
- &masterProxySwitch);
- // if no proxy is set in GConf return NS_ERROR_FAILURE
- if (!(IsProxyMode("manual") || masterProxySwitch)) {
- return NS_ERROR_FAILURE;
- }
-
- nsCOMPtr<nsIArray> ignoreList;
- if (NS_SUCCEEDED(mGConf->GetStringList(
- NS_LITERAL_CSTRING("/system/http_proxy/ignore_hosts"),
- getter_AddRefs(ignoreList))) &&
- ignoreList) {
- uint32_t len = 0;
- ignoreList->GetLength(&len);
- for (uint32_t i = 0; i < len; ++i) {
- nsCOMPtr<nsISupportsString> str = do_QueryElementAt(ignoreList, i);
- if (str) {
- nsAutoString s;
- if (NS_SUCCEEDED(str->GetData(s)) && !s.IsEmpty()) {
- if (HostIgnoredByProxy(NS_ConvertUTF16toUTF8(s), aHost)) {
- aResult.AppendLiteral("DIRECT");
- return NS_OK;
- }
- }
- }
- }
- }
-
- bool useHttpProxyForAll = false;
- // This setting sometimes doesn't exist, don't bail on failure
- mGConf->GetBool(NS_LITERAL_CSTRING("/system/http_proxy/use_same_proxy"),
- &useHttpProxyForAll);
-
- nsresult rv;
- if (!useHttpProxyForAll) {
- rv = SetProxyResultFromGConf("/system/proxy/socks_", "SOCKS", aResult);
- if (NS_SUCCEEDED(rv)) return rv;
- }
-
- if (aScheme.LowerCaseEqualsLiteral("http") || useHttpProxyForAll) {
- rv = SetProxyResultFromGConf("/system/http_proxy/", "PROXY", aResult);
- } else if (aScheme.LowerCaseEqualsLiteral("https")) {
- rv = SetProxyResultFromGConf("/system/proxy/secure_", "PROXY", aResult);
- } else if (aScheme.LowerCaseEqualsLiteral("ftp")) {
- rv = SetProxyResultFromGConf("/system/proxy/ftp_", "PROXY", aResult);
- } else {
- rv = NS_ERROR_FAILURE;
- }
-
- return rv;
-}
-
nsresult nsUnixSystemProxySettings::GetProxyFromGSettings(
const nsACString& aScheme, const nsACString& aHost, int32_t aPort,
nsACString& aResult) {
@@ -494,7 +390,6 @@ nsresult nsUnixSystemProxySettings::GetP
nsresult rv = GetProxyFromGSettings(aScheme, aHost, aPort, aResult);
if (NS_SUCCEEDED(rv)) return rv;
}
- if (mGConf) return GetProxyFromGConf(aScheme, aHost, aPort, aResult);
return GetProxyFromEnvironment(aScheme, aHost, aPort, aResult);
}