mirror of
https://github.com/ironfox-oss/IronFox.git
synced 2026-01-26 23:09:16 -05:00
200 lines
8.2 KiB
Diff
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",
|
|
)
|
|
|
|
/**
|