diff -up firefox-67.0/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp.mozilla-1540145 firefox-67.0/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp --- firefox-67.0/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp.mozilla-1540145 2019-05-14 01:08:35.000000000 +0200 +++ firefox-67.0/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp 2019-05-15 15:20:13.365502186 +0200 @@ -34,16 +34,10 @@ class nsUnixSystemProxySettings final : private: ~nsUnixSystemProxySettings() = default; - nsCOMPtr mGConf; - nsCOMPtr mGSettings; + nsCOMPtr mGSettings; nsCOMPtr mProxySettings; nsInterfaceHashtable 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); @@ -68,16 +62,6 @@ void nsUnixSystemProxySettings::Init() { NS_LITERAL_CSTRING("org.gnome.system.proxy"), getter_AddRefs(mProxySettings)); } - if (!mProxySettings) { - mGConf = do_GetService(NS_GCONFSERVICE_CONTRACTID); - } -} - -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) { @@ -92,14 +76,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 +195,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 +320,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 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 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 +391,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); }