Files
IronFox/patches/configure-doh.patch
celenity 63a99045b4 WIP: v141.0
Signed-off-by: celenity <celenity@celenity.dev>
2025-07-22 08:21:43 -04:00

200 lines
8.2 KiB
Diff

diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/doh/DohSettingsProvider.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/doh/DohSettingsProvider.kt
index 028be832d6..47175dcf47 100644
--- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/doh/DohSettingsProvider.kt
+++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/doh/DohSettingsProvider.kt
@@ -37,17 +37,77 @@ internal class DefaultDohSettingsProvider(
private val cloudflare = Provider.BuiltIn(
url = cloudflareUri,
- name = "Cloudflare",
- default = dohDefaultProviderUrl.isBlank() || dohDefaultProviderUrl == cloudflareUri,
+ name = "Cloudflare 🇺🇸",
+ default = dohDefaultProviderUrl == cloudflareUri,
)
private val nextDns = Provider.BuiltIn(
url = nextDnsUri,
- name = "NextDNS",
+ name = "NextDNS 🇺🇸",
default = dohDefaultProviderUrl == nextDnsUri,
)
+ private val quad9 = Provider.BuiltIn(
+ url = quad9Uri,
+ name = "Quad9 🇨🇭",
+ default = dohDefaultProviderUrl.isNullOrBlank() || dohDefaultProviderUrl == quad9Uri,
+ )
+ private val adGuardStandard = Provider.BuiltIn(
+ url = adGuardStandardUri,
+ name = "AdGuard 🇨🇾",
+ default = dohDefaultProviderUrl == adGuardStandardUri,
+ )
+ private val adGuardUnfiltered = Provider.BuiltIn(
+ url = adGuardUnfilteredUri,
+ name = "AdGuard (Unfiltered) 🇨🇾",
+ default = dohDefaultProviderUrl == adGuardUnfilteredUri,
+ )
+ private val cloudflareMalware = Provider.BuiltIn(
+ url = cloudflareMalwareUri,
+ name = "Cloudflare (Malware Protection) 🇺🇸",
+ default = dohDefaultProviderUrl == cloudflareMalwareUri,
+ )
+ private val dns0Standard = Provider.BuiltIn(
+ url = dns0StandardUri,
+ name = "DNS0 🇫🇷",
+ default = dohDefaultProviderUrl == dns0StandardUri,
+ )
+ private val dns0Zero = Provider.BuiltIn(
+ url = dns0ZeroUri,
+ name = "DNS0 (ZERO) 🇫🇷",
+ default = dohDefaultProviderUrl == dns0ZeroUri,
+ )
+ private val dns4EuAdBlocking = Provider.BuiltIn(
+ url = dns4EuAdBlockingUri,
+ name = "DNS4EU (Ad Blocking) 🇨🇿",
+ default = dohDefaultProviderUrl == dns4EuAdBlockingUri,
+ )
+ private val dns4EuProtective = Provider.BuiltIn(
+ url = dns4EuProtectiveUri,
+ name = "DNS4EU (Protective) 🇨🇿",
+ default = dohDefaultProviderUrl == dns4EuProtectiveUri,
+ )
+ private val dns4EuUnfiltered = Provider.BuiltIn(
+ url = dns4EuUnfilteredUri,
+ name = "DNS4EU (Unfiltered) 🇨🇿",
+ default = dohDefaultProviderUrl == dns4EuUnfilteredUri,
+ )
+ private val mullvadBase = Provider.BuiltIn(
+ url = mullvadBaseUri,
+ name = "Mullvad (Base) 🇸🇪",
+ default = dohDefaultProviderUrl == mullvadBaseUri,
+ )
+ private val mullvadUnfiltered = Provider.BuiltIn(
+ url = mullvadUnfilteredUri,
+ name = "Mullvad (Unfiltered) 🇸🇪",
+ default = dohDefaultProviderUrl == mullvadUnfilteredUri,
+ )
+ private val wikimedia = Provider.BuiltIn(
+ url = wikimediaUri,
+ name = "Wikimedia 🇺🇸",
+ default = dohDefaultProviderUrl == wikimediaUri,
+ )
private val providerUrl = settings.dohProviderUrl
private val custom = Provider.Custom(
- url = if (providerUrl != cloudflareUri && providerUrl != nextDnsUri) {
+ url = if (providerUrl != cloudflareUri && providerUrl != nextDnsUri && providerUrl != quad9Uri && providerUrl != adGuardStandardUri && providerUrl != adGuardUnfilteredUri && providerUrl != cloudflareMalwareUri && providerUrl != dns0StandardUri && providerUrl != dns0ZeroUri && providerUrl != dns4EuAdBlockingUri && providerUrl != dns4EuProtectiveUri && providerUrl != dns4EuUnfilteredUri && providerUrl != mullvadBaseUri && providerUrl != mullvadUnfilteredUri && providerUrl != wikimediaUri) {
providerUrl
} else {
""
@@ -55,8 +115,20 @@ internal class DefaultDohSettingsProvider(
)
override fun getDefaultProviders(): List<Provider> = listOf(
+ quad9,
+ adGuardStandard,
+ adGuardUnfiltered,
cloudflare,
+ cloudflareMalware,
+ dns0Standard,
+ dns0Zero,
+ dns4EuAdBlocking,
+ dns4EuProtective,
+ dns4EuUnfiltered,
+ mullvadBase,
+ mullvadUnfiltered,
nextDns,
+ wikimedia,
custom,
)
@@ -79,6 +151,18 @@ internal class DefaultDohSettingsProvider(
when (settings.dohProviderUrl) {
cloudflareUri -> cloudflare
nextDnsUri -> nextDns
+ quad9Uri -> quad9
+ adGuardStandardUri -> adGuardStandard
+ adGuardUnfilteredUri -> adGuardUnfiltered
+ cloudflareMalwareUri -> cloudflareMalware
+ dns0StandardUri -> dns0Standard
+ dns0ZeroUri -> dns0Zero
+ dns4EuAdBlockingUri -> dns4EuAdBlocking
+ dns4EuProtectiveUri -> dns4EuProtective
+ dns4EuUnfilteredUri -> dns4EuUnfiltered
+ mullvadBaseUri -> mullvadBase
+ mullvadUnfilteredUri -> mullvadUnfiltered
+ wikimediaUri -> wikimedia
"" -> getDefaultProviders().first()
else -> custom
}
@@ -122,5 +206,41 @@ internal class DefaultDohSettingsProvider(
@VisibleForTesting
val nextDnsUri = "https://firefox.dns.nextdns.io/"
+
+ @VisibleForTesting
+ val quad9Uri = "https://dns.quad9.net/dns-query"
+
+ @VisibleForTesting
+ val adGuardStandardUri = "https://dns.adguard-dns.com/dns-query"
+
+ @VisibleForTesting
+ val adGuardUnfilteredUri = "https://unfiltered.adguard-dns.com/dns-query"
+
+ @VisibleForTesting
+ val cloudflareMalwareUri = "https://security.cloudflare-dns.com/dns-query"
+
+ @VisibleForTesting
+ val dns0StandardUri = "https://dns0.eu"
+
+ @VisibleForTesting
+ val dns0ZeroUri = "https://zero.dns0.eu"
+
+ @VisibleForTesting
+ val dns4EuAdBlockingUri = "https://noads.joindns4.eu/dns-query"
+
+ @VisibleForTesting
+ val dns4EuProtectiveUri = "https://protective.joindns4.eu/dns-query"
+
+ @VisibleForTesting
+ val dns4EuUnfilteredUri = "https://unfiltered.joindns4.eu/dns-query"
+
+ @VisibleForTesting
+ val mullvadBaseUri = "https://base.dns.mullvad.net/dns-query"
+
+ @VisibleForTesting
+ val mullvadUnfilteredUri = "https://dns.mullvad.net/dns-query"
+
+ @VisibleForTesting
+ val wikimediaUri = "https://wikimedia-dns.org/dns-query"
}
}
diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt
index 8913d9f230..dd88a35f1d 100644
--- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt
+++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt
@@ -2350,7 +2350,7 @@ class Settings(private val appContext: Context) : PreferencesHolder {
*/
val showDohEntryPoint by lazyFeatureFlagPreference(
key = appContext.getPreferenceKey(R.string.pref_key_doh_settings_enabled),
- default = { FxNimbus.features.doh.value().showUi },
+ default = { true },
featureFlag = true,
)
@@ -2363,7 +2363,7 @@ class Settings(private val appContext: Context) : PreferencesHolder {
*/
private var trrMode by intPreference(
key = appContext.getPreferenceKey(R.string.pref_key_doh_settings_mode),
- default = DOH_SETTINGS_DEFAULT,
+ default = DOH_SETTINGS_MAX,
)
/**
@@ -2381,7 +2381,7 @@ class Settings(private val appContext: Context) : PreferencesHolder {
*/
val dohDefaultProviderUrl by stringPreference(
key = appContext.getPreferenceKey(R.string.pref_key_doh_default_provider_uri),
- default = CLOUDFLARE_URI,
+ default = "https://dns.quad9.net/dns-query",
)
/**