diff --git a/patches/block-autoplay-by-default.patch b/patches/block-autoplay-by-default.patch index e0436f93..bf485eaf 100644 --- a/patches/block-autoplay-by-default.patch +++ b/patches/block-autoplay-by-default.patch @@ -1,8 +1,19 @@ +From 2a83ed4b1fca3ecee0ffcd66754b2b17d91b768c Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 09:46:51 +0530 +Subject: [PATCH] fix(patches): update 'block-autoplay-by-default.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../app/src/main/java/org/mozilla/fenix/utils/Settings.kt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + 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 b800c22431..09b5d24039 100644 +index 8e271198b0..3ee3fc7598 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 -@@ -1216,7 +1216,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1299,7 +1299,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { * either [AUTOPLAY_ALLOW_ALL] or [AUTOPLAY_BLOCK_ALL]. Because of this, we are forced to save * the user selected setting as well. */ @@ -11,7 +22,7 @@ index b800c22431..09b5d24039 100644 private fun getSitePermissionsPhoneFeatureAutoplayAction( feature: PhoneFeature, -@@ -1245,7 +1245,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1328,7 +1328,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { ), autoplayInaudible = getSitePermissionsPhoneFeatureAutoplayAction( feature = PhoneFeature.AUTOPLAY_INAUDIBLE, @@ -20,3 +31,6 @@ index b800c22431..09b5d24039 100644 ), persistentStorage = getSitePermissionsPhoneFeatureAction(PhoneFeature.PERSISTENT_STORAGE), crossOriginStorageAccess = getSitePermissionsPhoneFeatureAction(PhoneFeature.CROSS_ORIGIN_STORAGE_ACCESS), +-- +2.49.0 + diff --git a/patches/block-cookie-banners.patch b/patches/block-cookie-banners.patch index 94fa1360..ca67318f 100644 --- a/patches/block-cookie-banners.patch +++ b/patches/block-cookie-banners.patch @@ -1,8 +1,20 @@ +From bff3d5176d9cddfc84f97b7d060f6688ce0ee317 Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 09:47:29 +0530 +Subject: [PATCH] fix(patches): update 'block-cookie-banners.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../src/main/java/org/mozilla/fenix/utils/Settings.kt | 11 ++++------- + .../fenix/app/src/main/res/xml/preferences.xml | 2 +- + 2 files changed, 5 insertions(+), 8 deletions(-) + 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 b800c22431..ee55f25475 100644 +index 8e271198b0..13c10e3251 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 -@@ -682,20 +682,17 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -751,20 +751,17 @@ class Settings(private val appContext: Context) : PreferencesHolder { false, ) @@ -40,3 +52,6 @@ index 3b85a2a548..cad50ee74a 100644 android:title="@string/preferences_cookie_banner_reduction_private_mode" /> +Date: Mon, 28 Apr 2025 10:30:02 +0530 +Subject: [PATCH] fix(patches): update 'branding.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + build/moz.configure/init.configure | 4 ++-- + .../org/mozilla/fenix/settings/SupportUtils.kt | 2 +- + mobile/android/moz.configure | 2 +- + toolkit/moz.configure | 17 +++++++++++++++++ + 4 files changed, 21 insertions(+), 4 deletions(-) + diff --git a/build/moz.configure/init.configure b/build/moz.configure/init.configure index 9bf4bb29a4..958bed6d9b 100644 --- a/build/moz.configure/init.configure @@ -14,7 +28,7 @@ index 9bf4bb29a4..958bed6d9b 100644 set_config( diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt -index 53750cda56..6a4c16c8f0 100644 +index 598a24ce36..8e072075a5 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt @@ -37,7 +37,7 @@ object SupportUtils { @@ -27,10 +41,10 @@ index 53750cda56..6a4c16c8f0 100644 // This is locale-less on purpose so that the content negotiation happens on the AMO side because the current diff --git a/mobile/android/moz.configure b/mobile/android/moz.configure -index dad9a16c7a..386de41582 100644 +index c900501ee6..8b3e4a434c 100644 --- a/mobile/android/moz.configure +++ b/mobile/android/moz.configure -@@ -82,7 +82,7 @@ imply_option("MOZ_SERVICES_HEALTHREPORT", True) +@@ -108,7 +108,7 @@ imply_option("MOZ_SERVICES_HEALTHREPORT", True) imply_option("MOZ_GECKOVIEW_HISTORY", True) imply_option("MOZ_APP_UA_NAME", "Firefox") @@ -39,17 +53,34 @@ index dad9a16c7a..386de41582 100644 imply_option("MOZ_APP_ID", "{aa3c5121-dab2-40e2-81ca-7ea25febc110}") imply_option("BROWSER_CHROME_URL", "chrome://geckoview/content/geckoview.xhtml") - diff --git a/toolkit/moz.configure b/toolkit/moz.configure -index e5e517635d..95e0ccd85c 100644 +index 09b3065c21..a799d0ca86 100644 --- a/toolkit/moz.configure +++ b/toolkit/moz.configure -@@ -3262,7 +3262,7 @@ def android_package_name(value, moz_app_name): - return value[0] - if moz_app_name == "fennec": - return "org.mozilla.fennec_aurora" -- return "org.mozilla.%s" % moz_app_name +@@ -3326,6 +3326,23 @@ def moz_app_remotingname(value, moz_app_name, update_channel): + + set_config("MOZ_APP_REMOTINGNAME", moz_app_remotingname) + ++option( ++ env="ANDROID_PACKAGE_NAME", ++ nargs=1, ++ help="Name of the Android package (default org.mozilla.$MOZ_APP_NAME)", ++) ++ ++ ++@depends("ANDROID_PACKAGE_NAME", moz_app_name) ++def android_package_name(value, moz_app_name): ++ if value: ++ return value[0] ++ if moz_app_name == "fennec": ++ return "org.mozilla.fennec_aurora" + return "org.ironfoxoss.%s" % moz_app_name ++ ++ ++set_config("ANDROID_PACKAGE_NAME", android_package_name) - - set_config("ANDROID_PACKAGE_NAME", android_package_name) + # Miscellaneous options + # ============================================================== +-- +2.49.0 + diff --git a/patches/certificate-pinning.patch b/patches/certificate-pinning.patch index d646bb7a..02b7e8a3 100644 --- a/patches/certificate-pinning.patch +++ b/patches/certificate-pinning.patch @@ -1,5 +1,17 @@ +From 32f090fc7af83357424a4d3f6c0554c337cda0af Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 10:24:36 +0530 +Subject: [PATCH] fix(patches): update 'certificate-pinning.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + security/manager/ssl/StaticHPKPins.h | 1872 +++++++++++++++++- + security/manager/tools/PreloadedHPKPins.json | 16 +- + 2 files changed, 1863 insertions(+), 25 deletions(-) + diff --git a/security/manager/ssl/StaticHPKPins.h b/security/manager/ssl/StaticHPKPins.h -index 1bc478c2b3..081973f812 100644 +index 644f20e9d3..dc10e0bf94 100644 --- a/security/manager/ssl/StaticHPKPins.h +++ b/security/manager/ssl/StaticHPKPins.h @@ -7,6 +7,10 @@ @@ -2209,3 +2221,6 @@ index 94989ed214..4c972daa1d 100644 // Test Pilot // superseded by catchall for firefox.com, but leaving for tracking { "name": "testpilot.firefox.com", "include_subdomains": false, +-- +2.49.0 + diff --git a/patches/configure-doh.patch b/patches/configure-doh.patch index fdf6e37c..8153527e 100644 --- a/patches/configure-doh.patch +++ b/patches/configure-doh.patch @@ -1,669 +1,23 @@ -diff --git a/mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngine.kt b/mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngine.kt -index 84ad70e3a4..fb09b88c62 100644 ---- a/mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngine.kt -+++ b/mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngine.kt -@@ -1491,6 +1491,10 @@ class GeckoEngine( - this.loginAutofillEnabled = it.loginAutofillEnabled - this.enterpriseRootsEnabled = it.enterpriseRootsEnabled - this.httpsOnlyMode = it.httpsOnlyMode -+ this.dohSettingsMode = it.dohSettingsMode -+ this.dohProviderUrl = it.dohProviderUrl -+ this.dohDefaultProviderUrl = it.dohDefaultProviderUrl -+ this.dohExceptionsList = it.dohExceptionsList - this.cookieBannerHandlingMode = it.cookieBannerHandlingMode - this.cookieBannerHandlingModePrivateBrowsing = it.cookieBannerHandlingModePrivateBrowsing - this.cookieBannerHandlingDetectOnlyMode = it.cookieBannerHandlingDetectOnlyMode -diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt -index 3ab8ea1acd..79ec251ed8 100644 ---- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt -+++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt -@@ -163,6 +163,10 @@ class Core( - R.color.fx_mobile_layer_color_1, - ), - httpsOnlyMode = context.settings().getHttpsOnlyMode(), -+ dohSettingsMode = context.settings().getDohSettingsMode(), -+ dohProviderUrl = context.settings().dohProviderUrl, -+ dohDefaultProviderUrl = context.settings().dohDefaultProviderUrl, -+ dohExceptionsList = context.settings().dohExceptionsList.toList(), - globalPrivacyControlEnabled = context.settings().shouldEnableGlobalPrivacyControl, - fdlibmMathEnabled = FxNimbus.features.fingerprintingProtection.value().fdlibmMath, - cookieBannerHandlingMode = context.settings().getCookieBannerHandling(), -diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt ---- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt -+++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt -@@ -149,7 +149,7 @@ - } - - requirePreference(R.string.pref_key_doh_settings_enabled).apply { -- isVisible = Config.channel.isDebug -+ isVisible = true - isChecked = context.settings().showDohEntryPoint - onPreferenceChangeListener = SharedPreferenceUpdater() - } -diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/doh/DohSettingsFragment.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/doh/DohSettingsFragment.kt -index b69e65f01b..7d4e77ee3e 100644 ---- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/doh/DohSettingsFragment.kt -+++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/doh/DohSettingsFragment.kt -@@ -1,9 +1,9 @@ - /* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -+ - package org.mozilla.fenix.settings.doh - --import DohSettingsMiddleware - import android.os.Bundle - import android.view.LayoutInflater - import android.view.View -@@ -17,6 +17,7 @@ import org.mozilla.fenix.components.StoreProvider - import org.mozilla.fenix.databinding.FragmentDohSettingsBinding - import org.mozilla.fenix.ext.components - import org.mozilla.fenix.ext.hideToolbar -+import org.mozilla.fenix.ext.settings - import org.mozilla.fenix.theme.FirefoxTheme - - /** -@@ -48,7 +49,8 @@ internal class DohSettingsFragment : Fragment() { - navController = this@DohSettingsFragment.findNavController(), - composeNavController = navController, - settingsProvider = DefaultDohSettingsProvider( -- requireContext().components.core.engine, -+ engine = requireContext().components.core.engine, -+ settings = requireContext().settings(), - ), - homeActivity = (requireActivity() as HomeActivity), - ) -@@ -69,7 +71,8 @@ internal class DohSettingsFragment : Fragment() { - this.navController = this@DohSettingsFragment.findNavController() - this.composeNavController = navController - this.settingsProvider = DefaultDohSettingsProvider( -- requireContext().components.core.engine, -+ engine = requireContext().components.core.engine, -+ settings = requireContext().settings(), - ) - this.homeActivity = (requireActivity() as HomeActivity) - } -diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/doh/DohSettingsMiddleware.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/doh/DohSettingsMiddleware.kt -index d7aa305e66..1355fbde13 100644 ---- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/doh/DohSettingsMiddleware.kt -+++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/doh/DohSettingsMiddleware.kt -@@ -2,22 +2,13 @@ - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -+package org.mozilla.fenix.settings.doh -+ - import androidx.navigation.NavController - import mozilla.components.lib.state.Middleware - import mozilla.components.lib.state.MiddlewareContext - import org.mozilla.fenix.BrowserDirection - import org.mozilla.fenix.HomeActivity --import org.mozilla.fenix.settings.doh.BackClicked --import org.mozilla.fenix.settings.doh.DohSettingsAction --import org.mozilla.fenix.settings.doh.DohSettingsDestinations --import org.mozilla.fenix.settings.doh.DohSettingsProvider --import org.mozilla.fenix.settings.doh.DohSettingsRootAction --import org.mozilla.fenix.settings.doh.DohSettingsState --import org.mozilla.fenix.settings.doh.DohUrlValidator --import org.mozilla.fenix.settings.doh.ExceptionsAction --import org.mozilla.fenix.settings.doh.Init --import org.mozilla.fenix.settings.doh.LearnMoreClicked --import org.mozilla.fenix.settings.doh.UrlValidationException - - internal class DohSettingsMiddleware( - private val getNavController: () -> NavController, -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 cd46b47680..e3defb2052 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 -@@ -6,6 +6,7 @@ package org.mozilla.fenix.settings.doh - - import androidx.annotation.VisibleForTesting - import mozilla.components.concept.engine.Engine -+import org.mozilla.fenix.utils.Settings - - internal interface DohSettingsProvider { - fun getProtectionLevels(): List -@@ -20,6 +21,7 @@ internal interface DohSettingsProvider { - - internal class DefaultDohSettingsProvider( - val engine: Engine, -+ val settings: Settings, - ) : DohSettingsProvider { - override fun getProtectionLevels(): List { - return listOf( -@@ -31,21 +33,96 @@ internal class DefaultDohSettingsProvider( - } - - // Bug 1946867 - Load DoH Provider List from Gecko instead of hardcoding -- private val dohDefaultProviderUrl = engine.settings.dohDefaultProviderUrl -+ private val dohDefaultProviderUrl = settings.dohDefaultProviderUrl - -- private val cloudflare = Provider.BuiltIn( -- url = cloudflareUri, -- name = "Cloudflare", -- default = dohDefaultProviderUrl.isNullOrBlank() || dohDefaultProviderUrl == cloudflareUri, -+ private val quad9 = Provider.BuiltIn( -+ url = quad9Uri, -+ name = "Quad9", -+ default = dohDefaultProviderUrl.isNullOrBlank() || dohDefaultProviderUrl == quad9Uri, -+ ) -+ private val dns0Zero = Provider.BuiltIn( -+ url = dns0ZeroUri, -+ name = "DNS0 (ZERO)", -+ default = dohDefaultProviderUrl == dns0ZeroUri, -+ ) -+ private val dns0Standard = Provider.BuiltIn( -+ url = dns0StandardUri, -+ name = "DNS0", -+ default = dohDefaultProviderUrl == dns0StandardUri, -+ ) -+ private val mullvadBase = Provider.BuiltIn( -+ url = mullvadBaseUri, -+ name = "Mullvad - Base", -+ default = dohDefaultProviderUrl == mullvadBaseUri, -+ ) -+ private val adGuardStandard = Provider.BuiltIn( -+ url = adGuardStandardUri, -+ name = "AdGuard (Public)", -+ default = dohDefaultProviderUrl == adGuardStandardUri, -+ ) -+ private val mullvadUnfiltered = Provider.BuiltIn( -+ url = mullvadUnfilteredUri, -+ name = "Mullvad - Unfiltered", -+ default = dohDefaultProviderUrl == mullvadUnfilteredUri, -+ ) -+ private val wikimedia = Provider.BuiltIn( -+ url = wikimediaUri, -+ name = "Wikimedia - Unfiltered", -+ default = dohDefaultProviderUrl == wikimediaUri, - ) - private val nextDns = Provider.BuiltIn( - url = nextDnsUri, -- name = "NextDNS", -+ name = "NextDNS (Public) - Unfiltered", - default = dohDefaultProviderUrl == nextDnsUri, - ) -- private val providerUrl = engine.settings.dohProviderUrl -+ private val adGuardUnfiltered = Provider.BuiltIn( -+ url = adGuardUnfilteredUri, -+ name = "AdGuard (Public) - Unfiltered", -+ default = dohDefaultProviderUrl == adGuardUnfilteredUri, -+ ) -+ private val dns0Kids = Provider.BuiltIn( -+ url = dns0KidsUri, -+ name = "DNS0 - Kids", -+ default = dohDefaultProviderUrl == dns0KidsUri, -+ ) -+ private val mullvadFamily = Provider.BuiltIn( -+ url = mullvadFamilyUri, -+ name = "Mullvad - Family", -+ default = dohDefaultProviderUrl == mullvadFamilyUri, -+ ) -+ private val adGuardFamily = Provider.BuiltIn( -+ url = adGuardFamilyUri, -+ name = "AdGuard (Public) - Family", -+ default = dohDefaultProviderUrl == adGuardFamilyUri, -+ ) -+ private val mullvadExtended = Provider.BuiltIn( -+ url = mullvadExtendedUri, -+ name = "Mullvad - Extended", -+ default = dohDefaultProviderUrl == mullvadExtendedUri, -+ ) -+ private val mullvadAll = Provider.BuiltIn( -+ url = mullvadAllUri, -+ name = "Mullvad - All", -+ default = dohDefaultProviderUrl == mullvadAllUri, -+ ) -+ private val cloudflareMalware = Provider.BuiltIn( -+ url = cloudflareMalwareUri, -+ name = "Cloudflare - Malware Protection", -+ default = dohDefaultProviderUrl == cloudflareMalwareUri, -+ ) -+ private val cloudflareMozilla = Provider.BuiltIn( -+ url = cloudflareMozillaUri, -+ name = "Cloudflare - Unfiltered", -+ default = dohDefaultProviderUrl == cloudflareMozillaUri, -+ ) -+ private val cloudflareFamily = Provider.BuiltIn( -+ url = cloudflareFamilyUri, -+ name = "Cloudflare - Family", -+ default = dohDefaultProviderUrl == cloudflareFamilyUri, -+ ) -+ private val providerUrl = settings.dohProviderUrl - private val custom = Provider.Custom( -- url = if (providerUrl != cloudflareUri && providerUrl != nextDnsUri) { -+ url = if (providerUrl != quad9Uri && providerUrl != dns0ZeroUri && providerUrl != dns0StandardUri && providerUrl != mullvadBaseUri && providerUrl != adGuardStandardUri && providerUrl != mullvadUnfilteredUri && providerUrl != wikimediaUri && providerUrl != nextDnsUri && providerUrl != adGuardUnfilteredUri && providerUrl != dns0KidsUri && providerUrl != mullvadFamilyUri && providerUrl != adGuardFamilyUri && providerUrl != mullvadExtendedUri && providerUrl != mullvadAllUri && providerUrl != cloudflareMalwareUri && providerUrl != cloudflareMozillaUri && providerUrl != cloudflareFamilyUri) { - providerUrl - } else { - "" -@@ -53,13 +130,28 @@ internal class DefaultDohSettingsProvider( - ) - - override fun getDefaultProviders(): List = listOf( -- cloudflare, -+ quad9, -+ dns0Zero, -+ dns0Standard, -+ mullvadBase, -+ adGuardStandard, -+ mullvadUnfiltered, -+ wikimedia, - nextDns, -+ adGuardUnfiltered, -+ dns0Kids, -+ mullvadFamily, -+ adGuardFamily, -+ mullvadExtended, -+ mullvadAll, -+ cloudflareMalware, -+ cloudflareMozilla, -+ cloudflareFamily, - custom, - ) - - override fun getSelectedProtectionLevel(): ProtectionLevel { -- return when (engine.settings.dohSettingsMode) { -+ return when (settings.getDohSettingsMode()) { - Engine.DohSettingsMode.DEFAULT -> ProtectionLevel.Default - Engine.DohSettingsMode.INCREASED -> ProtectionLevel.Increased - Engine.DohSettingsMode.MAX -> ProtectionLevel.Max -@@ -68,15 +160,30 @@ internal class DefaultDohSettingsProvider( - } - - override fun getSelectedProvider(): Provider? { -- return when (engine.settings.dohSettingsMode) { -+ return when (settings.getDohSettingsMode()) { - Engine.DohSettingsMode.OFF, Engine.DohSettingsMode.DEFAULT -> { - null - } - - else -> { -- when (engine.settings.dohProviderUrl) { -- cloudflareUri -> cloudflare -+ when (settings.dohProviderUrl) { -+ quad9Uri -> quad9 -+ dns0ZeroUri -> dns0Zero -+ dns0StandardUri -> dns0Standard -+ mullvadBaseUri -> mullvadBase -+ adGuardStandardUri -> adGuardStandard -+ mullvadUnfilteredUri -> mullvadUnfiltered -+ wikimediaUri -> wikimedia - nextDnsUri -> nextDns -+ adGuardUnfilteredUri -> adGuardUnfiltered -+ dns0KidsUri -> dns0Kids -+ mullvadFamilyUri -> mullvadFamily -+ adGuardFamilyUri -> adGuardFamily -+ mullvadExtendedUri -> mullvadExtended -+ mullvadAllUri -> mullvadAll -+ cloudflareMalwareUri -> cloudflareMalware -+ cloudflareMozillaUri -> cloudflareMozilla -+ cloudflareFamilyUri -> cloudflareFamily - "" -> getDefaultProviders().first() - else -> custom - } -@@ -84,42 +191,87 @@ internal class DefaultDohSettingsProvider( - } - } - -+ - override fun getExceptions(): List { -- return engine.settings.dohExceptionsList -+ return settings.dohExceptionsList.toList() - } - - override fun setProtectionLevel(protectionLevel: ProtectionLevel, provider: Provider?) { -- engine.settings.dohSettingsMode = when (protectionLevel) { -- is ProtectionLevel.Off -> Engine.DohSettingsMode.OFF -- is ProtectionLevel.Default -> Engine.DohSettingsMode.DEFAULT -- is ProtectionLevel.Increased -> { -- require(provider != null) { "Provider must not be null for Increased protection level" } -- engine.settings.dohProviderUrl = provider.url -- Engine.DohSettingsMode.INCREASED -- } -- -- is ProtectionLevel.Max -> { -- require(provider != null) { "Provider must not be null for Max protection level" } -- engine.settings.dohProviderUrl = provider.url -- Engine.DohSettingsMode.MAX -- } -+ if (protectionLevel is ProtectionLevel.Increased || protectionLevel is ProtectionLevel.Max) { -+ requireNotNull(provider) { "Provider must not be null for Increased/Max protection level" } -+ settings.dohProviderUrl = provider.url -+ engine.settings.dohProviderUrl = provider.url - } -+ -+ val newMode = protectionLevel.toDohSettingsMode() -+ // Update the app layer -+ settings.setDohSettingsMode(newMode) -+ engine.settings.dohSettingsMode = newMode - } - - override fun setCustomProvider(url: String) { -+ // Update the app layer -+ settings.dohProviderUrl = url - // validate the url, maybe throw some "known expectations" that we can handle in the middleware - engine.settings.dohProviderUrl = url - } - - override fun setExceptions(exceptions: List) { -+ // Update the app layer -+ settings.dohExceptionsList = exceptions.toSet() - engine.settings.dohExceptionsList = exceptions - } - - companion object { - @VisibleForTesting -- val cloudflareUri = "mozilla.cloudflare-dns.com" -+ val quad9Uri = "https://dns.quad9.net/dns-query" -+ -+ @VisibleForTesting -+ val dns0ZeroUri = "https://zero.dns0.eu" -+ -+ @VisibleForTesting -+ val dns0StandardUri = "https://dns0.eu" -+ -+ @VisibleForTesting -+ val mullvadBaseUri = "https://base.dns.mullvad.net/dns-query" -+ -+ @VisibleForTesting -+ val adGuardStandardUri = "https://dns.adguard-dns.com/dns-query" -+ -+ @VisibleForTesting -+ val mullvadUnfilteredUri = "https://dns.mullvad.net/dns-query" -+ -+ @VisibleForTesting -+ val wikimediaUri = "https://wikimedia-dns.org/dns-query" -+ -+ @VisibleForTesting -+ val nextDnsUri = "https://firefox.dns.nextdns.io/" -+ -+ @VisibleForTesting -+ val adGuardUnfilteredUri = "https://unfiltered.adguard-dns.com/dns-query" -+ -+ @VisibleForTesting -+ val dns0KidsUri = "https://kids.dns0.eu" -+ -+ @VisibleForTesting -+ val mullvadFamilyUri = "https://family.dns.mullvad.net/dns-query" -+ -+ @VisibleForTesting -+ val adGuardFamilyUri = "https://family.adguard-dns.com/dns-query" -+ -+ @VisibleForTesting -+ val mullvadExtendedUri = "https://extended.dns.mullvad.net/dns-query" -+ -+ @VisibleForTesting -+ val mullvadAllUri = "https://all.dns.mullvad.net/dns-query" -+ -+ @VisibleForTesting -+ val cloudflareMalwareUri = "https://security.cloudflare-dns.com/dns-query" -+ -+ @VisibleForTesting -+ val cloudflareMozillaUri = "https://mozilla.cloudflare-dns.com/dns-query" - - @VisibleForTesting -- val nextDnsUri = "firefox.dns.nextdns.io" -+ val cloudflareFamilyUri = "https://family.cloudflare-dns.com/dns-query" - } - } -diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/doh/DohSettingsReducer.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/doh/DohSettingsReducer.kt -index fcf0d2b934..23b28cf3c4 100644 ---- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/doh/DohSettingsReducer.kt -+++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/doh/DohSettingsReducer.kt -@@ -2,12 +2,7 @@ - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - --import org.mozilla.fenix.settings.doh.CustomProviderErrorState --import org.mozilla.fenix.settings.doh.DohSettingsAction --import org.mozilla.fenix.settings.doh.DohSettingsRootAction --import org.mozilla.fenix.settings.doh.DohSettingsState --import org.mozilla.fenix.settings.doh.ExceptionsAction --import org.mozilla.fenix.settings.doh.ProtectionLevel -+package org.mozilla.fenix.settings.doh - - internal fun dohSettingsReducer(state: DohSettingsState, action: DohSettingsAction) = - when (action) { -diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/doh/DohSettingsState.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/doh/DohSettingsState.kt -index ab63438398..b0799fe4d8 100644 ---- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/doh/DohSettingsState.kt -+++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/doh/DohSettingsState.kt -@@ -4,6 +4,7 @@ - - package org.mozilla.fenix.settings.doh - -+import mozilla.components.concept.engine.Engine - import mozilla.components.lib.state.State - - /** -@@ -33,10 +34,23 @@ internal data class DohSettingsState( - * Represents the protection level for DoH settings. - */ - internal sealed class ProtectionLevel { -- data object Default : ProtectionLevel() -- data object Increased : ProtectionLevel() -- data object Max : ProtectionLevel() -- data object Off : ProtectionLevel() -+ abstract fun toDohSettingsMode(): Engine.DohSettingsMode -+ -+ data object Default : ProtectionLevel() { -+ override fun toDohSettingsMode() = Engine.DohSettingsMode.DEFAULT -+ } -+ -+ data object Increased : ProtectionLevel() { -+ override fun toDohSettingsMode() = Engine.DohSettingsMode.INCREASED -+ } -+ -+ data object Max : ProtectionLevel() { -+ override fun toDohSettingsMode() = Engine.DohSettingsMode.MAX -+ } -+ -+ data object Off : ProtectionLevel() { -+ override fun toDohSettingsMode() = Engine.DohSettingsMode.OFF -+ } - } - - internal sealed class Provider { -diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/doh/DohSettingsStore.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/doh/DohSettingsStore.kt -index 0c01638868..84611f7366 100644 ---- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/doh/DohSettingsStore.kt -+++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/doh/DohSettingsStore.kt -@@ -5,7 +5,6 @@ - package org.mozilla.fenix.settings.doh - - import androidx.navigation.NavController --import dohSettingsReducer - import mozilla.components.lib.state.Middleware - import mozilla.components.lib.state.Reducer - import mozilla.components.lib.state.UiStore -diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/doh/DohUrlValidator.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/doh/DohUrlValidator.kt -index c9497e449a..f31e0423bc 100644 ---- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/doh/DohUrlValidator.kt -+++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/doh/DohUrlValidator.kt -@@ -28,7 +28,7 @@ object DohUrlValidator { - throw UrlValidationException.NonHttpsUrlException - } - return try { -- val uri = URI.create(url) -+ val uri = URI.create(url.trim()) - when { - uri.scheme != "https" -> throw UrlValidationException.NonHttpsUrlException - uri.host.isNullOrBlank() || !uri.isAbsolute -> throw UrlValidationException.InvalidUrlException -diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/doh/root/DohSettingsScreen.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/doh/root/DohSettingsScreen.kt -index c53fbcbc29..eb52fd245c 100644 ---- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/doh/root/DohSettingsScreen.kt -+++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/doh/root/DohSettingsScreen.kt -@@ -14,6 +14,8 @@ import androidx.compose.foundation.layout.fillMaxWidth - import androidx.compose.foundation.layout.height - import androidx.compose.foundation.layout.padding - import androidx.compose.foundation.layout.width -+import androidx.compose.foundation.rememberScrollState -+import androidx.compose.foundation.verticalScroll - import androidx.compose.material.AlertDialog - import androidx.compose.material.Icon - import androidx.compose.material.IconButton -@@ -89,6 +91,7 @@ internal fun DohSettingsScreen( - Column( - modifier = Modifier - .fillMaxSize() -+ .verticalScroll(rememberScrollState()) - .padding(paddingValues), - ) { - DohSummary( -@@ -587,8 +590,8 @@ private fun ExceptionsRow(onExceptionsClicked: () -> Unit) { - private fun DohScreenDefaultProviderPreview() { - FirefoxTheme { - val provider = Provider.BuiltIn( -- url = "mozilla.cloudflare-dns.com", -- name = "Cloudflare", -+ url = "https://dns.quad9.net/dns-query", -+ name = "Quad9", - default = true, - ) - DohSettingsScreen( -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 b800c22431..3fdd8f2d4a 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 -@@ -13,8 +13,10 @@ import android.os.Build - import android.view.accessibility.AccessibilityManager - import androidx.annotation.VisibleForTesting - import androidx.annotation.VisibleForTesting.Companion.PRIVATE -+import androidx.core.content.edit - import androidx.lifecycle.LifecycleOwner - import mozilla.components.browser.state.search.SearchEngine -+import mozilla.components.concept.engine.Engine - import mozilla.components.concept.engine.Engine.HttpsOnlyMode - import mozilla.components.concept.engine.EngineSession.CookieBannerHandlingMode - import mozilla.components.feature.sitepermissions.SitePermissionsRules -@@ -136,6 +138,31 @@ class Settings(private val appContext: Context) : PreferencesHolder { - ASK_TO_ALLOW_INT -> AutoplayAction.BLOCKED - else -> throw InvalidParameterException("$this is not a valid SitePermissionsRules.AutoplayAction") - } -+ -+ /** -+ * DoH setting is set to "Default", corresponds to TRR_MODE_OFF (0) from GeckoView -+ */ -+ private const val DOH_SETTINGS_DEFAULT = 0 -+ -+ /** -+ * DoH setting is set to "Increased", corresponds to TRR_MODE_FIRST (2) from GeckoView -+ */ -+ private const val DOH_SETTINGS_INCREASED = 2 -+ -+ /** -+ * DoH setting is set to "Max", corresponds to TRR_MODE_ONLY (3) from GeckoView -+ */ -+ private const val DOH_SETTINGS_MAX = 3 -+ -+ /** -+ * DoH is disabled, corresponds to TRR_MODE_DISABLED (5) from GeckoView -+ */ -+ private const val DOH_SETTINGS_OFF = 5 -+ -+ /** -+ * Bug 1946867 - Currently "hardcoded" to the DoH TRR URI of Quad9 -+ */ -+ private const val QUAD9_URI = "https://dns.quad9.net/dns-query" - } - - @VisibleForTesting -@@ -2306,6 +2333,69 @@ class Settings(private val appContext: Context) : PreferencesHolder { - */ - val showDohEntryPoint by booleanPreference( - key = appContext.getPreferenceKey(R.string.pref_key_doh_settings_enabled), -- default = false, -+ default = true, -+ ) -+ -+ /** -+ * Stores the current DoH mode as an integer preference. -+ * - 0: Default mode -+ * - 2: Increased protection -+ * - 3: Maximum protection -+ * - 5: DoH is disabled -+ */ -+ private var trrMode by intPreference( -+ key = appContext.getPreferenceKey(R.string.pref_key_doh_settings_mode), -+ default = DOH_SETTINGS_MAX, -+ ) -+ -+ /** -+ * Stores the URI of the custom DoH provider selected by the user. -+ * Defaults to an empty string if no provider is set. -+ */ -+ var dohProviderUrl by stringPreference( -+ key = appContext.getPreferenceKey(R.string.pref_key_doh_provider_uri), -+ default = "", -+ ) -+ -+ /** -+ * Stores the URI of the default DoH provider. -+ * Bug 1946867 - Currently "hardcoded" to "https://mozilla.cloudflare-dns.com/dns-query" -+ */ -+ val dohDefaultProviderUrl by stringPreference( -+ key = appContext.getPreferenceKey(R.string.pref_key_doh_default_provider_uri), -+ default = QUAD9_URI, -+ ) -+ -+ /** -+ * Stores a set of domains that are excluded from using DNS over HTTPS. -+ */ -+ var dohExceptionsList by stringSetPreference( -+ key = appContext.getPreferenceKey(R.string.pref_key_doh_exceptions_list_string), -+ default = emptySet(), - ) -+ -+ /** -+ * Retrieves the current DohSettingsMode based on trrMode -+ */ -+ fun getDohSettingsMode(): Engine.DohSettingsMode { -+ return when (trrMode) { -+ DOH_SETTINGS_DEFAULT -> Engine.DohSettingsMode.DEFAULT -+ DOH_SETTINGS_INCREASED -> Engine.DohSettingsMode.INCREASED -+ DOH_SETTINGS_MAX -> Engine.DohSettingsMode.MAX -+ DOH_SETTINGS_OFF -> Engine.DohSettingsMode.OFF -+ else -> Engine.DohSettingsMode.DEFAULT -+ } -+ } -+ -+ /** -+ * Updates trrMode by converting the given DohSettingsMode -+ */ -+ fun setDohSettingsMode(mode: Engine.DohSettingsMode) { -+ trrMode = when (mode) { -+ Engine.DohSettingsMode.DEFAULT -> DOH_SETTINGS_DEFAULT -+ Engine.DohSettingsMode.INCREASED -> DOH_SETTINGS_INCREASED -+ Engine.DohSettingsMode.MAX -> DOH_SETTINGS_MAX -+ Engine.DohSettingsMode.OFF -> DOH_SETTINGS_OFF -+ } -+ } - } -diff --git a/mobile/android/fenix/app/src/main/res/values/preference_keys.xml b/mobile/android/fenix/app/src/main/res/values/preference_keys.xml -index a1993c808f..bea6417843 100644 ---- a/mobile/android/fenix/app/src/main/res/values/preference_keys.xml -+++ b/mobile/android/fenix/app/src/main/res/values/preference_keys.xml -@@ -199,6 +199,10 @@ - - - pref_key_doh_settings -+ pref_key_doh_settings_mode -+ pref_key_doh_provider_uri -+ pref_key_doh_default_provider_uri -+ pref_key_doh_exceptions_list_string - - - pref_key_etp_learn_more -diff --git a/mobile/android/fenix/app/src/main/res/xml/preferences.xml b/mobile/android/fenix/app/src/main/res/xml/preferences.xml ---- a/mobile/android/fenix/app/src/main/res/xml/preferences.xml -+++ b/mobile/android/fenix/app/src/main/res/xml/preferences.xml -@@ -112,7 +112,7 @@ - - - +Date: Mon, 21 Apr 2025 19:43:02 +0000 +Subject: [PATCH] No bug - Tagging c3bba5162c988aa7e1791df8827c1a1575eddcc1 + with FIREFOX-ANDROID_138_0_BUILD1 a=release CLOSED TREE DONTBUILD + +Signed-off-by: Akash Yadav +--- + .hgtags | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/.hgtags b/.hgtags +index 1e8034fb87..8c47fd304b 100644 +--- a/.hgtags ++++ b/.hgtags +@@ -5841,3 +5841,4 @@ f16f5243929bbe24243335d1d222b6a70df67dfc FIREFOX_138_0b9_RELEASE + 3f855852fb812157d70c7ce1435adefea5849cfd FIREFOX_RELEASE_138_BASE + fea8eb584ece029cb22f10173a4bd4b4f5d62e33 FIREFOX_RELEASE_137_END + c3bba5162c988aa7e1791df8827c1a1575eddcc1 FIREFOX_138_0_BUILD1 ++c3bba5162c988aa7e1791df8827c1a1575eddcc1 FIREFOX-ANDROID_138_0_BUILD1 +-- +2.49.0 + diff --git a/patches/disable-accessibility-services-by-default.patch b/patches/disable-accessibility-services-by-default.patch index 1830eb05..4eb7310a 100644 --- a/patches/disable-accessibility-services-by-default.patch +++ b/patches/disable-accessibility-services-by-default.patch @@ -1,8 +1,28 @@ +From 4728d0def635131c5267b6dc099ab267ce29aa6b Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 10:32:16 +0530 +Subject: [PATCH] fix(patches): update + 'disable-accessibility-services-by-default.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../browser/engine/gecko/GeckoEngine.kt | 9 ++++++ + .../components/concept/engine/Settings.kt | 6 ++++ + .../java/org/mozilla/fenix/components/Core.kt | 1 + + .../fenix/settings/AccessibilityFragment.kt | 14 ++++++++ + .../java/org/mozilla/fenix/utils/Settings.kt | 13 +++++++- + .../src/main/res/values/preference_keys.xml | 2 ++ + .../res/xml/accessibility_preferences.xml | 5 +++ + mobile/android/geckoview/api.txt | 3 ++ + .../geckoview/GeckoRuntimeSettings.java | 32 +++++++++++++++++++ + 9 files changed, 84 insertions(+), 1 deletion(-) + diff --git a/mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngine.kt b/mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngine.kt -index 84ad70e3a4..f64199490c 100644 +index d3bfbfa762..6f09eee718 100644 --- a/mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngine.kt +++ b/mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngine.kt -@@ -1472,6 +1472,14 @@ class GeckoEngine( +@@ -1473,6 +1473,14 @@ class GeckoEngine( override var postQuantumKeyExchangeEnabled: Boolean get() = runtime.settings.postQuantumKeyExchangeEnabled set(value) { runtime.settings.setPostQuantumKeyExchangeEnabled(value) } @@ -17,7 +37,7 @@ index 84ad70e3a4..f64199490c 100644 }.apply { defaultSettings?.let { this.javascriptEnabled = it.javascriptEnabled -@@ -1510,6 +1518,7 @@ class GeckoEngine( +@@ -1515,6 +1523,7 @@ class GeckoEngine( this.cookieBehaviorOptInPartitioningPBM = it.cookieBehaviorOptInPartitioningPBM this.certificateTransparencyMode = it.certificateTransparencyMode this.postQuantumKeyExchangeEnabled = it.postQuantumKeyExchangeEnabled @@ -50,10 +70,10 @@ index db66cbe503..76dde3a5bb 100644 override val desktopModeEnabled: Boolean get() = getDesktopMode() diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt -index 3ab8ea1acd..a46111ae99 100644 +index 9a9487a930..7358b9ccd7 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt -@@ -180,6 +180,7 @@ class Core( +@@ -182,6 +182,7 @@ class Core( parallelMarkingEnabled = FxNimbus.features.javascript.value().parallelMarkingEnabled, certificateTransparencyMode = FxNimbus.features.pki.value().certificateTransparencyMode, postQuantumKeyExchangeEnabled = FxNimbus.features.pqcrypto.value().postQuantumKeyExchangeEnabled, @@ -87,10 +107,10 @@ index 1122dc0b0f..fa3ed491b0 100644 R.string.pref_key_accessibility_force_enable_zoom, ) 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 b800c22431..8bbfe71cb7 100644 +index 8e271198b0..46baf40a56 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 -@@ -1001,6 +1001,11 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1074,6 +1074,11 @@ class Settings(private val appContext: Context) : PreferencesHolder { } else { ToolbarPosition.TOP } @@ -102,7 +122,7 @@ index b800c22431..8bbfe71cb7 100644 /** * Check each active accessibility service to see if it can perform gestures, if any can, -@@ -1008,6 +1013,9 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1081,6 +1086,9 @@ class Settings(private val appContext: Context) : PreferencesHolder { */ val switchServiceIsEnabled: Boolean get() { @@ -112,7 +132,7 @@ index b800c22431..8bbfe71cb7 100644 val accessibilityManager = appContext.getSystemService(Context.ACCESSIBILITY_SERVICE) as? AccessibilityManager -@@ -1024,6 +1032,9 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1097,6 +1105,9 @@ class Settings(private val appContext: Context) : PreferencesHolder { val touchExplorationIsEnabled: Boolean get() { @@ -122,7 +142,7 @@ index b800c22431..8bbfe71cb7 100644 val accessibilityManager = appContext.getSystemService(Context.ACCESSIBILITY_SERVICE) as? AccessibilityManager return accessibilityManager?.isTouchExplorationEnabled ?: false -@@ -1031,7 +1042,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1104,7 +1115,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { val accessibilityServicesEnabled: Boolean get() { @@ -132,14 +152,13 @@ index b800c22431..8bbfe71cb7 100644 fun getDeleteDataOnQuit(type: DeleteBrowsingDataOnQuitType): Boolean = diff --git a/mobile/android/fenix/app/src/main/res/values/preference_keys.xml b/mobile/android/fenix/app/src/main/res/values/preference_keys.xml -index a1993c808f..f0651f2a5c 100644 +index dbb7ece65c..12674ea37e 100644 --- a/mobile/android/fenix/app/src/main/res/values/preference_keys.xml +++ b/mobile/android/fenix/app/src/main/res/values/preference_keys.xml -@@ -447,4 +447,7 @@ - - - pref_key_glean_usage_profile_id -+ +@@ -464,4 +464,6 @@ + pref_key_setup_step_toolbar + pref_key_setup_step_theme + pref_key_setup_step_extensions + + pref_key_accessibility_enabled @@ -160,7 +179,7 @@ index a810f76208..f9381cbc86 100644 android:defaultValue="true" android:key="@string/pref_key_accessibility_auto_size" diff --git a/mobile/android/geckoview/api.txt b/mobile/android/geckoview/api.txt -index e4874b2bad..cd884a5569 100644 +index d1af0917aa..e49a901bf6 100644 --- a/mobile/android/geckoview/api.txt +++ b/mobile/android/geckoview/api.txt @@ -914,6 +914,7 @@ package org.mozilla.geckoview { @@ -244,3 +263,6 @@ index 30a300d9eb..36c025bfdc 100644 // For internal use only /* protected */ @NonNull GeckoRuntimeSettings setProcessCount(final int processCount) { +-- +2.49.0 + diff --git a/patches/disable-autocomplete.patch b/patches/disable-autocomplete.patch index 7a0eb27a..00dd201d 100644 --- a/patches/disable-autocomplete.patch +++ b/patches/disable-autocomplete.patch @@ -1,8 +1,20 @@ +From a6a695e3304ba64f76b399f3cf712310a21c8f1a Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 10:34:17 +0530 +Subject: [PATCH] fix(patches): update 'disable-autocomplete.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt | 2 +- + .../fenix/app/src/main/res/xml/search_settings_preferences.xml | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + 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 b800c22431..6a3049e569 100644 +index 8e271198b0..f76366f307 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 -@@ -1077,7 +1077,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1152,7 +1152,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { val shouldAutocompleteInAwesomebar by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_enable_autocomplete_urls), @@ -12,10 +24,10 @@ index b800c22431..6a3049e569 100644 var defaultTopSitesAdded by booleanPreference( diff --git a/mobile/android/fenix/app/src/main/res/xml/search_settings_preferences.xml b/mobile/android/fenix/app/src/main/res/xml/search_settings_preferences.xml -index da8132091b..829702f2c9 100644 +index f7ca109331..f53d81e846 100644 --- a/mobile/android/fenix/app/src/main/res/xml/search_settings_preferences.xml +++ b/mobile/android/fenix/app/src/main/res/xml/search_settings_preferences.xml -@@ -99,7 +99,7 @@ +@@ -109,7 +109,7 @@ android:title="@string/preferences_show_voice_search" /> +-- +2.49.0 + diff --git a/patches/disable-autofill.patch b/patches/disable-autofill.patch index 08ce6425..a561ac0b 100644 --- a/patches/disable-autofill.patch +++ b/patches/disable-autofill.patch @@ -1,8 +1,23 @@ +From 8ac85516860f9100f109819109b9fd296f247266 Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 10:43:02 +0530 +Subject: [PATCH] fix(patches): update 'disable-autofill.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../app/src/main/java/org/mozilla/fenix/utils/Settings.kt | 8 ++++---- + .../fenix/app/src/main/res/xml/autofill_preferences.xml | 4 ++-- + .../app/src/main/res/xml/credit_cards_preferences.xml | 2 +- + .../fenix/app/src/main/res/xml/logins_preferences.xml | 2 +- + .../app/src/main/res/xml/save_logins_preferences.xml | 4 ++-- + 5 files changed, 10 insertions(+), 10 deletions(-) + 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 b800c22431..87d9e7d3e6 100644 +index 8e271198b0..776da4f139 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 -@@ -1296,12 +1296,12 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1379,12 +1379,12 @@ class Settings(private val appContext: Context) : PreferencesHolder { var shouldPromptToSaveLogins by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_save_logins), @@ -17,7 +32,7 @@ index b800c22431..87d9e7d3e6 100644 ) /** -@@ -1641,7 +1641,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1721,7 +1721,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { */ var shouldAutofillCreditCardDetails by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_credit_cards_save_and_autofill_cards), @@ -26,7 +41,7 @@ index b800c22431..87d9e7d3e6 100644 ) /** -@@ -1652,7 +1652,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1732,7 +1732,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { */ var shouldAutofillAddressDetails by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_addresses_save_and_autofill_addresses), @@ -36,7 +51,7 @@ index b800c22431..87d9e7d3e6 100644 /** diff --git a/mobile/android/fenix/app/src/main/res/xml/autofill_preferences.xml b/mobile/android/fenix/app/src/main/res/xml/autofill_preferences.xml -index aa1efa9..1ccfc1f 100644 +index aa1efa9665..1ccfc1fefa 100644 --- a/mobile/android/fenix/app/src/main/res/xml/autofill_preferences.xml +++ b/mobile/android/fenix/app/src/main/res/xml/autofill_preferences.xml @@ -10,7 +10,7 @@ @@ -58,7 +73,7 @@ index aa1efa9..1ccfc1f 100644 android:summary="@string/preferences_credit_cards_save_and_autofill_cards_summary_2" android:title="@string/preferences_credit_cards_save_and_autofill_cards_2" /> diff --git a/mobile/android/fenix/app/src/main/res/xml/credit_cards_preferences.xml b/mobile/android/fenix/app/src/main/res/xml/credit_cards_preferences.xml -index 00caf8e..b4efbb8 100644 +index 00caf8e1bb..b4efbb89a5 100644 --- a/mobile/android/fenix/app/src/main/res/xml/credit_cards_preferences.xml +++ b/mobile/android/fenix/app/src/main/res/xml/credit_cards_preferences.xml @@ -5,7 +5,7 @@ @@ -71,7 +86,7 @@ index 00caf8e..b4efbb8 100644 android:summary="@string/preferences_credit_cards_save_and_autofill_cards_summary_2" android:title="@string/preferences_credit_cards_save_and_autofill_cards_2" /> diff --git a/mobile/android/fenix/app/src/main/res/xml/logins_preferences.xml b/mobile/android/fenix/app/src/main/res/xml/logins_preferences.xml -index 1a8810e..1f3ad71 100644 +index 1a8810eca7..1f3ad71295 100644 --- a/mobile/android/fenix/app/src/main/res/xml/logins_preferences.xml +++ b/mobile/android/fenix/app/src/main/res/xml/logins_preferences.xml @@ -9,7 +9,7 @@ @@ -84,7 +99,7 @@ index 1a8810e..1f3ad71 100644 android:title="@string/preferences_passwords_autofill2" android:summary="@string/preferences_passwords_autofill_description" /> diff --git a/mobile/android/fenix/app/src/main/res/xml/save_logins_preferences.xml b/mobile/android/fenix/app/src/main/res/xml/save_logins_preferences.xml -index 3fc38f2..1c88040 100644 +index 3fc38f2070..1c88040284 100644 --- a/mobile/android/fenix/app/src/main/res/xml/save_logins_preferences.xml +++ b/mobile/android/fenix/app/src/main/res/xml/save_logins_preferences.xml @@ -4,11 +4,11 @@ @@ -100,4 +115,7 @@ index 3fc38f2..1c88040 100644 + android:defaultValue="true" android:key="@string/pref_key_never_save_logins" android:title="@string/preferences_passwords_save_logins_never_save" /> - + +-- +2.49.0 + diff --git a/patches/disable-cfrs.patch b/patches/disable-cfrs.patch index 9bb4f0fd..a748df99 100644 --- a/patches/disable-cfrs.patch +++ b/patches/disable-cfrs.patch @@ -1,7 +1,20 @@ +From 9829f6f67d26042ae009b33fcbdc7f62a5384595 Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 10:43:30 +0530 +Subject: [PATCH] fix(patches): update 'disable-cfrs.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + mobile/android/fenix/app/nimbus.fml.yaml | 10 +-- + .../java/org/mozilla/fenix/utils/Settings.kt | 72 ++++--------------- + 2 files changed, 17 insertions(+), 65 deletions(-) + diff --git a/mobile/android/fenix/app/nimbus.fml.yaml b/mobile/android/fenix/app/nimbus.fml.yaml +index 0f3e80dad2..893f23302e 100644 --- a/mobile/android/fenix/app/nimbus.fml.yaml +++ b/mobile/android/fenix/app/nimbus.fml.yaml -@@ -101,10 +101,10 @@ +@@ -103,10 +103,10 @@ features: default: { "home-onboarding-dialog-existing-users": true, @@ -15,7 +28,7 @@ diff --git a/mobile/android/fenix/app/nimbus.fml.yaml b/mobile/android/fenix/app "tcp-feature": true, } defaults: -@@ -112,9 +112,9 @@ +@@ -114,9 +114,9 @@ features: value: { "sections-enabled": { "home-onboarding-dialog-existing-users": true, @@ -28,9 +41,10 @@ diff --git a/mobile/android/fenix/app/nimbus.fml.yaml b/mobile/android/fenix/app } query-parameter-stripping: 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 8e271198b0..f97994d4ba 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 -@@ -169,8 +169,7 @@ +@@ -210,8 +210,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { default = 0L, ) @@ -40,7 +54,7 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Sett var forceEnableZoom by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_accessibility_force_enable_zoom), -@@ -831,30 +830,16 @@ +@@ -904,30 +903,16 @@ class Settings(private val appContext: Context) : PreferencesHolder { /** * Indicates if the total cookie protection CRF should be shown. */ @@ -75,7 +89,7 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Sett val blockCookiesSelectionInCustomTrackingProtection by stringPreference( key = appContext.getPreferenceKey(R.string.pref_key_tracking_protection_custom_cookies_select), -@@ -1122,23 +1107,7 @@ +@@ -1205,23 +1190,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { private val userNeedsToVisitInstallableSites: Boolean get() = pwaInstallableVisitCount.underMaxCount() @@ -100,7 +114,7 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Sett var userKnowsAboutPwas by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_user_knows_about_pwa), -@@ -1150,8 +1119,7 @@ +@@ -1233,8 +1202,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { default = true, ) @@ -110,7 +124,7 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Sett var shouldShowAutoCloseTabsBanner by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_should_show_auto_close_tabs_banner), -@@ -1595,11 +1563,7 @@ +@@ -1675,11 +1643,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { /** * Indicates if sync onboarding CFR should be shown. */ @@ -123,7 +137,7 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Sett /** * Indicates if home onboarding dialog should be shown. -@@ -1797,34 +1761,22 @@ +@@ -1887,34 +1851,22 @@ class Settings(private val appContext: Context) : PreferencesHolder { /** * Indicates if the navigation bar CFR should be displayed to the user. */ @@ -162,3 +176,6 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Sett /** * Get the current mode for how https-only is enabled. +-- +2.49.0 + diff --git a/patches/disable-csp-reporting.patch b/patches/disable-csp-reporting.patch index 0a2370a4..732058ab 100644 --- a/patches/disable-csp-reporting.patch +++ b/patches/disable-csp-reporting.patch @@ -1,8 +1,19 @@ +From 2e80981c352c7b2fa6be97c10d95e03f667da0c4 Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 10:43:51 +0530 +Subject: [PATCH] fix(patches): update 'disable-csp-reporting.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + dom/security/nsCSPContext.cpp | 1 - + 1 file changed, 1 deletion(-) + diff --git a/dom/security/nsCSPContext.cpp b/dom/security/nsCSPContext.cpp -index 69c77a4e54..cae78daacb 100644 +index 6e867f1fe6..a997355e31 100644 --- a/dom/security/nsCSPContext.cpp +++ b/dom/security/nsCSPContext.cpp -@@ -1208,7 +1208,6 @@ nsresult nsCSPContext::SendReports( +@@ -1209,7 +1209,6 @@ nsresult nsCSPContext::SendReports( //[Deprecated] CSP Level 2 Reporting if (!reportURIs.IsEmpty()) { @@ -10,4 +21,6 @@ index 69c77a4e54..cae78daacb 100644 } return NS_OK; +-- +2.49.0 diff --git a/patches/disable-default-browser-engagement-prompts.patch b/patches/disable-default-browser-engagement-prompts.patch index 3dfb33e7..e9d35edf 100644 --- a/patches/disable-default-browser-engagement-prompts.patch +++ b/patches/disable-default-browser-engagement-prompts.patch @@ -1,8 +1,20 @@ +From 99a15e6440da440c2ae1a1a462b742b066b218cd Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 11:43:13 +0530 +Subject: [PATCH] fix(patches): update + 'disable-default-browser-engagement-prompts.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../java/org/mozilla/fenix/utils/Settings.kt | 60 +++++++++++-------- + 1 file changed, 34 insertions(+), 26 deletions(-) + 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 b800c22431..d1b0ce874b 100644 +index 8e271198b0..45c96e165c 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 -@@ -725,12 +725,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -794,12 +794,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { * This will lead to a performance regression since that function can be expensive to call. */ fun checkIfFenixIsDefaultBrowserOnAppResume(): Boolean { @@ -10,13 +22,13 @@ index b800c22431..d1b0ce874b 100644 - val isDefaultBrowserNow = isDefaultBrowserBlocking() - val wasDefaultBrowserOnLastResume = - this.preferences.getBoolean(prefKey, isDefaultBrowserNow) -- this.preferences.edit().putBoolean(prefKey, isDefaultBrowserNow).apply() +- this.preferences.edit { putBoolean(prefKey, isDefaultBrowserNow) } - return isDefaultBrowserNow && !wasDefaultBrowserOnLastResume + return false } /** -@@ -742,40 +737,31 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -811,40 +806,31 @@ class Settings(private val appContext: Context) : PreferencesHolder { return browsers.isDefaultBrowser } @@ -62,40 +74,54 @@ index b800c22431..d1b0ce874b 100644 val shouldUseAutoBatteryTheme by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_auto_battery_theme), -@@ -2172,11 +2158,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { - /** - * Indicates if the Set as default browser prompt for existing users feature is enabled. - */ -- var setAsDefaultBrowserPromptForExistingUsersEnabled by lazyFeatureFlagPreference( -- key = appContext.getPreferenceKey(R.string.pref_key_set_as_default_browser_prompt_enabled), -- default = { FxNimbus.features.setAsDefaultPrompt.value().enabled }, -- featureFlag = true, -- ) -+ var setAsDefaultBrowserPromptForExistingUsersEnabled = false +@@ -2275,6 +2261,11 @@ class Settings(private val appContext: Context) : PreferencesHolder { + default = false, + ) ++ /** ++ * Indicates if the Set as default browser prompt for existing users feature is enabled. ++ */ ++ var setAsDefaultBrowserPromptForExistingUsersEnabled = false ++ /** * Last time the Set as default Browser prompt has been displayed to the user. -@@ -2219,8 +2201,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { - /** - * Maximum number of times the Set as default Browser prompt can be displayed to the user. */ -- private val maxNumberOfDefaultBrowserPrompts: Int -- get() = FxNimbus.features.setAsDefaultPrompt.value().maxNumberOfTimesToDisplay -+ private val maxNumberOfDefaultBrowserPrompts: Int = 0 - - /** - * Number of app cold starts before displaying the Set as default Browser prompt. -@@ -2231,12 +2212,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -2310,12 +2301,29 @@ class Settings(private val appContext: Context) : PreferencesHolder { /** * Indicates if the Set as default Browser prompt should be displayed to the user. */ - val shouldShowSetAsDefaultPrompt: Boolean -- get() = setAsDefaultBrowserPromptForExistingUsersEnabled && +- get() = - (System.currentTimeMillis() - lastSetAsDefaultPromptShownTimeInMillis) > -- daysBetweenDefaultBrowserPrompts * ONE_DAY_MS && -- numberOfSetAsDefaultPromptShownTimes < maxNumberOfDefaultBrowserPrompts && -- coldStartsBetweenSetAsDefaultPrompts >= appColdStartsToShowDefaultPrompt +- DAYS_BETWEEN_DEFAULT_BROWSER_PROMPTS * ONE_DAY_MS && +- numberOfSetAsDefaultPromptShownTimes < MAX_NUMBER_OF_DEFAULT_BROWSER_PROMPTS && +- coldStartsBetweenSetAsDefaultPrompts >= APP_COLD_STARTS_TO_SHOW_DEFAULT_PROMPT ++ val shouldShowSetAsDefaultPrompt: Boolean = false ++ ++ /** ++ * Number of days between Set as default Browser prompts. ++ */ ++ private val daysBetweenDefaultBrowserPrompts: Int ++ get() = FxNimbus.features.setAsDefaultPrompt.value().daysBetweenPrompts ++ ++ /** ++ * Maximum number of times the Set as default Browser prompt can be displayed to the user. ++ */ ++ private val maxNumberOfDefaultBrowserPrompts: Int = 0 ++ ++ /** ++ * Number of app cold starts before displaying the Set as default Browser prompt. ++ */ ++ private val appColdStartsToShowDefaultPrompt: Int ++ get() = FxNimbus.features.setAsDefaultPrompt.value().appColdStartsBetweenPrompts ++ ++ /** ++ * Indicates if the Set as default Browser prompt should be displayed to the user. ++ */ + val shouldShowSetAsDefaultPrompt: Boolean = false /** * Updates the relevant settings when the "Set as Default Browser" prompt is shown. +-- +2.49.0 + diff --git a/patches/disable-doh-canary.patch b/patches/disable-doh-canary.patch index 44d4b0ce..ed7464cd 100644 --- a/patches/disable-doh-canary.patch +++ b/patches/disable-doh-canary.patch @@ -1,3 +1,14 @@ +From 64f15e1040a8ee4b6420d273a45642ae9c89d9c1 Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 10:48:20 +0530 +Subject: [PATCH] fix(patches): update 'disable-doh-canary.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + browser/components/doh/DoHHeuristics.sys.mjs | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + diff --git a/browser/components/doh/DoHHeuristics.sys.mjs b/browser/components/doh/DoHHeuristics.sys.mjs index ecbc0f5b77..59237cff92 100644 --- a/browser/components/doh/DoHHeuristics.sys.mjs @@ -20,3 +31,6 @@ index ecbc0f5b77..59237cff92 100644 let { addresses } = await dnsLookup(ZSCALER_CANARY); for (let address of addresses) { +-- +2.49.0 + diff --git a/patches/disable-firefox-suggest.patch b/patches/disable-firefox-suggest.patch index c39b0b8f..68037736 100644 --- a/patches/disable-firefox-suggest.patch +++ b/patches/disable-firefox-suggest.patch @@ -1,8 +1,21 @@ +From c131c0bd4599773059da50d601690d5cd8040083 Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 10:48:56 +0530 +Subject: [PATCH] fix(patches): update 'disable-firefox-suggest.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../fenix/settings/SecretSettingsFragment.kt | 11 +++--- + .../java/org/mozilla/fenix/utils/Settings.kt | 37 ++++--------------- + .../res/xml/search_settings_preferences.xml | 14 ++++--- + 3 files changed, 22 insertions(+), 40 deletions(-) + diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt -index 3d7ff49e55..43fb1e7181 100644 +index aafe4dbe47..828ad9a5dd 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt -@@ -106,7 +106,8 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { +@@ -118,7 +118,8 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { } requirePreference(R.string.pref_key_pocket_content_recommendations).apply { @@ -12,17 +25,20 @@ index 3d7ff49e55..43fb1e7181 100644 onPreferenceChangeListener = object : SharedPreferenceUpdater() { override fun onPreferenceChange(preference: Preference, newValue: Any?): Boolean { activity?.recreate() -@@ -122,14 +123,14 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { +@@ -134,8 +135,8 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { } requirePreference(R.string.pref_key_enable_trending_searches).apply { -- isVisible = Config.channel.isNightlyOrDebug +- isVisible = true - isChecked = context.settings().isTrendingSearchesVisible + isVisible = false + isChecked = false onPreferenceChangeListener = SharedPreferenceUpdater() } +@@ -152,8 +153,8 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { + } + requirePreference(R.string.pref_key_enable_fxsuggest).apply { - isVisible = FeatureFlags.FX_SUGGEST - isChecked = context.settings().enableFxSuggest @@ -32,10 +48,10 @@ index 3d7ff49e55..43fb1e7181 100644 override fun onPreferenceChange(preference: Preference, newValue: Any?): Boolean { val newBooleanValue = newValue as? Boolean ?: return false 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 b800c22431..4e7e477336 100644 +index 8e271198b0..102ad70fe7 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 -@@ -1094,10 +1094,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1169,10 +1169,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { * Indicates if the user have enabled trending search in search suggestions. */ @VisibleForTesting @@ -46,8 +62,8 @@ index b800c22431..4e7e477336 100644 + internal var trendingSearchSuggestionsEnabled = false /** - * Returns true if trending searches should be shown to the user. -@@ -1694,11 +1691,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { + * Indicates if the user have enabled recent search in the search suggestions setting preference. +@@ -1774,11 +1771,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { /** * Indicates if Merino content recommendations should be shown. */ @@ -60,20 +76,19 @@ index b800c22431..4e7e477336 100644 /** * Whether or not to display the Pocket sponsored stories parameter secret settings. -@@ -1948,11 +1941,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -2047,10 +2040,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { /** - * Indicates if Trending Searches is enabled. + * Indicates if Trending Search Suggestions are enabled. */ -- var isTrendingSearchesVisible by lazyFeatureFlagPreference( +- var isTrendingSearchesVisible by booleanPreference( - key = appContext.getPreferenceKey(R.string.pref_key_enable_trending_searches), -- default = { FxNimbus.features.trendingSearches.value().enabled }, -- featureFlag = true, +- default = FxNimbus.features.trendingSearches.value().enabled, - ) + var isTrendingSearchesVisible = false /** - * Adjust Activated User sent -@@ -2009,17 +1998,12 @@ class Settings(private val appContext: Context) : PreferencesHolder { + * Indicates if Recent Search Suggestions are enabled. +@@ -2115,17 +2105,12 @@ class Settings(private val appContext: Context) : PreferencesHolder { /** * Indicates if Firefox Suggest is enabled. */ @@ -93,7 +108,7 @@ index b800c22431..4e7e477336 100644 /** * Indicates first time engaging with signup -@@ -2033,22 +2017,14 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -2139,22 +2124,14 @@ class Settings(private val appContext: Context) : PreferencesHolder { * Indicates if the user has chosen to show sponsored search suggestions in the awesomebar. * The default value is computed lazily, and based on whether Firefox Suggest is enabled. */ @@ -119,7 +134,7 @@ index b800c22431..4e7e477336 100644 /** * Indicates that the user does not want warned of a translations diff --git a/mobile/android/fenix/app/src/main/res/xml/search_settings_preferences.xml b/mobile/android/fenix/app/src/main/res/xml/search_settings_preferences.xml -index da8132091b..107ccbc235 100644 +index f7ca109331..0c88b25fb5 100644 --- a/mobile/android/fenix/app/src/main/res/xml/search_settings_preferences.xml +++ b/mobile/android/fenix/app/src/main/res/xml/search_settings_preferences.xml @@ -38,12 +38,13 @@ @@ -135,10 +150,10 @@ index da8132091b..107ccbc235 100644 - app:iconSpaceReserved="false" /> + app:iconSpaceReserved="false" + app:isPreferenceVisible="false" /> - - - +Date: Mon, 28 Apr 2025 10:52:54 +0530 +Subject: [PATCH] fix(patches): update 'disable-geoip.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../components/service/location/MozillaLocationService.kt | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + diff --git a/mobile/android/android-components/components/service/location/src/main/java/mozilla/components/service/location/MozillaLocationService.kt b/mobile/android/android-components/components/service/location/src/main/java/mozilla/components/service/location/MozillaLocationService.kt -index 663ec7c5fe..64be617fab 100644 +index 8bea197568..1677b822ed 100644 --- a/mobile/android/android-components/components/service/location/src/main/java/mozilla/components/service/location/MozillaLocationService.kt +++ b/mobile/android/android-components/components/service/location/src/main/java/mozilla/components/service/location/MozillaLocationService.kt -@@ -24,10 +24,10 @@ import org.json.JSONObject +@@ -25,10 +25,10 @@ import org.json.JSONObject import java.io.IOException import java.util.concurrent.TimeUnit @@ -15,7 +26,7 @@ index 663ec7c5fe..64be617fab 100644 private const val EMPTY_REQUEST_BODY = "{}" private const val CACHE_FILE = "mozac.service.location.region" private const val KEY_COUNTRY_CODE = "country_code" -@@ -93,7 +93,7 @@ class MozillaLocationService( +@@ -94,7 +94,7 @@ class MozillaLocationService( * Check to see if the cache is still valid. */ private fun isCacheValid(): Boolean { @@ -24,3 +35,6 @@ index 663ec7c5fe..64be617fab 100644 } private fun Context.cacheRegion(region: LocationService.Region) { +-- +2.49.0 + diff --git a/patches/disable-link-sharing.patch b/patches/disable-link-sharing.patch index 7051da38..dc74e8fc 100644 --- a/patches/disable-link-sharing.patch +++ b/patches/disable-link-sharing.patch @@ -1,8 +1,20 @@ +From 8379442459cc03f0fb7032878c82adeba48a9fd3 Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 10:53:16 +0530 +Subject: [PATCH] fix(patches): update 'disable-link-sharing.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../org/mozilla/fenix/settings/SettingsFragment.kt | 2 +- + .../src/main/java/org/mozilla/fenix/utils/Settings.kt | 11 ++--------- + 2 files changed, 3 insertions(+), 10 deletions(-) + diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt -index 1b318ffee7..ed4b5b92a4 100644 +index ad6678f234..6eeff39da6 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt -@@ -796,7 +796,7 @@ class SettingsFragment : PreferenceFragmentCompat() { +@@ -799,7 +799,7 @@ class SettingsFragment : PreferenceFragmentCompat() { @VisibleForTesting internal fun setLinkSharingPreference() { with(requirePreference(R.string.pref_key_link_sharing)) { @@ -12,10 +24,10 @@ index 1b318ffee7..ed4b5b92a4 100644 } 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 b800c22431..b79ca9bc01 100644 +index 8e271198b0..804d8de712 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 -@@ -616,16 +616,9 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -685,16 +685,9 @@ class Settings(private val appContext: Context) : PreferencesHolder { } } @@ -34,3 +46,6 @@ index b800c22431..b79ca9bc01 100644 /** * Get the display string for the current open links in apps setting +-- +2.49.0 + diff --git a/patches/disable-microsurveys.patch b/patches/disable-microsurveys.patch index dd9cfff9..2bd4e654 100644 --- a/patches/disable-microsurveys.patch +++ b/patches/disable-microsurveys.patch @@ -1,8 +1,20 @@ +From cc0c2df36ef5ee81b38211dc7c35136fbdb83074 Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 10:53:39 +0530 +Subject: [PATCH] fix(patches): update 'disable-microsurveys.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../mozilla/fenix/settings/SecretSettingsFragment.kt | 4 ++-- + .../src/main/java/org/mozilla/fenix/utils/Settings.kt | 11 ++--------- + 2 files changed, 4 insertions(+), 11 deletions(-) + diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt -index 3d7ff49e55..edac0c56ae 100644 +index aafe4dbe47..7a09af1f7c 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt -@@ -189,8 +189,8 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { +@@ -213,8 +213,8 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { } requirePreference(R.string.pref_key_microsurvey_feature_enabled).apply { @@ -14,10 +26,10 @@ index 3d7ff49e55..edac0c56ae 100644 } 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 b800c22431..020c7d59cc 100644 +index 8e271198b0..e7005812ba 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 -@@ -2155,19 +2155,12 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -2261,19 +2261,12 @@ class Settings(private val appContext: Context) : PreferencesHolder { /** * Indicates if the microsurvey feature is enabled. */ @@ -38,4 +50,7 @@ index b800c22431..020c7d59cc 100644 + var shouldShowMicrosurveyPrompt = false /** - * Indicates if the Set as default browser prompt for existing users feature is enabled. + * Last time the Set as default Browser prompt has been displayed to the user. +-- +2.49.0 + diff --git a/patches/disable-nimbus.patch b/patches/disable-nimbus.patch index 52ad769e..fb42a580 100644 --- a/patches/disable-nimbus.patch +++ b/patches/disable-nimbus.patch @@ -1,8 +1,30 @@ +From 295e7206cc4877886f2afdfc9b9f1f01062ce64c Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 10:54:00 +0530 +Subject: [PATCH] fix(patches): update 'disable-nimbus.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../mozilla/fenix/browser/BrowserFragment.kt | 8 ---- + .../components/menu/MenuDialogFragment.kt | 4 +- + .../components/toolbar/DefaultToolbarMenu.kt | 10 +---- + .../fenix/onboarding/FenixOnboarding.kt | 1 - + .../fenix/settings/SecretSettingsFragment.kt | 4 +- + .../fenix/settings/SettingsFragment.kt | 12 ++---- + .../TranslationSettingsFragment.kt | 7 ++- + .../TranslationsDialogFragment.kt | 5 +-- + .../java/org/mozilla/fenix/utils/Settings.kt | 43 +++++++------------ + .../app/src/main/res/xml/preferences.xml | 5 --- + .../components/nimbus/ExperimentAPI.sys.mjs | 2 +- + .../RemoteSettingsExperimentLoader.sys.mjs | 10 ++--- + 12 files changed, 34 insertions(+), 77 deletions(-) + diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt -index 0a8b8b4e38..aadfd0d4a6 100644 +index 71624f614a..793f0a76e0 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt -@@ -53,7 +53,6 @@ import org.mozilla.fenix.ext.requireComponents +@@ -54,7 +54,6 @@ import org.mozilla.fenix.ext.requireComponents import org.mozilla.fenix.ext.runIfFragmentIsAttached import org.mozilla.fenix.ext.settings import org.mozilla.fenix.home.HomeFragment @@ -10,7 +32,7 @@ index 0a8b8b4e38..aadfd0d4a6 100644 import org.mozilla.fenix.settings.quicksettings.protections.cookiebanners.getCookieBannerUIMode import org.mozilla.fenix.shortcut.PwaOnboardingObserver import org.mozilla.fenix.theme.ThemeManager -@@ -168,12 +167,6 @@ class BrowserFragment : BaseBrowserFragment(), UserInteractionHandler { +@@ -169,12 +168,6 @@ class BrowserFragment : BaseBrowserFragment(), UserInteractionHandler { } private fun initTranslationsAction(context: Context, view: View) { @@ -23,7 +45,7 @@ index 0a8b8b4e38..aadfd0d4a6 100644 val translationsAction = Toolbar.ActionButton( AppCompatResources.getDrawable( context, -@@ -662,7 +655,6 @@ class BrowserFragment : BaseBrowserFragment(), UserInteractionHandler { +@@ -663,7 +656,6 @@ class BrowserFragment : BaseBrowserFragment(), UserInteractionHandler { override fun navToQuickSettingsSheet(tab: SessionState, sitePermissions: SitePermissions?) { val useCase = requireComponents.useCases.trackingProtectionUseCases @@ -32,7 +54,7 @@ index 0a8b8b4e38..aadfd0d4a6 100644 lifecycleScope.launch { val cookieBannersStorage = requireComponents.core.cookieBannersStorage diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/MenuDialogFragment.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/MenuDialogFragment.kt -index 760259e9fd..c3e014b6c5 100644 +index 514f270d17..ce0dbc8d11 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/MenuDialogFragment.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/MenuDialogFragment.kt @@ -75,7 +75,6 @@ import org.mozilla.fenix.components.menu.store.MenuStore @@ -43,7 +65,7 @@ index 760259e9fd..c3e014b6c5 100644 import org.mozilla.fenix.settings.SupportUtils import org.mozilla.fenix.settings.deletebrowsingdata.deleteAndQuit import org.mozilla.fenix.theme.FirefoxTheme -@@ -300,8 +299,7 @@ class MenuDialogFragment : BottomSheetDialogFragment() { +@@ -301,8 +300,7 @@ class MenuDialogFragment : BottomSheetDialogFragment() { val isTranslationEngineSupported = browserStore.state.translationEngine.isEngineSupported ?: false val isTranslationSupported = @@ -109,10 +131,10 @@ index a6f3b77a47..b2ce30c78f 100644 } diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt -index 3d7ff49e55..7022c5aa59 100644 +index aafe4dbe47..42a7c6c8ab 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt -@@ -55,8 +55,8 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { +@@ -56,8 +56,8 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { } requirePreference(R.string.pref_key_nimbus_use_preview).apply { @@ -124,10 +146,10 @@ index 3d7ff49e55..7022c5aa59 100644 } diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt -index 1b318ffee7..22d17989d4 100644 +index ad6678f234..cb15e071ac 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt -@@ -64,7 +64,6 @@ import org.mozilla.fenix.ext.openSetDefaultBrowserOption +@@ -65,7 +65,6 @@ import org.mozilla.fenix.ext.openSetDefaultBrowserOption import org.mozilla.fenix.ext.requireComponents import org.mozilla.fenix.ext.settings import org.mozilla.fenix.ext.showToolbar @@ -135,7 +157,7 @@ index 1b318ffee7..22d17989d4 100644 import org.mozilla.fenix.perf.ProfilerViewModel import org.mozilla.fenix.settings.account.AccountUiView import org.mozilla.fenix.snackbar.FenixSnackbarDelegate -@@ -174,8 +173,7 @@ class SettingsFragment : PreferenceFragmentCompat() { +@@ -177,8 +176,7 @@ class SettingsFragment : PreferenceFragmentCompat() { findPreference( getPreferenceKey(R.string.pref_key_translation), @@ -145,7 +167,7 @@ index 1b318ffee7..22d17989d4 100644 } override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { -@@ -203,11 +201,8 @@ class SettingsFragment : PreferenceFragmentCompat() { +@@ -206,11 +204,8 @@ class SettingsFragment : PreferenceFragmentCompat() { override fun onResume() { super.onResume() @@ -159,7 +181,7 @@ index 1b318ffee7..22d17989d4 100644 showToolbar("$title$suffix") -@@ -758,7 +753,6 @@ class SettingsFragment : PreferenceFragmentCompat() { +@@ -761,7 +756,6 @@ class SettingsFragment : PreferenceFragmentCompat() { @VisibleForTesting internal fun setupCookieBannerPreference() { @@ -193,10 +215,10 @@ index 1a02f82498..b7658c03e3 100644 state.selectedTab?.translationsState?.settingsError }.value, diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/translations/TranslationsDialogFragment.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/translations/TranslationsDialogFragment.kt -index 2b38fffaf3..09edddb9c2 100644 +index e8fd12e0cc..fce9fc3bdf 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/translations/TranslationsDialogFragment.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/translations/TranslationsDialogFragment.kt -@@ -43,7 +43,6 @@ import org.mozilla.fenix.ext.components +@@ -44,7 +44,6 @@ import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.requireComponents import org.mozilla.fenix.ext.runIfFragmentIsAttached import org.mozilla.fenix.ext.settings @@ -204,7 +226,7 @@ index 2b38fffaf3..09edddb9c2 100644 import org.mozilla.fenix.settings.SupportUtils import org.mozilla.fenix.theme.FirefoxTheme import org.mozilla.fenix.translations.preferences.downloadlanguages.DownloadLanguageFileDialog -@@ -173,7 +172,7 @@ class TranslationsDialogFragment : BottomSheetDialogFragment() { +@@ -174,7 +173,7 @@ class TranslationsDialogFragment : BottomSheetDialogFragment() { translationsDialogState?.let { TranslationsDialogContent( learnMoreUrl = learnMoreUrl, @@ -213,7 +235,7 @@ index 2b38fffaf3..09edddb9c2 100644 translationsDialogState = it, onSettingClicked = { Translations.action.record( -@@ -199,7 +198,7 @@ class TranslationsDialogFragment : BottomSheetDialogFragment() { +@@ -200,7 +199,7 @@ class TranslationsDialogFragment : BottomSheetDialogFragment() { ) { TranslationsOptionsDialogContent( learnMoreUrl = learnMoreUrl, @@ -223,10 +245,10 @@ index 2b38fffaf3..09edddb9c2 100644 initialFrom = translationsDialogState?.initialFrom, onBackClicked = { translationsVisibility = true }, 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 b800c22431..b7ef247380 100644 +index 8e271198b0..9f6a0c9b7b 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 -@@ -148,10 +148,9 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -189,10 +189,9 @@ class Settings(private val appContext: Context) : PreferencesHolder { /** * Indicates whether or not top sites should be shown on the home screen. */ @@ -239,7 +261,7 @@ index b800c22431..b7ef247380 100644 ) var numberOfAppLaunches by intPreference( -@@ -197,10 +196,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -238,10 +237,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { default = "", ) @@ -251,7 +273,7 @@ index b800c22431..b7ef247380 100644 var utmParamsKnown by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_utm_params_known), -@@ -471,10 +467,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -540,10 +536,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { default = false, ) @@ -263,7 +285,7 @@ index b800c22431..b7ef247380 100644 var isFirstNimbusRun: Boolean by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_is_first_run), -@@ -1586,10 +1579,9 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1666,10 +1659,9 @@ class Settings(private val appContext: Context) : PreferencesHolder { get() = FxNimbus.features.homescreen.value().sectionsEnabled @@ -276,15 +298,15 @@ index b800c22431..b7ef247380 100644 ) /** -@@ -1771,7 +1763,6 @@ class Settings(private val appContext: Context) : PreferencesHolder { - */ - fun shouldShowOnboarding(hasUserBeenOnboarded: Boolean, isLauncherIntent: Boolean): Boolean { - return if (!hasUserBeenOnboarded && isLauncherIntent) { +@@ -1856,7 +1848,6 @@ class Settings(private val appContext: Context) : PreferencesHolder { + isLauncherIntent: Boolean, + ): Boolean { + return if (featureEnabled && !hasUserBeenOnboarded && isLauncherIntent) { - FxNimbus.features.junoOnboarding.recordExposure() true } else { false -@@ -1914,19 +1905,17 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -2004,19 +1995,17 @@ class Settings(private val appContext: Context) : PreferencesHolder { /** * Indicates if the Compose Homepage is enabled. */ @@ -308,7 +330,7 @@ index b800c22431..b7ef247380 100644 ) /** -@@ -2062,8 +2051,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -2168,8 +2157,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { /** * Indicates if the feature to close synced tabs is enabled. */ @@ -318,7 +340,7 @@ index b800c22431..b7ef247380 100644 /** * Returns the height of the bottom toolbar. -@@ -2146,10 +2134,9 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -2252,10 +2240,9 @@ class Settings(private val appContext: Context) : PreferencesHolder { /** * Indicates if the user is shown the new navigation toolbar. */ @@ -331,19 +353,18 @@ index b800c22431..b7ef247380 100644 ) /** -@@ -2290,10 +2277,9 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -2369,9 +2356,9 @@ class Settings(private val appContext: Context) : PreferencesHolder { /** * Indicates whether or not we should use the new bookmarks UI. */ - var useNewBookmarks by lazyFeatureFlagPreference( + var useNewBookmarks by booleanPreference( key = appContext.getPreferenceKey(R.string.pref_key_use_new_bookmarks_ui), -- default = { FxNimbus.features.bookmarks.value().newComposeUi }, -- featureFlag = true, -+ default = false, +- default = { true }, ++ default = { false }, + featureFlag = true, ) - var lastSavedInFolderGuid by stringPreference( diff --git a/mobile/android/fenix/app/src/main/res/xml/preferences.xml b/mobile/android/fenix/app/src/main/res/xml/preferences.xml index 3b85a2a548..43b833bca8 100644 --- a/mobile/android/fenix/app/src/main/res/xml/preferences.xml @@ -361,9 +382,10 @@ index 3b85a2a548..43b833bca8 100644 android:key="@string/pref_key_start_profiler" app:iconSpaceReserved="false" diff --git a/toolkit/components/nimbus/ExperimentAPI.sys.mjs b/toolkit/components/nimbus/ExperimentAPI.sys.mjs +index eeb90eaf0c..f6a10ec3db 100644 --- a/toolkit/components/nimbus/ExperimentAPI.sys.mjs +++ b/toolkit/components/nimbus/ExperimentAPI.sys.mjs -@@ -31,7 +31,7 @@ +@@ -32,7 +32,7 @@ const IS_MAIN_PROCESS = Services.appinfo.processType === Services.appinfo.PROCESS_TYPE_DEFAULT; const COLLECTION_ID_PREF = "messaging-system.rsexperimentloader.collection_id"; @@ -373,10 +395,10 @@ diff --git a/toolkit/components/nimbus/ExperimentAPI.sys.mjs b/toolkit/component lazy, "COLLECTION_ID", diff --git a/toolkit/components/nimbus/lib/RemoteSettingsExperimentLoader.sys.mjs b/toolkit/components/nimbus/lib/RemoteSettingsExperimentLoader.sys.mjs -index dc15bead44..dcfdcb0a94 100644 +index 06c0045df6..acd3660cb4 100644 --- a/toolkit/components/nimbus/lib/RemoteSettingsExperimentLoader.sys.mjs +++ b/toolkit/components/nimbus/lib/RemoteSettingsExperimentLoader.sys.mjs -@@ -36,7 +36,7 @@ XPCOMUtils.defineLazyServiceGetter( +@@ -37,7 +37,7 @@ XPCOMUtils.defineLazyServiceGetter( ); const COLLECTION_ID_PREF = "messaging-system.rsexperimentloader.collection_id"; @@ -385,7 +407,7 @@ index dc15bead44..dcfdcb0a94 100644 const TARGETING_CONTEXT_TELEMETRY_ENABLED_PREF = "nimbus.telemetry.targetingContextEnabled"; -@@ -50,10 +50,10 @@ const NIMBUS_APPID_PREF = "nimbus.appId"; +@@ -51,10 +51,10 @@ const NIMBUS_APPID_PREF = "nimbus.appId"; const STUDIES_ENABLED_CHANGED = "nimbus:studies-enabled-changed"; @@ -399,7 +421,7 @@ index dc15bead44..dcfdcb0a94 100644 const RS_COLLECTION_OPTIONS = { [EXPERIMENTS_COLLECTION]: { -@@ -81,7 +81,7 @@ XPCOMUtils.defineLazyPreferenceGetter( +@@ -82,7 +82,7 @@ XPCOMUtils.defineLazyPreferenceGetter( lazy, "APP_ID", NIMBUS_APPID_PREF, @@ -408,5 +430,6 @@ index dc15bead44..dcfdcb0a94 100644 ); XPCOMUtils.defineLazyPreferenceGetter( lazy, +-- +2.49.0 - diff --git a/patches/disable-pocket.patch b/patches/disable-pocket.patch index 79b886a9..5eab3636 100644 --- a/patches/disable-pocket.patch +++ b/patches/disable-pocket.patch @@ -1,3 +1,22 @@ +From cebeca153ce6d606b73f7171907ed7724763ae36 Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 10:57:35 +0530 +Subject: [PATCH] fix(patches): update 'disable-pocket.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../service/mars/MarsTopSitesProvider.kt | 4 +-- + .../mars/contile/ContileTopSitesProvider.kt | 4 +-- + .../pocket/spocs/api/SpocsEndpointRaw.kt | 4 +-- + mobile/android/fenix/app/nimbus.fml.yaml | 6 ++-- + .../java/org/mozilla/fenix/FeatureFlags.kt | 8 +++--- + .../fenix/settings/SecretSettingsFragment.kt | 5 ++-- + .../mozilla/fenix/settings/SupportUtils.kt | 2 +- + .../java/org/mozilla/fenix/utils/Settings.kt | 28 ++++--------------- + .../app/src/main/res/xml/home_preferences.xml | 9 ++++-- + 9 files changed, 28 insertions(+), 42 deletions(-) + diff --git a/mobile/android/android-components/components/service/mars/src/main/java/mozilla/components/service/mars/MarsTopSitesProvider.kt b/mobile/android/android-components/components/service/mars/src/main/java/mozilla/components/service/mars/MarsTopSitesProvider.kt index b8430171ec..63f92e4dde 100644 --- a/mobile/android/android-components/components/service/mars/src/main/java/mozilla/components/service/mars/MarsTopSitesProvider.kt @@ -19,7 +38,6 @@ index b8430171ec..63f92e4dde 100644 /** * Provides access to the MARS API for fetching top sites tile. - diff --git a/mobile/android/android-components/components/service/mars/src/main/java/mozilla/components/service/mars/contile/ContileTopSitesProvider.kt b/mobile/android/android-components/components/service/mars/src/main/java/mozilla/components/service/mars/contile/ContileTopSitesProvider.kt index 6f1de67d54..5037c18b66 100644 --- a/mobile/android/android-components/components/service/mars/src/main/java/mozilla/components/service/mars/contile/ContileTopSitesProvider.kt @@ -35,30 +53,6 @@ index 6f1de67d54..5037c18b66 100644 internal const val CACHE_VALID_FOR_KEY = "valid_for" internal const val CACHE_TOP_SITES_KEY = "tiles" - -diff --git a/mobile/android/fenix/app/nimbus.fml.yaml b/mobile/android/fenix/app/nimbus.fml.yaml ---- a/mobile/android/fenix/app/nimbus.fml.yaml -+++ b/mobile/android/fenix/app/nimbus.fml.yaml -@@ -48,8 +48,8 @@ - "jump-back-in": true, - "bookmarks": true, - "recent-explorations": true, -- "pocket": true, -- "pocket-sponsored-stories": true, -+ "pocket": false, -+ "pocket-sponsored-stories": false, - } - defaults: - - channel: nightly -@@ -59,7 +59,7 @@ - "jump-back-in": true, - "bookmarks": true, - "recent-explorations": true, -- "pocket": true, -+ "pocket": false, - } - } - nimbus-validation: diff --git a/mobile/android/android-components/components/service/pocket/src/main/java/mozilla/components/service/pocket/spocs/api/SpocsEndpointRaw.kt b/mobile/android/android-components/components/service/pocket/src/main/java/mozilla/components/service/pocket/spocs/api/SpocsEndpointRaw.kt index 81bf2dd7e2..7a43fac926 100644 --- a/mobile/android/android-components/components/service/pocket/src/main/java/mozilla/components/service/pocket/spocs/api/SpocsEndpointRaw.kt @@ -74,11 +68,37 @@ index 81bf2dd7e2..7a43fac926 100644 private const val SPOCS_ENDPOINT_DOWNLOAD_SPOCS_PATH = "spocs" private const val SPOCS_ENDPOINT_DELETE_PROFILE_PATH = "user" private const val SPOCS_PROXY_VERSION_KEY = "version" - +diff --git a/mobile/android/fenix/app/nimbus.fml.yaml b/mobile/android/fenix/app/nimbus.fml.yaml +index 0f3e80dad2..53b102b8f4 100644 +--- a/mobile/android/fenix/app/nimbus.fml.yaml ++++ b/mobile/android/fenix/app/nimbus.fml.yaml +@@ -48,9 +48,9 @@ features: + "jump-back-in": true, + "bookmarks": true, + "recent-explorations": true, +- "pocket": true, +- "pocket-sponsored-stories": true, + "synced-tabs": true, ++ "pocket": false, ++ "pocket-sponsored-stories": false, + } + defaults: + - channel: nightly +@@ -60,8 +60,8 @@ features: + "jump-back-in": true, + "bookmarks": true, + "recent-explorations": true, +- "pocket": true, + "synced-tabs": true, ++ "pocket": false, + } + } + nimbus-validation: diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt +index 7f435ae784..e7e801db8d 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt -@@ -34,17 +34,17 @@ +@@ -34,17 +34,17 @@ object FeatureFlags { /** * Show Pocket recommended stories on home. */ @@ -101,10 +121,10 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FeatureFla /** diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt -index 3d7ff49e55..2256998544 100644 +index aafe4dbe47..2dd7f76bc8 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt -@@ -96,7 +96,8 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { +@@ -108,7 +108,8 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { } requirePreference(R.string.pref_key_mars_api_enabled).apply { @@ -114,7 +134,7 @@ index 3d7ff49e55..2256998544 100644 onPreferenceChangeListener = object : SharedPreferenceUpdater() { override fun onPreferenceChange(preference: Preference, newValue: Any?): Boolean { activity?.recreate() -@@ -179,7 +180,7 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { +@@ -203,7 +204,7 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { } requirePreference(R.string.pref_key_custom_sponsored_stories_parameters).apply { @@ -124,7 +144,7 @@ index 3d7ff49e55..2256998544 100644 requirePreference(R.string.pref_key_remote_server_prod).apply { diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt -index fc4f8d9b4b..ee0fd74e23 100644 +index 598a24ce36..f401c7b820 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt @@ -22,7 +22,7 @@ import java.util.Locale @@ -136,12 +156,11 @@ index fc4f8d9b4b..ee0fd74e23 100644 const val WIKIPEDIA_URL = "https://www.wikipedia.org/" const val FENIX_PLAY_STORE_URL = "https://play.google.com/store/apps/details?id=${BuildConfig.APPLICATION_ID}" const val GOOGLE_URL = "https://www.google.com/" - 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 b800c22431..f84a9a30b8 100644 +index 8e271198b0..c8de5b7e96 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 -@@ -329,10 +329,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -370,10 +370,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { default = false, ) @@ -153,7 +172,7 @@ index b800c22431..f84a9a30b8 100644 val isCrashReportingEnabled: Boolean get() = isCrashReportEnabledInBuild && -@@ -1658,20 +1655,12 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1738,20 +1735,12 @@ class Settings(private val appContext: Context) : PreferencesHolder { /** * Indicates if the Pocket recommended stories homescreen section should be shown. */ @@ -176,7 +195,7 @@ index b800c22431..f84a9a30b8 100644 /** * Get the profile id to use in the sponsored stories communications with the Pocket endpoint. -@@ -1735,19 +1724,12 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1815,19 +1804,12 @@ class Settings(private val appContext: Context) : PreferencesHolder { /** * Indicates if the MARS API integration is used for sponsored content. */ @@ -199,6 +218,7 @@ index b800c22431..f84a9a30b8 100644 /** * Indicates if the Unified Search feature should be visible. diff --git a/mobile/android/fenix/app/src/main/res/xml/home_preferences.xml b/mobile/android/fenix/app/src/main/res/xml/home_preferences.xml +index 5ca4cff86d..3507b6d24e 100644 --- a/mobile/android/fenix/app/src/main/res/xml/home_preferences.xml +++ b/mobile/android/fenix/app/src/main/res/xml/home_preferences.xml @@ -13,7 +13,8 @@ @@ -229,3 +249,6 @@ diff --git a/mobile/android/fenix/app/src/main/res/xml/home_preferences.xml b/mo +Date: Mon, 28 Apr 2025 11:01:21 +0530 +Subject: [PATCH] fix(patches): update 'disable-search-suggestions.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../app/src/main/java/org/mozilla/fenix/utils/Settings.kt | 7 ++----- + .../app/src/main/res/xml/search_settings_preferences.xml | 2 +- + 2 files changed, 3 insertions(+), 6 deletions(-) + 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 b800c22431..9638c9e04a 100644 +index 8e271198b0..5e864e37d5 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 -@@ -1072,7 +1072,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1147,7 +1147,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { val shouldShowSearchSuggestions by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_show_search_suggestions), @@ -11,9 +23,9 @@ index b800c22431..9638c9e04a 100644 ) val shouldAutocompleteInAwesomebar by booleanPreference( -@@ -1106,10 +1106,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { - trendingSearchSuggestionsEnabled && isTrendingSearchesVisible && - searchEngine?.trendingUrl != null && (!isPrivate || shouldShowSearchSuggestionsInPrivate) +@@ -1189,10 +1189,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { + val shouldShowRecentSearchSuggestions: Boolean + get() = recentSearchSuggestionsEnabled && isRecentSearchesVisible - var showSearchSuggestionsInPrivateOnboardingFinished by booleanPreference( - appContext.getPreferenceKey(R.string.pref_key_show_search_suggestions_in_private_onboarding), @@ -24,7 +36,7 @@ index b800c22431..9638c9e04a 100644 fun incrementVisitedInstallableCount() = pwaInstallableVisitCount.increment() diff --git a/mobile/android/fenix/app/src/main/res/xml/search_settings_preferences.xml b/mobile/android/fenix/app/src/main/res/xml/search_settings_preferences.xml -index a4de5c1..e15e096 100644 +index f7ca109331..f9820e2f98 100644 --- a/mobile/android/fenix/app/src/main/res/xml/search_settings_preferences.xml +++ b/mobile/android/fenix/app/src/main/res/xml/search_settings_preferences.xml @@ -27,7 +27,7 @@ @@ -36,3 +48,6 @@ index a4de5c1..e15e096 100644 android:key="@string/pref_key_show_search_suggestions" android:title="@string/preferences_show_search_suggestions" /> +Date: Mon, 28 Apr 2025 11:01:47 +0530 +Subject: [PATCH] fix(patches): update 'disable-shipped-domains.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../app/src/main/java/org/mozilla/fenix/components/Core.kt | 7 +------ + 1 file changed, 1 insertion(+), 6 deletions(-) + diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt -index 3ab8ea1acd..992865d78f 100644 +index 9a9487a930..cf0bdf1d20 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt -@@ -497,12 +497,7 @@ class Core( +@@ -477,12 +477,7 @@ class Core( val bookmarksStorage: PlacesBookmarksStorage get() = lazyBookmarksStorage.value val passwordsStorage: SyncableLoginsStorage get() = lazyPasswordsStorage.value val autofillStorage: AutofillCreditCardsAddressesStorage get() = lazyAutofillStorage.value @@ -16,3 +27,6 @@ index 3ab8ea1acd..992865d78f 100644 val sessionAutocompleteProvider: SessionAutocompleteProvider get() = lazySessionAutocompleteProvider.value val tabCollectionStorage by lazyMonitored { +-- +2.49.0 + diff --git a/patches/disable-sync-by-default.patch b/patches/disable-sync-by-default.patch index 794a9345..28a0d7ed 100644 --- a/patches/disable-sync-by-default.patch +++ b/patches/disable-sync-by-default.patch @@ -1,3 +1,14 @@ +From 548f0cc690192c3bd1b715e0d249d9eb41093523 Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 11:02:07 +0530 +Subject: [PATCH] fix(patches): update 'disable-sync-by-default.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../main/res/xml/account_settings_preferences.xml | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + diff --git a/mobile/android/fenix/app/src/main/res/xml/account_settings_preferences.xml b/mobile/android/fenix/app/src/main/res/xml/account_settings_preferences.xml index 300331efb5..f1cbf8ea99 100644 --- a/mobile/android/fenix/app/src/main/res/xml/account_settings_preferences.xml @@ -47,3 +58,6 @@ index 300331efb5..f1cbf8ea99 100644 android:visible="false" android:key="@string/pref_key_sync_address" android:layout="@layout/checkbox_left_preference" +-- +2.49.0 + diff --git a/patches/disable-telemetry.patch b/patches/disable-telemetry.patch index aef2a473..3b89c269 100644 --- a/patches/disable-telemetry.patch +++ b/patches/disable-telemetry.patch @@ -1,7 +1,51 @@ +From aa11dfabd95fd328c46b905bcf575bec2725f567 Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 11:02:26 +0530 +Subject: [PATCH] fix(patches): update 'disable-telemetry.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../browser/engine-gecko/build.gradle | 2 +- + .../lib/crash/sentry/SentryService.kt | 2 +- + .../lib/crash/prompt/CrashReporterActivity.kt | 2 +- + .../service/GleanCrashReporterService.kt | 595 ------------------ + .../crash/service/MozillaSocorroService.kt | 4 +- + mobile/android/fenix/app/build.gradle | 2 +- + .../java/org/mozilla/fenix/FeatureFlags.kt | 2 +- + .../org/mozilla/fenix/FenixApplication.kt | 4 - + .../org/mozilla/fenix/components/Analytics.kt | 105 +--- + .../mozilla/fenix/components/Components.kt | 2 +- + .../java/org/mozilla/fenix/components/Core.kt | 42 +- + .../mozilla/fenix/components/GleanHelper.kt | 15 +- + .../components/metrics/GleanMetricsService.kt | 6 +- + .../components/metrics/MetricsStorage.kt | 4 +- + .../mozilla/fenix/experiments/NimbusSetup.kt | 5 +- + .../controller/NimbusBranchesController.kt | 27 - + .../fenix/onboarding/OnboardingFragment.kt | 3 +- + .../java/org/mozilla/fenix/utils/Settings.kt | 52 +- + .../app/src/main/res/xml/preferences.xml | 10 - + .../org/mozilla/geckoview/CrashHandler.java | 2 +- + mobile/android/moz.configure | 2 +- + python/mach/mach/telemetry.py | 5 +- + toolkit/components/glean/src/init/mod.rs | 18 +- + .../glean/src/init/viaduct_uploader.rs | 4 +- + .../app/TelemetryControllerBase.sys.mjs | 31 +- + .../app/TelemetryReportingPolicy.sys.mjs | 63 +- + .../telemetry/app/UsageReporting.sys.mjs | 21 +- + .../components/telemetry/core/Telemetry.cpp | 7 +- + .../telemetry/core/TelemetryCommon.cpp | 7 +- + toolkit/library/rust/gkrust-features.mozbuild | 3 +- + toolkit/modules/AppConstants.sys.mjs | 15 +- + toolkit/moz.configure | 2 +- + .../substitutions/AppConstants.sys.d.mts | 10 +- + 33 files changed, 81 insertions(+), 993 deletions(-) + diff --git a/mobile/android/android-components/components/browser/engine-gecko/build.gradle b/mobile/android/android-components/components/browser/engine-gecko/build.gradle +index 7941343807..e56e90a005 100644 --- a/mobile/android/android-components/components/browser/engine-gecko/build.gradle +++ b/mobile/android/android-components/components/browser/engine-gecko/build.gradle -@@ -58,7 +58,7 @@ +@@ -58,7 +58,7 @@ android { // Set configuration for the Glean parser to extract metrics.yaml // file from AAR dependencies of this project rather than look // for it into the project directory. @@ -11,9 +55,10 @@ diff --git a/mobile/android/android-components/components/browser/engine-gecko/b dependencies { implementation project(':concept-engine') diff --git a/mobile/android/android-components/components/lib/crash-sentry/src/main/java/mozilla/components/lib/crash/sentry/SentryService.kt b/mobile/android/android-components/components/lib/crash-sentry/src/main/java/mozilla/components/lib/crash/sentry/SentryService.kt +index bc9ae7fe5b..e89859e038 100644 --- a/mobile/android/android-components/components/lib/crash-sentry/src/main/java/mozilla/components/lib/crash/sentry/SentryService.kt +++ b/mobile/android/android-components/components/lib/crash-sentry/src/main/java/mozilla/components/lib/crash/sentry/SentryService.kt -@@ -44,7 +44,7 @@ +@@ -44,7 +44,7 @@ class SentryService( private val environment: String? = null, private val sendEventForNativeCrashes: Boolean = false, private val sentryProjectUrl: String? = null, @@ -23,9 +68,10 @@ diff --git a/mobile/android/android-components/components/lib/crash-sentry/src/m override val id: String = "new-sentry-instance" diff --git a/mobile/android/android-components/components/lib/crash/src/main/java/mozilla/components/lib/crash/prompt/CrashReporterActivity.kt b/mobile/android/android-components/components/lib/crash/src/main/java/mozilla/components/lib/crash/prompt/CrashReporterActivity.kt +index 98d9ba5d5f..cd9e431d82 100644 --- a/mobile/android/android-components/components/lib/crash/src/main/java/mozilla/components/lib/crash/prompt/CrashReporterActivity.kt +++ b/mobile/android/android-components/components/lib/crash/src/main/java/mozilla/components/lib/crash/prompt/CrashReporterActivity.kt -@@ -85,7 +85,7 @@ +@@ -86,7 +86,7 @@ class CrashReporterActivity : AppCompatActivity() { } binding.sendCheckbox.text = getString(R.string.mozac_lib_crash_dialog_checkbox, organizationName) @@ -35,9 +81,10 @@ diff --git a/mobile/android/android-components/components/lib/crash/src/main/jav binding.restartButton.apply { text = getString(R.string.mozac_lib_crash_dialog_button_restart, appName) diff --git a/mobile/android/android-components/components/lib/crash/src/main/java/mozilla/components/lib/crash/service/GleanCrashReporterService.kt b/mobile/android/android-components/components/lib/crash/src/main/java/mozilla/components/lib/crash/service/GleanCrashReporterService.kt +index 46326f505b..df308f1dd3 100644 --- a/mobile/android/android-components/components/lib/crash/src/main/java/mozilla/components/lib/crash/service/GleanCrashReporterService.kt +++ b/mobile/android/android-components/components/lib/crash/src/main/java/mozilla/components/lib/crash/service/GleanCrashReporterService.kt -@@ -5,53 +5,10 @@ +@@ -5,52 +5,10 @@ package mozilla.components.lib.crash.service import android.content.Context @@ -76,7 +123,6 @@ diff --git a/mobile/android/android-components/components/lib/crash/src/main/jav -import mozilla.telemetry.glean.private.BooleanMetricType -import mozilla.telemetry.glean.private.ObjectMetricType -import mozilla.telemetry.glean.private.QuantityMetricType --import mozilla.telemetry.glean.private.StringListMetricType -import mozilla.telemetry.glean.private.StringMetricType import java.io.File -import java.io.FileOutputStream @@ -91,7 +137,7 @@ diff --git a/mobile/android/android-components/components/lib/crash/src/main/jav /** * A [CrashReporterService] implementation for recording metrics with Glean. The purpose of this -@@ -79,579 +36,14 @@ +@@ -78,567 +36,14 @@ class GleanCrashReporterService( const val MAIN_PROCESS_NATIVE_CODE_CRASH_KEY = "main_proc_native_code_crash" const val FOREGROUND_CHILD_PROCESS_NATIVE_CODE_CRASH_KEY = "fg_proc_native_code_crash" const val BACKGROUND_CHILD_PROCESS_NATIVE_CODE_CRASH_KEY = "bg_proc_native_code_crash" @@ -165,9 +211,6 @@ diff --git a/mobile/android/android-components/components/lib/crash/src/main/jav - // Overrides the original `startup` parameter to `Ping` when present - GleanCrash.startup.setIfNonNull(extras["StartupCrash"]) - -- GleanEnvironment.experimentalFeatures.setExperimentalFeaturesIfNonNull( -- extras["ExperimentalFeatures"], -- ) - GleanEnvironment.headlessMode.setIfNonNull(extras["HeadlessMode"]) - - GleanMemory.availableCommit.setIfNonNull(extras["AvailablePageFile"]) @@ -196,15 +239,6 @@ diff --git a/mobile/android/android-components/components/lib/crash/src/main/jav - element?.jsonPrimitive?.long?.let(::set) - } - -- private fun StringListMetricType.setExperimentalFeaturesIfNonNull( -- element: JsonElement?, -- ) { -- element?.let { -- // Split on commas -- set(it.jsonPrimitive.content.split(',').filter(String::isNotEmpty)) -- } -- } -- - private fun ObjectMetricType.setAsyncShutdownTimeoutIfNonNull( - element: JsonElement?, - ) { @@ -672,9 +706,10 @@ diff --git a/mobile/android/android-components/components/lib/crash/src/main/jav } } diff --git a/mobile/android/android-components/components/lib/crash/src/main/java/mozilla/components/lib/crash/service/MozillaSocorroService.kt b/mobile/android/android-components/components/lib/crash/src/main/java/mozilla/components/lib/crash/service/MozillaSocorroService.kt +index 900fc5ebb6..5dc9073921 100644 --- a/mobile/android/android-components/components/lib/crash/src/main/java/mozilla/components/lib/crash/service/MozillaSocorroService.kt +++ b/mobile/android/android-components/components/lib/crash/src/main/java/mozilla/components/lib/crash/service/MozillaSocorroService.kt -@@ -103,7 +103,7 @@ +@@ -103,7 +103,7 @@ class MozillaSocorroService( override val name: String = "Socorro" override fun createCrashReportUrl(identifier: String): String? { @@ -683,20 +718,20 @@ diff --git a/mobile/android/android-components/components/lib/crash/src/main/jav } init { -@@ -556,7 +556,7 @@ +@@ -556,7 +556,7 @@ class MozillaSocorroService( } internal fun buildServerUrl(versionName: String): String = -- Uri.parse("https://crash-reports.mozilla.com/submit") +- "https://crash-reports.mozilla.com/submit".toUri() + Uri.parse("") .buildUpon() .appendQueryParameter("id", appId) .appendQueryParameter("version", versionName) diff --git a/mobile/android/fenix/app/build.gradle b/mobile/android/fenix/app/build.gradle -index b16b9b845d..f9b3767458 100644 +index 7535453460..22013e852c 100644 --- a/mobile/android/fenix/app/build.gradle +++ b/mobile/android/fenix/app/build.gradle -@@ -323,7 +323,7 @@ android.applicationVariants.configureEach { variant -> +@@ -326,7 +326,7 @@ android.applicationVariants.configureEach { variant -> project.logger.debug("Application ID: " + [variant.applicationId, variant.buildType.applicationIdSuffix].findAll().join()) project.logger.debug("Build type: " + variant.buildType.name) project.logger.debug("Flavor: " + variant.flavorName) @@ -706,9 +741,10 @@ index b16b9b845d..f9b3767458 100644 if (useReleaseVersioning) { // The Google Play Store does not allow multiple APKs for the same app that all have the diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt +index 7f435ae784..57798f6f4c 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt -@@ -66,7 +66,7 @@ +@@ -66,7 +66,7 @@ object FeatureFlags { /** * Enable Meta attribution. */ @@ -717,7 +753,23 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FeatureFla /** * Enables Homepage as a New Tab. +diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FenixApplication.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FenixApplication.kt +index 34a3e1b522..0283fd4b68 100644 +--- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FenixApplication.kt ++++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FenixApplication.kt +@@ -492,10 +492,6 @@ open class FenixApplication : LocaleAwareApplication(), Provider { + } + + private fun setupCrashReporting() { +- components +- .analytics +- .crashReporter +- .install(this) + } + + protected open fun initializeNimbus() { diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Analytics.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Analytics.kt +index bec617c4cc..aa21f3af61 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Analytics.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Analytics.kt @@ -4,100 +4,33 @@ @@ -822,7 +874,7 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components val intent = Intent(context, HomeActivity::class.java).apply { flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP } -@@ -122,10 +55,9 @@ +@@ -122,10 +55,9 @@ class Analytics( appName = context.getString(R.string.app_name), organizationName = "Mozilla", ), @@ -835,7 +887,7 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components runtimeTagProviders = listOf(ReleaseRuntimeTagProvider()), ) } -@@ -144,34 +76,11 @@ +@@ -144,34 +76,11 @@ class Analytics( val metrics: MetricController by lazyMonitored { MetricController.create( @@ -875,9 +927,10 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components - } -} diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Components.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Components.kt +index af5cb6d286..d9b26aa703 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Components.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Components.kt -@@ -166,7 +166,7 @@ +@@ -169,7 +169,7 @@ class Components(private val context: Context) { AddonManager(core.store, core.engine, addonsProvider, addonUpdater) } @@ -887,14 +940,15 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components val publicSuffixList by lazyMonitored { PublicSuffixList(context) } val clipboardHandler by lazyMonitored { ClipboardHandler(context) } diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt -index 3ab8ea1acd..b78948b079 100644 +index 9a9487a930..0880f9485d 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt -@@ -59,13 +59,9 @@ import mozilla.components.feature.readerview.ReaderViewMiddleware +@@ -56,13 +56,10 @@ import mozilla.components.feature.pwa.WebAppShortcutManager + import mozilla.components.feature.readerview.ReaderViewMiddleware import mozilla.components.feature.recentlyclosed.RecentlyClosedMiddleware import mozilla.components.feature.recentlyclosed.RecentlyClosedTabsStorage - import mozilla.components.feature.search.ext.createApplicationSearchEngine -import mozilla.components.feature.search.middleware.AdsTelemetryMiddleware ++import mozilla.components.feature.search.ext.createApplicationSearchEngine import mozilla.components.feature.search.middleware.SearchExtraParams import mozilla.components.feature.search.middleware.SearchMiddleware import mozilla.components.feature.search.region.RegionMiddleware @@ -904,7 +958,7 @@ index 3ab8ea1acd..b78948b079 100644 import mozilla.components.feature.session.HistoryDelegate import mozilla.components.feature.session.middleware.LastAccessMiddleware import mozilla.components.feature.session.middleware.undo.UndoMiddleware -@@ -123,7 +119,6 @@ import org.mozilla.fenix.settings.advanced.getSelectedLocale +@@ -121,7 +118,6 @@ import org.mozilla.fenix.settings.advanced.getSelectedLocale import org.mozilla.fenix.share.DefaultSentFromFirefoxManager import org.mozilla.fenix.share.DefaultSentFromStorage import org.mozilla.fenix.share.SaveToPDFMiddleware @@ -912,7 +966,7 @@ index 3ab8ea1acd..b78948b079 100644 import org.mozilla.fenix.utils.getUndoDelay import org.mozilla.geckoview.GeckoRuntime import java.util.UUID -@@ -318,7 +313,6 @@ class Core( +@@ -297,7 +293,6 @@ class Core( RecentlyClosedMiddleware(recentlyClosedTabsStorage, RECENTLY_CLOSED_MAX), DownloadMiddleware(context, DownloadService::class.java), ReaderViewMiddleware(), @@ -920,7 +974,7 @@ index 3ab8ea1acd..b78948b079 100644 ThumbnailsMiddleware(thumbnailStorage), UndoMiddleware(context.getUndoDelay()), RegionMiddleware(context, locationService), -@@ -330,7 +324,6 @@ class Core( +@@ -309,7 +304,6 @@ class Core( ), RecordingDevicesMiddleware(context, context.components.notificationsDelegate), PromptMiddleware(), @@ -928,7 +982,7 @@ index 3ab8ea1acd..b78948b079 100644 LastMediaAccessMiddleware(), HistoryMetadataMiddleware(historyMetadataService), SessionPrioritizationMiddleware(), -@@ -365,26 +358,6 @@ class Core( +@@ -340,26 +334,6 @@ class Core( // Install the "icons" WebExtension to automatically load icons for every visited website. icons.install(engine, this) @@ -955,7 +1009,7 @@ index 3ab8ea1acd..b78948b079 100644 WebNotificationFeature( context, engine, -@@ -425,18 +398,6 @@ class Core( +@@ -405,18 +379,6 @@ class Core( BrowserIcons(context, client) } @@ -974,7 +1028,7 @@ index 3ab8ea1acd..b78948b079 100644 /** * Shortcut component for managing shortcuts on the device home screen. */ -@@ -734,7 +695,7 @@ class Core( +@@ -711,7 +673,7 @@ class Core( const val METADATA_SHORTCUT_SUGGESTION_LIMIT = 20 // collection name to fetch from server for SERP telemetry @@ -1078,25 +1132,11 @@ index 36d4b4c349..af2ba6479e 100644 } /** -diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FenixApplication.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FenixApplication.kt -index 6a013a8488..2dc930b5b0 100644 ---- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FenixApplication.kt -+++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FenixApplication.kt -@@ -490,10 +490,6 @@ open class FenixApplication : LocaleAwareApplication(), Provider { - } - - private fun setupCrashReporting() { -- components -- .analytics -- .crashReporter -- .install(this) - } - - protected open fun initializeNimbus() { diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/nimbus/controller/NimbusBranchesController.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/nimbus/controller/NimbusBranchesController.kt +index c1b54d7f27..01fd0d7427 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/nimbus/controller/NimbusBranchesController.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/nimbus/controller/NimbusBranchesController.kt -@@ -42,34 +42,7 @@ +@@ -42,34 +42,7 @@ class NimbusBranchesController( ) : NimbusBranchesAdapterDelegate { override fun onBranchItemClicked(branch: Branch) { @@ -1146,10 +1186,10 @@ index 1c975c33f4..3a8e1519bc 100644 startMetricsIfEnabled( 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 b800c22431..1f218c68fe 100644 +index 8e271198b0..d65fc56a10 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 -@@ -139,8 +139,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -180,8 +180,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { } @VisibleForTesting @@ -1159,7 +1199,7 @@ index b800c22431..1f218c68fe 100644 override val preferences: SharedPreferences = appContext.getSharedPreferences(FENIX_PREFERENCES, MODE_PRIVATE) -@@ -334,48 +333,24 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -375,54 +374,24 @@ class Settings(private val appContext: Context) : PreferencesHolder { default = true, ) @@ -1200,6 +1240,12 @@ index b800c22431..1f218c68fe 100644 - ) + var hasAcceptedTermsOfService = true +- /** +- * The daily usage ping is not normally tied to normal telemetry. We set the default value to +- * [isTelemetryEnabled] because this setting was added in early 2025 and we want to make +- * sure that users who upgrade and had telemetry disabled don't start sending the +- * daily usage ping telemetry. +- */ - var isDailyUsagePingEnabled by booleanPreference( - appContext.getPreferenceKey(R.string.pref_key_daily_usage_ping), - default = isTelemetryEnabled, @@ -1215,7 +1261,7 @@ index b800c22431..1f218c68fe 100644 var isOverrideTPPopupsForPerformanceTest = false -@@ -2274,10 +2249,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -2353,10 +2322,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { * A user preference indicating that crash reports should always be automatically sent. This can be updated * through the unsubmitted crash dialog or through data choice preferences. */ @@ -1228,6 +1274,7 @@ index b800c22431..1f218c68fe 100644 /** * Indicates whether or not we should use the new crash reporter dialog. diff --git a/mobile/android/fenix/app/src/main/res/xml/preferences.xml b/mobile/android/fenix/app/src/main/res/xml/preferences.xml +index 3b85a2a548..67f1cc5976 100644 --- a/mobile/android/fenix/app/src/main/res/xml/preferences.xml +++ b/mobile/android/fenix/app/src/main/res/xml/preferences.xml @@ -146,11 +146,6 @@ @@ -1242,22 +1289,23 @@ diff --git a/mobile/android/fenix/app/src/main/res/xml/preferences.xml b/mobile/ - - -- diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/CrashHandler.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/CrashHandler.java +index eb00f87b41..ce8e2b7a03 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/CrashHandler.java +++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/CrashHandler.java -@@ -38,7 +38,7 @@ +@@ -38,7 +38,7 @@ public class CrashHandler implements Thread.UncaughtExceptionHandler { private static final String LOGTAG = "GeckoCrashHandler"; private static final Thread MAIN_THREAD = Thread.currentThread(); private static final String DEFAULT_SERVER_URL = @@ -1267,10 +1315,11 @@ diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/CrashH // Context for getting device information private @Nullable final Context mAppContext; diff --git a/mobile/android/moz.configure b/mobile/android/moz.configure +index c900501ee6..af9090f357 100644 --- a/mobile/android/moz.configure +++ b/mobile/android/moz.configure -@@ -78,7 +78,7 @@ - set_config("MOZ_ANDROID_SUBPROJECT", android_subproject) +@@ -104,7 +104,7 @@ set_config("MOZ_ANDROID_DEBUGGABLE", android_debuggable) + imply_option("MOZ_NORMANDY", False) -imply_option("MOZ_SERVICES_HEALTHREPORT", True) @@ -1279,9 +1328,10 @@ diff --git a/mobile/android/moz.configure b/mobile/android/moz.configure imply_option("MOZ_APP_UA_NAME", "Firefox") diff --git a/python/mach/mach/telemetry.py b/python/mach/mach/telemetry.py +index 35d6cc4d17..704d1550bc 100644 --- a/python/mach/mach/telemetry.py +++ b/python/mach/mach/telemetry.py -@@ -95,10 +95,7 @@ +@@ -95,10 +95,7 @@ def is_applicable_telemetry_environment(): def is_telemetry_enabled(settings): @@ -1348,9 +1398,10 @@ index 42c16ebb87..95a3af6071 100644 // Don't accidentally send "main" pings during tests. conf.use_core_mps = false; diff --git a/toolkit/components/glean/src/init/viaduct_uploader.rs b/toolkit/components/glean/src/init/viaduct_uploader.rs +index ea5260e5c6..5f5df88dba 100644 --- a/toolkit/components/glean/src/init/viaduct_uploader.rs +++ b/toolkit/components/glean/src/init/viaduct_uploader.rs -@@ -109,7 +109,7 @@ +@@ -109,7 +109,7 @@ fn ohttp_upload(upload_request: PingUploadRequest) -> Result Result Result, ViaductUploaderError> { const OHTTP_CONFIG_URL: &str = @@ -1369,9 +1420,10 @@ diff --git a/toolkit/components/glean/src/init/viaduct_uploader.rs b/toolkit/com let parsed_config_url = Url::parse(OHTTP_CONFIG_URL)?; Ok(Request::get(parsed_config_url).send()?.body) diff --git a/toolkit/components/telemetry/app/TelemetryControllerBase.sys.mjs b/toolkit/components/telemetry/app/TelemetryControllerBase.sys.mjs +index cf0a7bd372..a8b2b03990 100644 --- a/toolkit/components/telemetry/app/TelemetryControllerBase.sys.mjs +++ b/toolkit/components/telemetry/app/TelemetryControllerBase.sys.mjs -@@ -31,7 +31,7 @@ +@@ -31,7 +31,7 @@ var gLogAppenderDump = null; export var TelemetryControllerBase = Object.freeze({ // Whether the FHR/Telemetry unification features are enabled. // Changing this pref requires a restart. @@ -1380,7 +1432,7 @@ diff --git a/toolkit/components/telemetry/app/TelemetryControllerBase.sys.mjs b/ Preferences, -@@ -40,7 +40,7 @@ +@@ -40,7 +40,7 @@ export var TelemetryControllerBase = Object.freeze({ * it correctly evaluates to a boolean type. */ get isTelemetryEnabled() { @@ -1389,7 +1441,7 @@ diff --git a/toolkit/components/telemetry/app/TelemetryControllerBase.sys.mjs b/ }, get log() { -@@ -87,28 +87,8 @@ +@@ -87,28 +87,8 @@ export var TelemetryControllerBase = Object.freeze({ setTelemetryRecordingFlags() { // Enable extended Telemetry on pre-release channels and disable it // on Release/ESR. @@ -1420,7 +1472,7 @@ diff --git a/toolkit/components/telemetry/app/TelemetryControllerBase.sys.mjs b/ }, /** -@@ -125,8 +105,7 @@ +@@ -125,8 +105,7 @@ export var TelemetryControllerBase = Object.freeze({ } else { // We're not on unified Telemetry, stick to the old behaviour for // supporting Fennec. @@ -1431,9 +1483,10 @@ diff --git a/toolkit/components/telemetry/app/TelemetryControllerBase.sys.mjs b/ this.log.config( diff --git a/toolkit/components/telemetry/app/TelemetryReportingPolicy.sys.mjs b/toolkit/components/telemetry/app/TelemetryReportingPolicy.sys.mjs +index a2633986f2..c0678f2d2f 100644 --- a/toolkit/components/telemetry/app/TelemetryReportingPolicy.sys.mjs +++ b/toolkit/components/telemetry/app/TelemetryReportingPolicy.sys.mjs -@@ -280,11 +280,7 @@ +@@ -280,11 +280,7 @@ var TelemetryReportingPolicyImpl = { * false, we never request upload or deletion. */ get dataSubmissionEnabled() { @@ -1446,7 +1499,7 @@ diff --git a/toolkit/components/telemetry/app/TelemetryReportingPolicy.sys.mjs b }, get currentPolicyVersion() { -@@ -340,20 +336,6 @@ +@@ -340,20 +336,6 @@ var TelemetryReportingPolicyImpl = { * false otherwise. */ get isUserNotifiedOfCurrentPolicy() { @@ -1467,7 +1520,7 @@ diff --git a/toolkit/components/telemetry/app/TelemetryReportingPolicy.sys.mjs b return true; }, -@@ -407,19 +389,7 @@ +@@ -407,19 +389,7 @@ var TelemetryReportingPolicyImpl = { * @return {Boolean} True if we are allowed to upload data, false otherwise. */ canUpload() { @@ -1488,7 +1541,7 @@ diff --git a/toolkit/components/telemetry/app/TelemetryReportingPolicy.sys.mjs b }, isFirstRun() { -@@ -446,32 +416,7 @@ +@@ -446,32 +416,7 @@ var TelemetryReportingPolicyImpl = { * Determine whether the user should be notified. */ _shouldNotify() { @@ -1522,7 +1575,7 @@ diff --git a/toolkit/components/telemetry/app/TelemetryReportingPolicy.sys.mjs b }, /** -@@ -717,7 +662,7 @@ +@@ -717,7 +662,7 @@ var TelemetryReportingPolicyImpl = { return this._ensureUserIsNotifiedPromise.then(() => { // The user has been notified and interacted with the modal. // Glean can now init on shutdown if necessary. @@ -1532,9 +1585,10 @@ diff --git a/toolkit/components/telemetry/app/TelemetryReportingPolicy.sys.mjs b }, diff --git a/toolkit/components/telemetry/app/UsageReporting.sys.mjs b/toolkit/components/telemetry/app/UsageReporting.sys.mjs +index 6134754282..c0da15a006 100644 --- a/toolkit/components/telemetry/app/UsageReporting.sys.mjs +++ b/toolkit/components/telemetry/app/UsageReporting.sys.mjs -@@ -34,21 +34,18 @@ +@@ -34,21 +34,18 @@ export var UsageReporting = { this._initPromise = (async () => { let profileID = await lazy.ClientID.getUsageProfileID(); @@ -1559,7 +1613,7 @@ diff --git a/toolkit/components/telemetry/app/UsageReporting.sys.mjs b/toolkit/c if ( uploadEnabled && -@@ -103,10 +100,7 @@ +@@ -103,10 +100,7 @@ export var UsageReporting = { return; } @@ -1571,7 +1625,7 @@ diff --git a/toolkit/components/telemetry/app/UsageReporting.sys.mjs b/toolkit/c if (uploadEnabled) { // Rising edge: enable "usage-reporting" ping. -@@ -137,17 +131,14 @@ +@@ -137,17 +131,14 @@ export var UsageReporting = { * preference. */ adoptDataReportingPreference() { @@ -1618,9 +1672,10 @@ index 8473b3a191..0556e35e1f 100644 #endif #ifdef MOZ_BACKGROUNDTASKS diff --git a/toolkit/components/telemetry/core/TelemetryCommon.cpp b/toolkit/components/telemetry/core/TelemetryCommon.cpp +index a52d8e0a64..9bec7accff 100644 --- a/toolkit/components/telemetry/core/TelemetryCommon.cpp +++ b/toolkit/components/telemetry/core/TelemetryCommon.cpp -@@ -50,14 +50,13 @@ +@@ -50,14 +50,13 @@ bool CanRecordDataset(uint32_t aDataset, bool aCanRecordBase, // If we are extended telemetry is enabled, we are allowed to record // regardless of the dataset. if (aCanRecordExtended) { @@ -1638,6 +1693,20 @@ diff --git a/toolkit/components/telemetry/core/TelemetryCommon.cpp b/toolkit/com } // We're not recording extended telemetry or this is not the base +diff --git a/toolkit/library/rust/gkrust-features.mozbuild b/toolkit/library/rust/gkrust-features.mozbuild +index ef5cd9de55..3af776fb5b 100644 +--- a/toolkit/library/rust/gkrust-features.mozbuild ++++ b/toolkit/library/rust/gkrust-features.mozbuild +@@ -60,8 +60,7 @@ if CONFIG["MOZ_WEBRTC"]: + # We need to tell Glean it is being built with Gecko. + gkrust_features += ["glean_with_gecko"] + +-if not CONFIG["MOZILLA_OFFICIAL"]: +- gkrust_features += ["glean_disable_upload"] ++gkrust_features += ["glean_disable_upload"] + + if CONFIG["MOZ_ENABLE_DBUS"]: + gkrust_features += ["with_dbus"] diff --git a/toolkit/modules/AppConstants.sys.mjs b/toolkit/modules/AppConstants.sys.mjs index bf7a0ec957..291cb3a0ac 100644 --- a/toolkit/modules/AppConstants.sys.mjs @@ -1683,9 +1752,10 @@ index bf7a0ec957..291cb3a0ac 100644 TSAN: @MOZ_TSAN_BOOL@, diff --git a/toolkit/moz.configure b/toolkit/moz.configure +index 09b3065c21..9139596a55 100644 --- a/toolkit/moz.configure +++ b/toolkit/moz.configure -@@ -3278,7 +3278,7 @@ +@@ -3337,7 +3337,7 @@ set_define("MOZ_WINCONSOLE", True, when=depends("MOZ_WINCONSOLE")(lambda x: x)) option( "--with-crashreporter-url", env="MOZ_CRASHREPORTER_URL", @@ -1694,20 +1764,6 @@ diff --git a/toolkit/moz.configure b/toolkit/moz.configure nargs=1, help="Set an alternative crashreporter url", ) -diff --git a/toolkit/library/rust/gkrust-features.mozbuild b/toolkit/library/rust/gkrust-features.mozbuild -index ef5cd9de55..3af776fb5b 100644 ---- a/toolkit/library/rust/gkrust-features.mozbuild -+++ b/toolkit/library/rust/gkrust-features.mozbuild -@@ -60,8 +60,7 @@ if CONFIG["MOZ_WEBRTC"]: - # We need to tell Glean it is being built with Gecko. - gkrust_features += ["glean_with_gecko"] - --if not CONFIG["MOZILLA_OFFICIAL"]: -- gkrust_features += ["glean_disable_upload"] -+gkrust_features += ["glean_disable_upload"] - - if CONFIG["MOZ_ENABLE_DBUS"]: - gkrust_features += ["with_dbus"] diff --git a/tools/@types/substitutions/AppConstants.sys.d.mts b/tools/@types/substitutions/AppConstants.sys.d.mts index 04273576bd..8dc11902b0 100644 --- a/tools/@types/substitutions/AppConstants.sys.d.mts @@ -1748,3 +1804,6 @@ index 04273576bd..8dc11902b0 100644 TSAN: boolean; +-- +2.49.0 + diff --git a/patches/disallow-china-fxa-server.patch b/patches/disallow-china-fxa-server.patch index cfeaec6d..25b24279 100644 --- a/patches/disallow-china-fxa-server.patch +++ b/patches/disallow-china-fxa-server.patch @@ -1,8 +1,20 @@ +From 1f8edfb3826af43f82eeaa3b67b20099b71641cf Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 11:07:49 +0530 +Subject: [PATCH] fix(patches): update 'disallow-china-fxa-server.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../app/src/main/java/org/mozilla/fenix/utils/Settings.kt | 5 +---- + mobile/android/fenix/app/src/main/res/xml/preferences.xml | 3 ++- + 2 files changed, 3 insertions(+), 5 deletions(-) + 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 b800c22431..e57e97d563 100644 +index 8e271198b0..8fced30ff5 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 -@@ -1385,10 +1385,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1465,10 +1465,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { }, ) @@ -28,3 +40,6 @@ index 3b85a2a548..bdc745a90b 100644 +Date: Mon, 28 Apr 2025 11:08:17 +0530 +Subject: [PATCH] fix(patches): update + 'domain-highlighting-and-alignment.patch' for 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../browser/toolbar/display/OriginView.kt | 28 ++++++++++++++++++- + .../components/concept/toolbar/Toolbar.kt | 9 ++++++ + .../feature/toolbar/internal/URLRenderer.kt | 11 +++++--- + .../components/toolbar/ToolbarIntegration.kt | 3 +- + 4 files changed, 45 insertions(+), 6 deletions(-) + diff --git a/mobile/android/android-components/components/browser/toolbar/src/main/java/mozilla/components/browser/toolbar/display/OriginView.kt b/mobile/android/android-components/components/browser/toolbar/src/main/java/mozilla/components/browser/toolbar/display/OriginView.kt index 506f8b3c6b..b53b31ad63 100644 --- a/mobile/android/android-components/components/browser/toolbar/src/main/java/mozilla/components/browser/toolbar/display/OriginView.kt @@ -71,7 +66,7 @@ index 506f8b3c6b..b53b31ad63 100644 /** * Sets the colour of the text to be displayed when the URL of the toolbar is empty. diff --git a/mobile/android/android-components/components/concept/toolbar/src/main/java/mozilla/components/concept/toolbar/Toolbar.kt b/mobile/android/android-components/components/concept/toolbar/src/main/java/mozilla/components/concept/toolbar/Toolbar.kt -index 506921d194..f1eda4d28f 100644 +index 77ffea44d7..8bdfaea7a5 100644 --- a/mobile/android/android-components/components/concept/toolbar/src/main/java/mozilla/components/concept/toolbar/Toolbar.kt +++ b/mobile/android/android-components/components/concept/toolbar/src/main/java/mozilla/components/concept/toolbar/Toolbar.kt @@ -5,11 +5,13 @@ @@ -88,7 +83,7 @@ index 506921d194..f1eda4d28f 100644 import androidx.annotation.ColorRes import androidx.annotation.Dimension import androidx.annotation.Dimension.Companion.DP -@@ -544,6 +546,13 @@ interface Toolbar : ScrollableToolbar { +@@ -548,6 +550,13 @@ interface Toolbar : ScrollableToolbar { */ END, } @@ -103,7 +98,7 @@ index 506921d194..f1eda4d28f 100644 private fun AppCompatImageButton.setTintResource(@ColorRes tintColorResource: Int) { diff --git a/mobile/android/android-components/components/feature/toolbar/src/main/java/mozilla/components/feature/toolbar/internal/URLRenderer.kt b/mobile/android/android-components/components/feature/toolbar/src/main/java/mozilla/components/feature/toolbar/internal/URLRenderer.kt -index 52adb9e999..6b90c21e4b 100644 +index 53dcdf7bb9..83762aac98 100644 --- a/mobile/android/android-components/components/feature/toolbar/src/main/java/mozilla/components/feature/toolbar/internal/URLRenderer.kt +++ b/mobile/android/android-components/components/feature/toolbar/src/main/java/mozilla/components/feature/toolbar/internal/URLRenderer.kt @@ -98,16 +98,19 @@ private suspend fun SpannableStringBuilder.colorRegistrableDomain( @@ -130,81 +125,19 @@ index 52adb9e999..6b90c21e4b 100644 index, index + registrableDomain.length, SPAN_INCLUSIVE_INCLUSIVE, -diff --git a/mobile/android/android-components/components/support/ktx/src/main/java/mozilla/components/support/ktx/kotlin/CharSequence.kt b/mobile/android/android-components/components/support/ktx/src/main/java/mozilla/components/support/ktx/kotlin/CharSequence.kt -new file mode 100644 -index 0000000000..f8cf24fc52 ---- /dev/null -+++ b/mobile/android/android-components/components/support/ktx/src/main/java/mozilla/components/support/ktx/kotlin/CharSequence.kt -@@ -0,0 +1,13 @@ -+/* This Source Code Form is subject to the terms of the Mozilla Public -+ * License, v. 2.0. If a copy of the MPL was not distributed with this -+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -+ -+package mozilla.components.support.ktx.kotlin -+ -+/** -+ * Returns a trimmed CharSequence. This is used to prevent extreme cases -+ * from slowing down UI rendering with large strings. -+ */ -+fun CharSequence.trimmed(): CharSequence { -+ return this.take(MAX_URI_LENGTH) -+} -diff --git a/mobile/android/android-components/components/support/utils/src/main/java/mozilla/components/support/ktx/util/URLStringUtils.kt b/mobile/android/android-components/components/support/utils/src/main/java/mozilla/components/support/ktx/util/URLStringUtils.kt -index e199f825e0..8ecf667786 100644 ---- a/mobile/android/android-components/components/support/utils/src/main/java/mozilla/components/support/ktx/util/URLStringUtils.kt -+++ b/mobile/android/android-components/components/support/utils/src/main/java/mozilla/components/support/ktx/util/URLStringUtils.kt -@@ -123,22 +123,15 @@ object URLStringUtils { - } - - private fun maybeStripUrlProtocol(url: CharSequence): CharSequence { -- var noPrefixUrl = url -- if (url.toString().startsWith(HTTPS)) { -- noPrefixUrl = maybeStripUrlSubDomain(url.toString().replaceFirst(HTTPS, "")) -- } else if (url.toString().startsWith(HTTP)) { -- noPrefixUrl = maybeStripUrlSubDomain(url.toString().replaceFirst(HTTP, "")) -+ if (url.startsWith(HTTPS)) { -+ return maybeStripUrlSubDomain(url.removePrefix(HTTPS)) -+ } else if (url.startsWith(HTTP)) { -+ return maybeStripUrlSubDomain(url.removePrefix(HTTP)) - } -- return noPrefixUrl -+ return url - } - -- private fun maybeStripUrlSubDomain(url: CharSequence): CharSequence { -- return if (url.toString().startsWith(WWW)) { -- url.toString().replaceFirst(WWW, "") -- } else { -- url -- } -- } -+ private fun maybeStripUrlSubDomain(url: CharSequence): CharSequence = url.removePrefix(WWW) - - private fun maybeStripTrailingSlash(url: CharSequence): CharSequence { - return url.trimEnd('/') diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/ToolbarIntegration.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/ToolbarIntegration.kt -index 36b6017b7d..16332ef912 100644 +index 86b6454dac..16332ef912 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/ToolbarIntegration.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/ToolbarIntegration.kt -@@ -20,6 +20,7 @@ import mozilla.components.feature.toolbar.ToolbarBehaviorController - import mozilla.components.feature.toolbar.ToolbarFeature - import mozilla.components.feature.toolbar.ToolbarPresenter - import mozilla.components.support.base.feature.LifecycleAwareFeature -+import mozilla.components.support.ktx.android.content.getColorFromAttr - import mozilla.components.support.ktx.android.view.hideKeyboard - import mozilla.components.ui.tabcounter.TabCounterMenu - import mozilla.telemetry.glean.private.NoExtras -@@ -58,7 +59,8 @@ abstract class ToolbarIntegration( - shouldDisplaySearchTerms = true, +@@ -60,6 +60,7 @@ abstract class ToolbarIntegration( urlRenderConfiguration = ToolbarFeature.UrlRenderConfiguration( context.components.publicSuffixList, -- ThemeManager.resolveAttribute(R.attr.textPrimary, context), -+ context.getColorFromAttr(R.attr.textPrimary), + context.getColorFromAttr(R.attr.textPrimary), + context.getColorFromAttr(R.attr.textSecondary), renderStyle = renderStyle, ), ) -@@ -141,7 +143,7 @@ class DefaultToolbarIntegration( +@@ -142,7 +143,7 @@ class DefaultToolbarIntegration( interactor = interactor, customTabId = customTabId, isPrivate = isPrivate, @@ -213,4 +146,6 @@ index 36b6017b7d..16332ef912 100644 ) { @VisibleForTesting +-- +2.49.0 diff --git a/patches/enable-felt-privacy.patch b/patches/enable-felt-privacy.patch index fce28edd..05e53986 100644 --- a/patches/enable-felt-privacy.patch +++ b/patches/enable-felt-privacy.patch @@ -1,8 +1,19 @@ +From 1a7abcf332dbdd234dada4574129ed92cd8aaf2b Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 11:10:01 +0530 +Subject: [PATCH] fix(patches): update 'enable-felt-privacy.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../app/src/main/java/org/mozilla/fenix/utils/Settings.kt | 7 ++----- + 1 file changed, 2 insertions(+), 5 deletions(-) + 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 b800c22431..ea5b12a62a 100644 +index 8e271198b0..d222c09283 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 -@@ -1786,12 +1786,9 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1876,12 +1876,9 @@ class Settings(private val appContext: Context) : PreferencesHolder { default = true, ) @@ -17,3 +28,6 @@ index b800c22431..ea5b12a62a 100644 ) /** +-- +2.49.0 + diff --git a/patches/enable-light-mode-by-default.patch b/patches/enable-light-mode-by-default.patch index 1c34c0bd..d3a0c177 100644 --- a/patches/enable-light-mode-by-default.patch +++ b/patches/enable-light-mode-by-default.patch @@ -1,8 +1,20 @@ +From 5b8748101ca747d2b302db3b64e7aadcc5e299f1 Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 11:10:35 +0530 +Subject: [PATCH] fix(patches): update 'enable-light-mode-by-default.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../app/src/main/java/org/mozilla/fenix/utils/Settings.kt | 2 +- + .../fenix/app/src/main/res/xml/customization_preferences.xml | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + 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 7a402c5a8f..d7cb677746 100644 +index 8e271198b0..a4c4a7a819 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 -@@ -379,7 +379,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -450,7 +450,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { var shouldUseLightTheme by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_light_theme), @@ -33,3 +45,6 @@ index a24d1b7b2b..ea441ea576 100644 android:key="@string/pref_key_follow_device_theme" android:title="@string/preference_follow_device_theme" app:isPreferenceVisible="@bool/API28" /> +-- +2.49.0 + diff --git a/patches/enable-secret-settings.patch b/patches/enable-secret-settings.patch index e256f4bd..345a3a54 100644 --- a/patches/enable-secret-settings.patch +++ b/patches/enable-secret-settings.patch @@ -1,8 +1,20 @@ +From bc1c2f825f941b2b86eb532d37ed987456e472cb Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 11:10:57 +0530 +Subject: [PATCH] fix(patches): update 'enable-secret-settings.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../mozilla/fenix/settings/SecretSettingsFragment.kt | 10 +++++----- + .../src/main/java/org/mozilla/fenix/utils/Settings.kt | 6 +++--- + 2 files changed, 8 insertions(+), 8 deletions(-) + diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt -index 3d7ff49e55..2ded89d1b7 100644 +index aafe4dbe47..16aff0d730 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt -@@ -61,13 +61,13 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { +@@ -62,13 +62,13 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { } requirePreference(R.string.pref_key_toolbar_show_navigation_toolbar).apply { @@ -18,7 +30,7 @@ index 3d7ff49e55..2ded89d1b7 100644 isChecked = context.settings().enableComposeTopSites onPreferenceChangeListener = SharedPreferenceUpdater() } -@@ -84,13 +84,13 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { +@@ -90,7 +90,7 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { } requirePreference(R.string.pref_key_enable_menu_redesign).apply { @@ -27,6 +39,8 @@ index 3d7ff49e55..2ded89d1b7 100644 isChecked = context.settings().enableMenuRedesign onPreferenceChangeListener = SharedPreferenceUpdater() } +@@ -102,7 +102,7 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { + } requirePreference(R.string.pref_key_enable_homepage_as_new_tab).apply { - isVisible = Config.channel.isNightlyOrDebug @@ -34,7 +48,7 @@ index 3d7ff49e55..2ded89d1b7 100644 isChecked = context.settings().enableHomepageAsNewTab onPreferenceChangeListener = SharedPreferenceUpdater() } -@@ -116,7 +116,7 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { +@@ -128,7 +128,7 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { } requirePreference(R.string.pref_key_enable_unified_trust_panel).apply { @@ -44,10 +58,10 @@ index 3d7ff49e55..2ded89d1b7 100644 onPreferenceChangeListener = SharedPreferenceUpdater() } 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 b800c22431..e4f736ae08 100644 +index 8e271198b0..3647077175 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 -@@ -1908,7 +1908,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1998,7 +1998,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { */ var enableComposeTopSites by booleanPreference( key = appContext.getPreferenceKey(R.string.pref_key_enable_compose_top_sites), @@ -56,7 +70,7 @@ index b800c22431..e4f736ae08 100644 ) /** -@@ -1934,7 +1934,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -2024,7 +2024,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { */ var enableHomepageAsNewTab by booleanPreference( key = appContext.getPreferenceKey(R.string.pref_key_enable_homepage_as_new_tab), @@ -65,7 +79,7 @@ index b800c22431..e4f736ae08 100644 ) /** -@@ -1942,7 +1942,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -2041,7 +2041,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { */ var enableUnifiedTrustPanel by booleanPreference( key = appContext.getPreferenceKey(R.string.pref_key_enable_unified_trust_panel), @@ -74,3 +88,6 @@ index b800c22431..e4f736ae08 100644 ) /** +-- +2.49.0 + diff --git a/patches/enable-tab-strip.patch b/patches/enable-tab-strip.patch index 7a8275a8..23697924 100644 --- a/patches/enable-tab-strip.patch +++ b/patches/enable-tab-strip.patch @@ -1,5 +1,16 @@ +From 7ac68cc4b7b0e4d1142a3f5168ffd963da7055ba Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 11:11:18 +0530 +Subject: [PATCH] fix(patches): update 'enable-tab-strip.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../org/mozilla/fenix/browser/tabstrip/TabStripFeatureFlag.kt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/tabstrip/TabStripFeatureFlag.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/tabstrip/TabStripFeatureFlag.kt -index 495024dad1..cb6b7b9b52 100644 +index d60328df75..5ee0a0c4da 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/tabstrip/TabStripFeatureFlag.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/tabstrip/TabStripFeatureFlag.kt @@ -21,7 +21,7 @@ fun Context.isTabStripEnabled(): Boolean = @@ -11,3 +22,6 @@ index 495024dad1..cb6b7b9b52 100644 /** * Returns true if the the device has the prerequisites to enable the tab strip. +-- +2.49.0 + diff --git a/patches/expose-aboutconfig.patch b/patches/expose-aboutconfig.patch index 77e33213..33bd4248 100644 --- a/patches/expose-aboutconfig.patch +++ b/patches/expose-aboutconfig.patch @@ -1,3 +1,14 @@ +From 86f552f16db1ac0aab830fe6b6ce4c360242a3ac Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 11:12:12 +0530 +Subject: [PATCH] fix(patches): update 'expose-aboutconfig.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + docshell/base/nsAboutRedirector.cpp | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + diff --git a/docshell/base/nsAboutRedirector.cpp b/docshell/base/nsAboutRedirector.cpp index e95ff966b3..d8b92dc9e1 100644 --- a/docshell/base/nsAboutRedirector.cpp @@ -12,3 +23,6 @@ index e95ff966b3..d8b92dc9e1 100644 #endif #ifdef MOZ_CRASHREPORTER {"crashes", "chrome://global/content/crashes.html", +-- +2.49.0 + diff --git a/patches/extension-recommendations.patch b/patches/extension-recommendations.patch index 62306d0c..bc871953 100644 --- a/patches/extension-recommendations.patch +++ b/patches/extension-recommendations.patch @@ -1,7 +1,20 @@ +From 887f540ee85f9dca096eb85d4ab865d0b1c4bfb9 Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 11:12:45 +0530 +Subject: [PATCH] fix(patches): update 'extension-recommendations.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../fenix/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt | 2 +- + .../app/src/main/java/org/mozilla/fenix/utils/Settings.kt | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt +index 7f435ae784..1e4013c699 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt -@@ -18,7 +18,7 @@ +@@ -18,7 +18,7 @@ object FeatureFlags { * This feature does not only depend on this flag. It requires the AMO collection override to * be enabled which is behind the Secret Settings. * */ @@ -11,10 +24,10 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FeatureFla /** * Pull-to-refresh allows you to pull the web content down far enough to have the page to 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 807c5c2..450fa37 100644 +index 8e271198b0..d257385afa 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 -@@ -1376,12 +1376,12 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1492,12 +1492,12 @@ class Settings(private val appContext: Context) : PreferencesHolder { var overrideAmoUser by stringPreference( appContext.getPreferenceKey(R.string.pref_key_override_amo_user), @@ -29,3 +42,6 @@ index 807c5c2..450fa37 100644 ) var enableGeckoLogs by booleanPreference( +-- +2.49.0 + diff --git a/patches/fenix-liberate.patch b/patches/fenix-liberate.patch index 4d414dc4..eb41ef68 100644 --- a/patches/fenix-liberate.patch +++ b/patches/fenix-liberate.patch @@ -1,7 +1,51 @@ +From 26252f9ab4a23d81e73a5f96d24bc0c66dc81b7c Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 11:13:09 +0530 +Subject: [PATCH] fix(patches): update 'fenix-liberate.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../android-components/.buildconfig.yml | 11 --- + mobile/android/fenix/.buildconfig.yml | 1 - + mobile/android/fenix/app/build.gradle | 11 --- + mobile/android/fenix/app/proguard-rules.pro | 77 ++------------- + .../src/main/java/com/adjust/sdk/Adjust.java | 47 +++++++++ + .../com/adjust/sdk/AdjustAttribution.java | 49 ++++++++++ + .../java/com/adjust/sdk/AdjustConfig.java | 49 ++++++++++ + .../main/java/com/adjust/sdk/AdjustEvent.java | 31 ++++++ + .../main/java/com/adjust/sdk/Constants.java | 18 ++++ + .../main/java/com/adjust/sdk/LogLevel.java | 43 +++++++++ + .../sdk/OnAttributionChangedListener.java | 29 ++++++ + .../messaging/FirebaseMessagingService.java | 42 ++++++++ + .../firebase/messaging/RemoteMessage.java | 33 +++++++ + .../firebase/AbstractFirebasePushService.kt | 32 +++++++ + .../mozilla/fenix/components/Components.kt | 3 - + .../components/ReviewPromptController.kt | 19 +--- + .../metrics/InstallReferrerMetricsService.kt | 95 +------------------ + .../metrics/MarketingAttributionService.kt | 64 +------------ + .../fenix/components/metrics/MetricsUtils.kt | 25 +---- + .../java/org/mozilla/fenix/utils/Settings.kt | 5 +- + ...issions_details_exceptions_preferences.xml | 6 +- + .../res/xml/site_permissions_preferences.xml | 1 + + mobile/android/focus-android/app/build.gradle | 4 - + 23 files changed, 393 insertions(+), 302 deletions(-) + create mode 100644 mobile/android/fenix/app/src/main/java/com/adjust/sdk/Adjust.java + create mode 100644 mobile/android/fenix/app/src/main/java/com/adjust/sdk/AdjustAttribution.java + create mode 100644 mobile/android/fenix/app/src/main/java/com/adjust/sdk/AdjustConfig.java + create mode 100644 mobile/android/fenix/app/src/main/java/com/adjust/sdk/AdjustEvent.java + create mode 100644 mobile/android/fenix/app/src/main/java/com/adjust/sdk/Constants.java + create mode 100644 mobile/android/fenix/app/src/main/java/com/adjust/sdk/LogLevel.java + create mode 100644 mobile/android/fenix/app/src/main/java/com/adjust/sdk/OnAttributionChangedListener.java + create mode 100644 mobile/android/fenix/app/src/main/java/com/google/firebase/messaging/FirebaseMessagingService.java + create mode 100644 mobile/android/fenix/app/src/main/java/com/google/firebase/messaging/RemoteMessage.java + create mode 100644 mobile/android/fenix/app/src/main/java/mozilla/components/lib/push/firebase/AbstractFirebasePushService.kt + diff --git a/mobile/android/android-components/.buildconfig.yml b/mobile/android/android-components/.buildconfig.yml +index 26e76a18d2..57f282c175 100644 --- a/mobile/android/android-components/.buildconfig.yml +++ b/mobile/android/android-components/.buildconfig.yml -@@ -1586,16 +1586,6 @@ +@@ -1669,17 +1669,6 @@ projects: - support-base - support-test - tooling-lint @@ -11,6 +55,7 @@ diff --git a/mobile/android/android-components/.buildconfig.yml b/mobile/android - publish: true - upstream_dependencies: - - concept-base +- - concept-fetch - - concept-push - - support-base - - support-test @@ -18,42 +63,11 @@ diff --git a/mobile/android/android-components/.buildconfig.yml b/mobile/android lib-state: description: A library for maintaining application state. path: components/lib/state -diff --git a/mobile/android/android-components/plugins/dependencies/src/main/java/DependenciesPlugin.kt b/mobile/android/android-components/plugins/dependencies/src/main/java/DependenciesPlugin.kt ---- a/mobile/android/android-components/plugins/dependencies/src/main/java/DependenciesPlugin.kt -+++ b/mobile/android/android-components/plugins/dependencies/src/main/java/DependenciesPlugin.kt -@@ -89,13 +89,8 @@ - const val protobuf_plugin = "0.9.4" - object Google { - const val accompanist = "0.37.0" -- const val firebase_messaging = "24.1.0" - const val material = "1.12.0" - const val osslicenses_plugin = "0.10.6" -- const val play_review = "2.0.2" -- const val play_services_ads_id = "18.1.0" -- const val play_services_base = "18.5.0" -- const val play_services_fido = "21.1.0" - const val protobuf = "4.29.0" // Keep Protobuf in sync with the version used by AppServices. - } - -@@ -272,14 +267,8 @@ - const val thirdparty_disklrucache = "com.jakewharton:disklrucache:${Versions.disklrucache}" - const val thirdparty_androidsvg = "com.caverock:androidsvg-aar:${Versions.androidsvg}" - -- const val firebase_messaging = "com.google.firebase:firebase-messaging:${Versions.Google.firebase_messaging}" - - const val osslicenses_plugin = "com.google.android.gms:oss-licenses-plugin:${Versions.Google.osslicenses_plugin}" -- const val play_review = "com.google.android.play:review:${Versions.Google.play_review}" -- const val play_review_ktx = "com.google.android.play:review-ktx:${Versions.Google.play_review}" -- const val play_services_ads_id = "com.google.android.gms:play-services-ads-identifier:${Versions.Google.play_services_ads_id}" -- const val play_services_base = "com.google.android.gms:play-services-base:${Versions.Google.play_services_base}" -- const val play_services_fido = "com.google.android.gms:play-services-fido:${Versions.Google.play_services_fido}" - const val protobuf_compiler = "com.google.protobuf:protoc:${Versions.Google.protobuf}" - const val protobuf_javalite = "com.google.protobuf:protobuf-javalite:${Versions.Google.protobuf}" - } diff --git a/mobile/android/fenix/.buildconfig.yml b/mobile/android/fenix/.buildconfig.yml +index b5aa2ce3a4..45a339cd9f 100644 --- a/mobile/android/fenix/.buildconfig.yml +++ b/mobile/android/fenix/.buildconfig.yml -@@ -64,7 +64,6 @@ +@@ -65,7 +65,6 @@ projects: - lib-crash-sentry - lib-dataprotect - lib-publicsuffixlist @@ -62,9 +76,10 @@ diff --git a/mobile/android/fenix/.buildconfig.yml b/mobile/android/fenix/.build - service-digitalassetlinks - service-firefox-accounts diff --git a/mobile/android/fenix/app/build.gradle b/mobile/android/fenix/app/build.gradle +index 7535453460..091d7ad06f 100644 --- a/mobile/android/fenix/app/build.gradle +++ b/mobile/android/fenix/app/build.gradle -@@ -657,7 +657,6 @@ +@@ -665,7 +665,6 @@ dependencies { implementation project(':lib-crash') implementation project(':lib-crash-sentry') @@ -72,30 +87,31 @@ diff --git a/mobile/android/fenix/app/build.gradle b/mobile/android/fenix/app/bu implementation project(':lib-state') implementation project(':lib-dataprotect') testImplementation project(':support-test-fakes') -@@ -708,16 +707,6 @@ - implementation ComponentsDependencies.protobuf_javalite - implementation ComponentsDependencies.google_material +@@ -716,16 +715,6 @@ dependencies { + implementation libs.protobuf.javalite + implementation libs.google.material - implementation(libs.adjust) - implementation(libs.installreferrer) - - // Required for the Google Advertising ID -- implementation ComponentsDependencies.play_services_ads_id +- implementation libs.play.services.ads.id - - // Required for in-app reviews -- implementation ComponentsDependencies.play_review -- implementation ComponentsDependencies.play_review_ktx +- implementation libs.play.review +- implementation libs.play.review.ktx - - androidTestImplementation ComponentsDependencies.testing_fastlane - androidTestImplementation ComponentsDependencies.testing_falcon + implementation ComponentsDependencies.mozilla_appservices_init_rust_components + androidTestImplementation(libs.androidx.espresso.contrib) { diff --git a/mobile/android/fenix/app/proguard-rules.pro b/mobile/android/fenix/app/proguard-rules.pro +index 982ef996de..e592dbfdca 100644 --- a/mobile/android/fenix/app/proguard-rules.pro +++ b/mobile/android/fenix/app/proguard-rules.pro -@@ -1,23 +1,6 @@ +@@ -1,22 +1,5 @@ -dontobfuscate - #################################################################################################### +-#################################################################################################### -# Sentry -#################################################################################################### - @@ -112,10 +128,9 @@ diff --git a/mobile/android/fenix/app/proguard-rules.pro b/mobile/android/fenix/ -# If Sentry ever mysteriously stops working after we upgrade it, this could be why. --keep class io.sentry.event.Event { *; } - --#################################################################################################### + #################################################################################################### # Android and GeckoView built-ins #################################################################################################### - @@ -69,58 +52,6 @@ -keep class org.mozilla.fenix.**ViewModel { *; } @@ -189,6 +204,7 @@ diff --git a/mobile/android/fenix/app/proguard-rules.pro b/mobile/android/fenix/ +-dontwarn org.checkerframework.checker.nullness.qual.RequiresNonNull diff --git a/mobile/android/fenix/app/src/main/java/com/adjust/sdk/Adjust.java b/mobile/android/fenix/app/src/main/java/com/adjust/sdk/Adjust.java new file mode 100644 +index 0000000000..ec7ad9bc42 --- /dev/null +++ b/mobile/android/fenix/app/src/main/java/com/adjust/sdk/Adjust.java @@ -0,0 +1,47 @@ @@ -241,6 +257,7 @@ new file mode 100644 +} diff --git a/mobile/android/fenix/app/src/main/java/com/adjust/sdk/AdjustAttribution.java b/mobile/android/fenix/app/src/main/java/com/adjust/sdk/AdjustAttribution.java new file mode 100644 +index 0000000000..ab6b3badbd --- /dev/null +++ b/mobile/android/fenix/app/src/main/java/com/adjust/sdk/AdjustAttribution.java @@ -0,0 +1,49 @@ @@ -295,6 +312,7 @@ new file mode 100644 +} diff --git a/mobile/android/fenix/app/src/main/java/com/adjust/sdk/AdjustConfig.java b/mobile/android/fenix/app/src/main/java/com/adjust/sdk/AdjustConfig.java new file mode 100644 +index 0000000000..4ba8a2711f --- /dev/null +++ b/mobile/android/fenix/app/src/main/java/com/adjust/sdk/AdjustConfig.java @@ -0,0 +1,49 @@ @@ -349,6 +367,7 @@ new file mode 100644 +} diff --git a/mobile/android/fenix/app/src/main/java/com/adjust/sdk/AdjustEvent.java b/mobile/android/fenix/app/src/main/java/com/adjust/sdk/AdjustEvent.java new file mode 100644 +index 0000000000..0b4d80ed4b --- /dev/null +++ b/mobile/android/fenix/app/src/main/java/com/adjust/sdk/AdjustEvent.java @@ -0,0 +1,31 @@ @@ -385,6 +404,7 @@ new file mode 100644 +} diff --git a/mobile/android/fenix/app/src/main/java/com/adjust/sdk/Constants.java b/mobile/android/fenix/app/src/main/java/com/adjust/sdk/Constants.java new file mode 100644 +index 0000000000..bfaeee26e8 --- /dev/null +++ b/mobile/android/fenix/app/src/main/java/com/adjust/sdk/Constants.java @@ -0,0 +1,18 @@ @@ -408,6 +428,7 @@ new file mode 100644 +} diff --git a/mobile/android/fenix/app/src/main/java/com/adjust/sdk/LogLevel.java b/mobile/android/fenix/app/src/main/java/com/adjust/sdk/LogLevel.java new file mode 100644 +index 0000000000..27ac3de544 --- /dev/null +++ b/mobile/android/fenix/app/src/main/java/com/adjust/sdk/LogLevel.java @@ -0,0 +1,43 @@ @@ -456,6 +477,7 @@ new file mode 100644 +} diff --git a/mobile/android/fenix/app/src/main/java/com/adjust/sdk/OnAttributionChangedListener.java b/mobile/android/fenix/app/src/main/java/com/adjust/sdk/OnAttributionChangedListener.java new file mode 100644 +index 0000000000..7efa1c6804 --- /dev/null +++ b/mobile/android/fenix/app/src/main/java/com/adjust/sdk/OnAttributionChangedListener.java @@ -0,0 +1,29 @@ @@ -490,6 +512,7 @@ new file mode 100644 +} diff --git a/mobile/android/fenix/app/src/main/java/com/google/firebase/messaging/FirebaseMessagingService.java b/mobile/android/fenix/app/src/main/java/com/google/firebase/messaging/FirebaseMessagingService.java new file mode 100644 +index 0000000000..4d5fd8153d --- /dev/null +++ b/mobile/android/fenix/app/src/main/java/com/google/firebase/messaging/FirebaseMessagingService.java @@ -0,0 +1,42 @@ @@ -537,6 +560,7 @@ new file mode 100644 +} diff --git a/mobile/android/fenix/app/src/main/java/com/google/firebase/messaging/RemoteMessage.java b/mobile/android/fenix/app/src/main/java/com/google/firebase/messaging/RemoteMessage.java new file mode 100644 +index 0000000000..9ad59a31e4 --- /dev/null +++ b/mobile/android/fenix/app/src/main/java/com/google/firebase/messaging/RemoteMessage.java @@ -0,0 +1,33 @@ @@ -575,6 +599,7 @@ new file mode 100644 +} diff --git a/mobile/android/fenix/app/src/main/java/mozilla/components/lib/push/firebase/AbstractFirebasePushService.kt b/mobile/android/fenix/app/src/main/java/mozilla/components/lib/push/firebase/AbstractFirebasePushService.kt new file mode 100644 +index 0000000000..b50a6f03a2 --- /dev/null +++ b/mobile/android/fenix/app/src/main/java/mozilla/components/lib/push/firebase/AbstractFirebasePushService.kt @@ -0,0 +1,32 @@ @@ -611,17 +636,19 @@ new file mode 100644 + } +} diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Components.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Components.kt +index af5cb6d286..384cfa39e0 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Components.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Components.kt -@@ -10,7 +10,6 @@ +@@ -10,8 +10,6 @@ import android.content.Context import androidx.compose.runtime.Composable import androidx.compose.ui.platform.LocalContext import androidx.core.app.NotificationManagerCompat -import com.google.android.play.core.review.ReviewManagerFactory +-import mozilla.appservices.remotesettings.RemoteSettingsServer import mozilla.components.feature.addons.AddonManager import mozilla.components.feature.addons.amo.AMOAddonsProvider import mozilla.components.feature.addons.migration.DefaultSupportedAddonsChecker -@@ -180,7 +179,6 @@ +@@ -183,7 +181,6 @@ class Components(private val context: Context) { val reviewPromptController by lazyMonitored { ReviewPromptController( @@ -630,9 +657,10 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components ) } diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/ReviewPromptController.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/ReviewPromptController.kt +index 33e8704adc..ffa85e3e46 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/ReviewPromptController.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/ReviewPromptController.kt -@@ -6,8 +6,6 @@ +@@ -6,8 +6,6 @@ package org.mozilla.fenix.components import android.app.Activity import androidx.annotation.VisibleForTesting @@ -641,7 +669,7 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components import kotlinx.coroutines.Dispatchers.Main import kotlinx.coroutines.withContext import org.mozilla.fenix.GleanMetrics.ReviewPrompt -@@ -45,24 +43,9 @@ +@@ -45,24 +43,9 @@ class FenixReviewSettings( * Controls the Review Prompt behavior. */ class ReviewPromptController( @@ -668,24 +696,29 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components ) { @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/metrics/InstallReferrerMetricsService.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/metrics/InstallReferrerMetricsService.kt +index 233855f4c2..aee0db7f60 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/metrics/InstallReferrerMetricsService.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/metrics/InstallReferrerMetricsService.kt -@@ -6,14 +6,10 @@ +@@ -6,18 +6,10 @@ package org.mozilla.fenix.components.metrics import android.content.Context import android.os.RemoteException -import com.android.installreferrer.api.InstallReferrerClient -import com.android.installreferrer.api.InstallReferrerStateListener +-import kotlinx.coroutines.CoroutineScope +-import kotlinx.coroutines.Dispatchers +-import kotlinx.coroutines.launch import mozilla.components.support.base.log.logger.Logger import org.json.JSONException import org.json.JSONObject import org.mozilla.fenix.FeatureFlags -import org.mozilla.fenix.GleanMetrics.MetaAttribution +-import org.mozilla.fenix.GleanMetrics.Pings -import org.mozilla.fenix.GleanMetrics.PlayStoreAttribution import org.mozilla.fenix.ext.settings import org.mozilla.fenix.utils.Settings import java.io.UnsupportedEncodingException -@@ -29,83 +25,10 @@ +@@ -33,86 +25,10 @@ class InstallReferrerMetricsService(private val context: Context) : MetricsServi private val logger = Logger("InstallReferrerMetricsService") override val type = MetricServiceType.Data @@ -705,6 +738,7 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components - override fun onInstallReferrerSetupFinished(responseCode: Int) { - PlayStoreAttribution.attributionTime.stopAndAccumulate(timerId) - val firstSession = FirstSessionPing(context) +- PlayStoreAttribution.responseCode.set(responseCode.toString()) - when (responseCode) { - InstallReferrerClient.InstallReferrerResponse.OK -> { - // Connection established. @@ -735,6 +769,7 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components - context.settings().utmParamsKnown = true - - firstSession.checkAndSend() +- triggerPing() - } - - InstallReferrerClient.InstallReferrerResponse.FEATURE_NOT_SUPPORTED, @@ -744,6 +779,7 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components - // unrecoverable errors, but we still want to send the first-session ping. - context.settings().utmParamsKnown = true - firstSession.checkAndSend() +- triggerPing() - } - - InstallReferrerClient.InstallReferrerResponse.SERVICE_UNAVAILABLE -> { @@ -769,7 +805,7 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components } override fun track(event: Event) = Unit -@@ -224,12 +147,6 @@ +@@ -237,12 +153,6 @@ data class UTMParams( return } intoSettings(settings) @@ -782,7 +818,7 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components } } -@@ -324,9 +241,6 @@ +@@ -337,9 +247,6 @@ data class MetaParams( * record META attribution params to telemetry */ fun recordMetaAttribution() { @@ -794,6 +830,7 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components } } diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/metrics/MarketingAttributionService.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/metrics/MarketingAttributionService.kt +index 638eb2e626..6d9c476d4e 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/metrics/MarketingAttributionService.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/metrics/MarketingAttributionService.kt @@ -5,12 +5,7 @@ @@ -809,7 +846,7 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components const val GCLID_PREFIX = "gclid=" const val ADJUST_REFTAG_PREFIX = "adjust_reftag=" -@@ -22,67 +17,17 @@ +@@ -22,67 +17,17 @@ const val ADJUST_REFTAG_PREFIX = "adjust_reftag=" * This should be only used when user has not gone through the onboarding flow. */ class MarketingAttributionService(private val context: Context) { @@ -877,7 +914,7 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components } /** -@@ -90,15 +35,10 @@ +@@ -90,15 +35,10 @@ class MarketingAttributionService(private val context: Context) { * showing the marketing onboarding flow. */ companion object { @@ -896,9 +933,10 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components } } diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/metrics/MetricsUtils.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/metrics/MetricsUtils.kt +index e13ebe821f..05b8d2c5ff 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/metrics/MetricsUtils.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/metrics/MetricsUtils.kt -@@ -7,9 +7,6 @@ +@@ -7,9 +7,6 @@ package org.mozilla.fenix.components.metrics import android.content.Context import android.util.Base64 import androidx.annotation.VisibleForTesting @@ -908,7 +946,7 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import mozilla.components.browser.state.search.SearchEngine -@@ -107,26 +104,8 @@ +@@ -107,26 +104,8 @@ object MetricsUtils { */ @Suppress("TooGenericExceptionCaught") @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) @@ -938,9 +976,10 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components /** 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 8e271198b0..23cb71356f 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 -@@ -1781,10 +1781,7 @@ +@@ -1871,10 +1871,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { /** * Indicates if the marketing onboarding card should be shown to the user. */ @@ -953,6 +992,7 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Sett val feltPrivateBrowsingEnabled by lazyFeatureFlagPreference( key = appContext.getPreferenceKey(R.string.pref_key_should_enable_felt_privacy), diff --git a/mobile/android/fenix/app/src/main/res/xml/site_permissions_details_exceptions_preferences.xml b/mobile/android/fenix/app/src/main/res/xml/site_permissions_details_exceptions_preferences.xml +index 6bb8cfbbe6..1c15b5897c 100644 --- a/mobile/android/fenix/app/src/main/res/xml/site_permissions_details_exceptions_preferences.xml +++ b/mobile/android/fenix/app/src/main/res/xml/site_permissions_details_exceptions_preferences.xml @@ -3,7 +3,8 @@ @@ -976,6 +1016,7 @@ diff --git a/mobile/android/fenix/app/src/main/res/xml/site_permissions_details_ +Date: Mon, 28 Apr 2025 11:18:45 +0530 +Subject: [PATCH] fix(patches): update 'force-enable-zoom.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt | 2 +- + .../fenix/app/src/main/res/xml/accessibility_preferences.xml | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + 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 807c5c2..96517fb 100644 +index 8e271198b0..e4a1f9d7ee 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 -@@ -171,7 +171,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -215,7 +215,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { var forceEnableZoom by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_accessibility_force_enable_zoom), @@ -12,7 +24,7 @@ index 807c5c2..96517fb 100644 var adjustCampaignId by stringPreference( diff --git a/mobile/android/fenix/app/src/main/res/xml/accessibility_preferences.xml b/mobile/android/fenix/app/src/main/res/xml/accessibility_preferences.xml -index a810f76..adba536 100644 +index a810f76208..adba5368b6 100644 --- a/mobile/android/fenix/app/src/main/res/xml/accessibility_preferences.xml +++ b/mobile/android/fenix/app/src/main/res/xml/accessibility_preferences.xml @@ -24,7 +24,7 @@ @@ -24,3 +36,6 @@ index a810f76..adba536 100644 android:key="@string/pref_key_accessibility_force_enable_zoom" android:summary="@string/preference_accessibility_force_enable_zoom_summary" android:title="@string/preference_accessibility_force_enable_zoom" +-- +2.49.0 + diff --git a/patches/gecko-fix-125-compile.patch b/patches/gecko-fix-125-compile.patch index 9626cf6a..f1f30b63 100644 --- a/patches/gecko-fix-125-compile.patch +++ b/patches/gecko-fix-125-compile.patch @@ -1,7 +1,19 @@ -diff -r 2df6d3fa14ca -r f0a2d70cf468 mfbt/SmallPointerArray.h ---- a/mfbt/SmallPointerArray.h Mon Oct 28 08:39:49 2024 -0400 -+++ b/mfbt/SmallPointerArray.h Mon Oct 28 08:40:23 2024 -0400 -@@ -201,9 +201,9 @@ +From 40d09fef62184a8ccdcb8e8cf41c7b35d001fadf Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 11:19:14 +0530 +Subject: [PATCH] fix(patches): update 'gecko-fix-125-compile.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + mfbt/SmallPointerArray.h | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/mfbt/SmallPointerArray.h b/mfbt/SmallPointerArray.h +index c63e3980f9..061bb1fc8b 100644 +--- a/mfbt/SmallPointerArray.h ++++ b/mfbt/SmallPointerArray.h +@@ -201,9 +201,9 @@ class SmallPointerArray { private: T** beginInternal() const { if (first()) { @@ -13,7 +25,7 @@ diff -r 2df6d3fa14ca -r f0a2d70cf468 mfbt/SmallPointerArray.h return &first(); } -@@ -259,7 +259,7 @@ +@@ -259,7 +259,7 @@ class SmallPointerArray { // When !mArray[0].mValue && mArray[1].mVector, mArray[1].mVector contains // the contents of an array of arbitrary size (even less than two if it ever // contained three elements and elements were removed). @@ -22,3 +34,6 @@ diff -r 2df6d3fa14ca -r f0a2d70cf468 mfbt/SmallPointerArray.h T* mValue; std::vector* mVector; } mArray[2]; +-- +2.49.0 + diff --git a/patches/gecko-liberate.patch b/patches/gecko-liberate.patch index 39b7c867..892e6979 100644 --- a/patches/gecko-liberate.patch +++ b/patches/gecko-liberate.patch @@ -1,15 +1,30 @@ -diff -r 0a6479ef0332 mobile/android/geckoview/build.gradle ---- a/mobile/android/geckoview/build.gradle Mon Nov 18 12:58:35 2024 +0000 -+++ b/mobile/android/geckoview/build.gradle Tue Nov 19 09:11:18 2024 +0000 -@@ -216,7 +216,7 @@ - implementation ComponentsDependencies.androidx_collection - implementation ComponentsDependencies.androidx_core +From 0582c8e881d1f2a1e4640f0a7edd5de8e8b5c46c Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 11:19:33 +0530 +Subject: [PATCH] fix(patches): update 'gecko-liberate.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + mobile/android/geckoview/build.gradle | 2 +- + .../mozilla/gecko/media/MediaDrmProxy.java | 2 +- + .../geckoview/WebAuthnTokenManager.java | 58 +++++-------------- + toolkit/content/jar.mn | 3 - + 4 files changed, 18 insertions(+), 47 deletions(-) + +diff --git a/mobile/android/geckoview/build.gradle b/mobile/android/geckoview/build.gradle +index 4afaf2493b..458ef0d0b1 100644 +--- a/mobile/android/geckoview/build.gradle ++++ b/mobile/android/geckoview/build.gradle +@@ -218,7 +218,7 @@ dependencies { + implementation libs.androidx.collection + implementation libs.androidx.core -- implementation ComponentsDependencies.play_services_fido -+ implementation "org.microg.gms:play-services-fido:v0.0.0.244735" +- implementation libs.play.services.fido ++ implementation "org.microg.gms:play-services-fido:v0.0.0.250932" implementation "org.yaml:snakeyaml:2.2" - implementation 'androidx.core:core:1.12.0' + implementation libs.androidx.lifecycle.common diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/MediaDrmProxy.java b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/MediaDrmProxy.java index cb54b18f99..a7194d1c0b 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/MediaDrmProxy.java @@ -23,10 +38,11 @@ index cb54b18f99..a7194d1c0b 100644 } @SuppressLint("NewApi") -diff -r 0a6479ef0332 mobile/android/geckoview/src/main/java/org/mozilla/geckoview/WebAuthnTokenManager.java ---- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/WebAuthnTokenManager.java Mon Nov 18 12:58:35 2024 +0000 -+++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/WebAuthnTokenManager.java Tue Nov 19 09:11:18 2024 +0000 -@@ -193,27 +193,14 @@ +diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/WebAuthnTokenManager.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/WebAuthnTokenManager.java +index d688ff87f2..80b049ccac 100644 +--- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/WebAuthnTokenManager.java ++++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/WebAuthnTokenManager.java +@@ -193,27 +193,14 @@ import org.mozilla.gecko.util.WebAuthnUtils; final Task intentTask; @@ -62,7 +78,7 @@ diff -r 0a6479ef0332 mobile/android/geckoview/src/main/java/org/mozilla/geckovie intentTask.addOnSuccessListener( pendingIntent -> { -@@ -411,19 +398,12 @@ +@@ -411,19 +398,12 @@ import org.mozilla.gecko.util.WebAuthnUtils; .build(); final Task intentTask; @@ -71,23 +87,23 @@ diff -r 0a6479ef0332 mobile/android/geckoview/src/main/java/org/mozilla/geckovie - if (BuildConfig.MOZILLA_OFFICIAL) { - final Fido2PrivilegedApiClient fidoClient = - Fido.getFido2PrivilegedApiClient(GeckoAppShell.getApplicationContext()); +- +- intentTask = fidoClient.getSignPendingIntent(browserOptions); +- } else { +- final Fido2ApiClient fidoClient = +- Fido.getFido2ApiClient(GeckoAppShell.getApplicationContext()); + // See the makeCredential method for documentation about the FIDO2 API and + // microG. + final Fido2PrivilegedApiClient fidoClient = + Fido.getFido2PrivilegedApiClient(GeckoAppShell.getApplicationContext()); -- intentTask = fidoClient.getSignPendingIntent(browserOptions); -- } else { -- final Fido2ApiClient fidoClient = -- Fido.getFido2ApiClient(GeckoAppShell.getApplicationContext()); -- - intentTask = fidoClient.getSignPendingIntent(requestOptions); - } + intentTask = fidoClient.getSignPendingIntent(browserOptions); intentTask.addOnSuccessListener( pendingIntent -> { -@@ -557,15 +537,9 @@ +@@ -557,15 +537,9 @@ import org.mozilla.gecko.util.WebAuthnUtils; @WrapForJNI(calledFrom = "gecko") private static GeckoResult webAuthnIsUserVerifyingPlatformAuthenticatorAvailable() { final Task task; @@ -107,10 +123,10 @@ diff -r 0a6479ef0332 mobile/android/geckoview/src/main/java/org/mozilla/geckovie final GeckoResult res = new GeckoResult<>(); task.addOnSuccessListener( diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn -index 0df59178c3..e7786cec22 100644 +index d3c34b7de2..7874643f0a 100644 --- a/toolkit/content/jar.mn +++ b/toolkit/content/jar.mn -@@ -152,9 +152,6 @@ toolkit.jar: +@@ -158,9 +158,6 @@ toolkit.jar: #ifdef XP_MACOSX content/global/macWindowMenu.js #endif @@ -120,3 +136,6 @@ index 0df59178c3..e7786cec22 100644 # Third party files content/global/third_party/d3/d3.js (/third_party/js/d3/d3.js) +-- +2.49.0 + diff --git a/patches/gecko-localize_maven.patch b/patches/gecko-localize_maven.patch index 05098f87..557cee77 100644 --- a/patches/gecko-localize_maven.patch +++ b/patches/gecko-localize_maven.patch @@ -1,13 +1,49 @@ -diff -r 0e15e2edd460 -r c45f2c445215 build.gradle ---- a/build.gradle Mon Oct 21 17:55:50 2024 +0000 -+++ b/build.gradle Mon Oct 28 08:32:50 2024 -0400 -@@ -4,14 +4,9 @@ +From 305076ea955dd97d74d63f2ed647c52526efd882 Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 11:27:36 +0530 +Subject: [PATCH] fix(patches): update 'gecko-localize_maven.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + build.gradle | 22 +++++-------------- + .../android/android-components/build.gradle | 22 +++++-------------- + .../browser/engine-gecko/build.gradle | 11 +++------- + .../components/lib/crash/build.gradle | 11 +++------- + .../components/service/nimbus/build.gradle | 11 +++------- + .../support/remotesettings/build.gradle | 11 +++------- + .../plugins/config/build.gradle | 11 +++------- + .../plugins/config/settings.gradle | 11 +++------- + .../plugins/dependencies/build.gradle | 11 +++------- + .../plugins/dependencies/settings.gradle | 11 +++------- + .../plugins/publicsuffixlist/build.gradle | 11 +++------- + .../plugins/publicsuffixlist/settings.gradle | 11 +++------- + .../samples/glean/build.gradle | 11 +++------- + .../glean/samples-glean-library/build.gradle | 11 +++------- + .../android-components/settings.gradle | 11 +++------- + mobile/android/fenix/app/build.gradle | 11 +++------- + mobile/android/fenix/build.gradle | 22 +++++-------------- + .../fenix/mozilla-lint-rules/build.gradle | 11 +++------- + .../fenix/plugins/apksize/build.gradle | 11 +++------- + .../fenix/plugins/apksize/settings.gradle | 11 +++------- + mobile/android/fenix/settings.gradle | 11 +++------- + mobile/android/focus-android/build.gradle | 22 +++++-------------- + mobile/android/focus-android/settings.gradle | 11 +++------- + mobile/android/shared-settings.gradle | 11 +++------- + settings.gradle | 11 +++------- + 25 files changed, 87 insertions(+), 232 deletions(-) + +diff --git a/build.gradle b/build.gradle +index 9646a2b7cb..e616444284 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -4,14 +4,9 @@ import org.tomlj.TomlTable buildscript { repositories { - gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository -> - maven { -- url repository +- url = repository - if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) { - allowInsecureProtocol = true - } @@ -18,14 +54,14 @@ diff -r 0e15e2edd460 -r c45f2c445215 build.gradle + google() } - ext { -@@ -144,14 +139,9 @@ + dependencies { +@@ -128,14 +123,9 @@ allprojects { } repositories { - gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository -> - maven { -- url repository +- url = repository - if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) { - allowInsecureProtocol = true - } @@ -37,16 +73,17 @@ diff -r 0e15e2edd460 -r c45f2c445215 build.gradle } // Use the semanticdb-javac and semanticdb-kotlinc plugins to generate semanticdb files for Searchfox -diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/android-components/build.gradle ---- a/mobile/android/android-components/build.gradle Mon Oct 21 17:55:50 2024 +0000 -+++ b/mobile/android/android-components/build.gradle Mon Oct 28 08:32:50 2024 -0400 -@@ -9,14 +9,9 @@ +diff --git a/mobile/android/android-components/build.gradle b/mobile/android/android-components/build.gradle +index 2cbb2e3312..6216170348 100644 +--- a/mobile/android/android-components/build.gradle ++++ b/mobile/android/android-components/build.gradle +@@ -9,14 +9,9 @@ import static org.gradle.api.tasks.testing.TestResult.ResultType buildscript { repositories { - gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository -> - maven { -- url repository +- url = repository - if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) { - allowInsecureProtocol = true - } @@ -58,13 +95,13 @@ diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/android-components/build.gra } dependencies { -@@ -40,14 +35,9 @@ +@@ -33,14 +28,9 @@ plugins { allprojects { repositories { - gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository -> - maven { -- url repository +- url = repository - if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) { - allowInsecureProtocol = true - } @@ -75,17 +112,18 @@ diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/android-components/build.gra + google() maven { - url "${gradle.mozconfig.topobjdir}/gradle/maven" -diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/android-components/components/browser/engine-gecko/build.gradle ---- a/mobile/android/android-components/components/browser/engine-gecko/build.gradle Mon Oct 21 17:55:50 2024 +0000 -+++ b/mobile/android/android-components/components/browser/engine-gecko/build.gradle Mon Oct 28 08:32:50 2024 -0400 + url = "${gradle.mozconfig.topobjdir}/gradle/maven" +diff --git a/mobile/android/android-components/components/browser/engine-gecko/build.gradle b/mobile/android/android-components/components/browser/engine-gecko/build.gradle +index 7941343807..6e930c8da5 100644 +--- a/mobile/android/android-components/components/browser/engine-gecko/build.gradle ++++ b/mobile/android/android-components/components/browser/engine-gecko/build.gradle @@ -4,14 +4,9 @@ buildscript { repositories { - gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository -> - maven { -- url repository +- url = repository - if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) { - allowInsecureProtocol = true - } @@ -97,16 +135,17 @@ diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/android-components/component } dependencies { -diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/android-components/components/lib/crash/build.gradle ---- a/mobile/android/android-components/components/lib/crash/build.gradle Mon Oct 21 17:55:50 2024 +0000 -+++ b/mobile/android/android-components/components/lib/crash/build.gradle Mon Oct 28 08:32:50 2024 -0400 +diff --git a/mobile/android/android-components/components/lib/crash/build.gradle b/mobile/android/android-components/components/lib/crash/build.gradle +index 3e2c155de0..ae4ed0d52c 100644 +--- a/mobile/android/android-components/components/lib/crash/build.gradle ++++ b/mobile/android/android-components/components/lib/crash/build.gradle @@ -4,14 +4,9 @@ buildscript { repositories { - gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository -> - maven { -- url repository +- url = repository - if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) { - allowInsecureProtocol = true - } @@ -118,16 +157,17 @@ diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/android-components/component } dependencies { -diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/android-components/components/service/nimbus/build.gradle ---- a/mobile/android/android-components/components/service/nimbus/build.gradle Mon Oct 21 17:55:50 2024 +0000 -+++ b/mobile/android/android-components/components/service/nimbus/build.gradle Mon Oct 28 08:32:50 2024 -0400 +diff --git a/mobile/android/android-components/components/service/nimbus/build.gradle b/mobile/android/android-components/components/service/nimbus/build.gradle +index ec4777457e..b998b42868 100644 +--- a/mobile/android/android-components/components/service/nimbus/build.gradle ++++ b/mobile/android/android-components/components/service/nimbus/build.gradle @@ -4,14 +4,9 @@ buildscript { repositories { - gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository -> - maven { -- url repository +- url = repository - if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) { - allowInsecureProtocol = true - } @@ -139,16 +179,17 @@ diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/android-components/component } dependencies { -diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/android-components/components/support/remotesettings/build.gradle ---- a/mobile/android/android-components/components/support/remotesettings/build.gradle Mon Oct 21 17:55:50 2024 +0000 -+++ b/mobile/android/android-components/components/support/remotesettings/build.gradle Mon Oct 28 08:32:50 2024 -0400 +diff --git a/mobile/android/android-components/components/support/remotesettings/build.gradle b/mobile/android/android-components/components/support/remotesettings/build.gradle +index de57de08cb..3d7fc89f82 100644 +--- a/mobile/android/android-components/components/support/remotesettings/build.gradle ++++ b/mobile/android/android-components/components/support/remotesettings/build.gradle @@ -3,14 +3,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ buildscript { repositories { - gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository -> - maven { -- url repository +- url = repository - if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) { - allowInsecureProtocol = true - } @@ -159,17 +200,18 @@ diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/android-components/component + google() } dependencies { - classpath ComponentsDependencies.plugin_serialization -diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/android-components/plugins/config/build.gradle ---- a/mobile/android/android-components/plugins/config/build.gradle Mon Oct 21 17:55:50 2024 +0000 -+++ b/mobile/android/android-components/plugins/config/build.gradle Mon Oct 28 08:32:50 2024 -0400 -@@ -7,14 +7,9 @@ - } + classpath libs.plugin.serialization +diff --git a/mobile/android/android-components/plugins/config/build.gradle b/mobile/android/android-components/plugins/config/build.gradle +index 3728558208..8cb258a793 100644 +--- a/mobile/android/android-components/plugins/config/build.gradle ++++ b/mobile/android/android-components/plugins/config/build.gradle +@@ -9,14 +9,9 @@ plugins { + buildDir = "${gradle.mozconfig.topobjdir}/gradle/build/mobile/android/android-components/plugins/config" repositories { - gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository -> - maven { -- url repository +- url = repository - if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) { - allowInsecureProtocol = true - } @@ -181,16 +223,17 @@ diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/android-components/plugins/c } gradlePlugin { -diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/android-components/plugins/config/settings.gradle ---- a/mobile/android/android-components/plugins/config/settings.gradle Mon Oct 21 17:55:50 2024 +0000 -+++ b/mobile/android/android-components/plugins/config/settings.gradle Mon Oct 28 08:32:50 2024 -0400 -@@ -9,13 +9,8 @@ +diff --git a/mobile/android/android-components/plugins/config/settings.gradle b/mobile/android/android-components/plugins/config/settings.gradle +index b826d02d17..06bac06ffa 100644 +--- a/mobile/android/android-components/plugins/config/settings.gradle ++++ b/mobile/android/android-components/plugins/config/settings.gradle +@@ -11,14 +11,9 @@ pluginManagement { } repositories { - gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository -> - maven { -- url repository +- url = repository - if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) { - allowInsecureProtocol = true - } @@ -201,16 +244,18 @@ diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/android-components/plugins/c + google() } } -diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/android-components/plugins/dependencies/build.gradle ---- a/mobile/android/android-components/plugins/dependencies/build.gradle Mon Oct 21 17:55:50 2024 +0000 -+++ b/mobile/android/android-components/plugins/dependencies/build.gradle Mon Oct 28 08:32:50 2024 -0400 -@@ -7,14 +7,9 @@ - } + +diff --git a/mobile/android/android-components/plugins/dependencies/build.gradle b/mobile/android/android-components/plugins/dependencies/build.gradle +index 9a79d65de7..27df676741 100644 +--- a/mobile/android/android-components/plugins/dependencies/build.gradle ++++ b/mobile/android/android-components/plugins/dependencies/build.gradle +@@ -9,14 +9,9 @@ plugins { + buildDir = "${gradle.mozconfig.topobjdir}/gradle/build/mobile/android/android-components/plugins/dependencies" repositories { - gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository -> - maven { -- url repository +- url = repository - if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) { - allowInsecureProtocol = true - } @@ -222,16 +267,17 @@ diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/android-components/plugins/d } gradlePlugin { -diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/android-components/plugins/dependencies/settings.gradle ---- a/mobile/android/android-components/plugins/dependencies/settings.gradle Mon Oct 21 17:55:50 2024 +0000 -+++ b/mobile/android/android-components/plugins/dependencies/settings.gradle Mon Oct 28 08:32:50 2024 -0400 -@@ -9,13 +9,8 @@ +diff --git a/mobile/android/android-components/plugins/dependencies/settings.gradle b/mobile/android/android-components/plugins/dependencies/settings.gradle +index b826d02d17..06bac06ffa 100644 +--- a/mobile/android/android-components/plugins/dependencies/settings.gradle ++++ b/mobile/android/android-components/plugins/dependencies/settings.gradle +@@ -11,14 +11,9 @@ pluginManagement { } repositories { - gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository -> - maven { -- url repository +- url = repository - if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) { - allowInsecureProtocol = true - } @@ -242,16 +288,18 @@ diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/android-components/plugins/d + google() } } -diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/android-components/plugins/publicsuffixlist/build.gradle ---- a/mobile/android/android-components/plugins/publicsuffixlist/build.gradle Mon Oct 21 17:55:50 2024 +0000 -+++ b/mobile/android/android-components/plugins/publicsuffixlist/build.gradle Mon Oct 28 08:32:50 2024 -0400 -@@ -7,14 +7,9 @@ - } + +diff --git a/mobile/android/android-components/plugins/publicsuffixlist/build.gradle b/mobile/android/android-components/plugins/publicsuffixlist/build.gradle +index b33fd9b5e1..2059e733d0 100644 +--- a/mobile/android/android-components/plugins/publicsuffixlist/build.gradle ++++ b/mobile/android/android-components/plugins/publicsuffixlist/build.gradle +@@ -9,14 +9,9 @@ plugins { + buildDir = "${gradle.mozconfig.topobjdir}/gradle/build/mobile/android/android-components/plugins/publicsuffixlist" repositories { - gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository -> - maven { -- url repository +- url = repository - if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) { - allowInsecureProtocol = true - } @@ -263,16 +311,17 @@ diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/android-components/plugins/p } dependencies { -diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/android-components/plugins/publicsuffixlist/settings.gradle ---- a/mobile/android/android-components/plugins/publicsuffixlist/settings.gradle Mon Oct 21 17:55:50 2024 +0000 -+++ b/mobile/android/android-components/plugins/publicsuffixlist/settings.gradle Mon Oct 28 08:32:50 2024 -0400 -@@ -10,14 +10,9 @@ +diff --git a/mobile/android/android-components/plugins/publicsuffixlist/settings.gradle b/mobile/android/android-components/plugins/publicsuffixlist/settings.gradle +index 84ca151cdc..a03568e09c 100644 +--- a/mobile/android/android-components/plugins/publicsuffixlist/settings.gradle ++++ b/mobile/android/android-components/plugins/publicsuffixlist/settings.gradle +@@ -12,14 +12,9 @@ pluginManagement { } repositories { - gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository -> - maven { -- url repository +- url = repository - if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) { - allowInsecureProtocol = true - } @@ -284,16 +333,17 @@ diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/android-components/plugins/p } includeBuild("../dependencies") -diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/android-components/samples/glean/build.gradle ---- a/mobile/android/android-components/samples/glean/build.gradle Mon Oct 21 17:55:50 2024 +0000 -+++ b/mobile/android/android-components/samples/glean/build.gradle Mon Oct 28 08:32:50 2024 -0400 +diff --git a/mobile/android/android-components/samples/glean/build.gradle b/mobile/android/android-components/samples/glean/build.gradle +index fee42ed346..f61f7811e6 100644 +--- a/mobile/android/android-components/samples/glean/build.gradle ++++ b/mobile/android/android-components/samples/glean/build.gradle @@ -4,14 +4,9 @@ buildscript { repositories { - gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository -> - maven { -- url repository +- url = repository - if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) { - allowInsecureProtocol = true - } @@ -304,17 +354,18 @@ diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/android-components/samples/g + google() dependencies { - classpath "org.mozilla.telemetry:glean-gradle-plugin:${Versions.mozilla_glean}" -diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/android-components/samples/glean/samples-glean-library/build.gradle ---- a/mobile/android/android-components/samples/glean/samples-glean-library/build.gradle Mon Oct 21 17:55:50 2024 +0000 -+++ b/mobile/android/android-components/samples/glean/samples-glean-library/build.gradle Mon Oct 28 08:32:50 2024 -0400 + classpath "org.mozilla.telemetry:glean-gradle-plugin:${libs.versions.mozilla.glean.get()}" +diff --git a/mobile/android/android-components/samples/glean/samples-glean-library/build.gradle b/mobile/android/android-components/samples/glean/samples-glean-library/build.gradle +index 22871851d3..0aa57fbdaa 100644 +--- a/mobile/android/android-components/samples/glean/samples-glean-library/build.gradle ++++ b/mobile/android/android-components/samples/glean/samples-glean-library/build.gradle @@ -4,14 +4,9 @@ buildscript { repositories { - gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository -> - maven { -- url repository +- url = repository - if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) { - allowInsecureProtocol = true - } @@ -325,17 +376,18 @@ diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/android-components/samples/g + google() dependencies { - classpath "org.mozilla.telemetry:glean-gradle-plugin:${Versions.mozilla_glean}" -diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/android-components/settings.gradle ---- a/mobile/android/android-components/settings.gradle Mon Oct 21 17:55:50 2024 +0000 -+++ b/mobile/android/android-components/settings.gradle Mon Oct 28 08:32:50 2024 -0400 -@@ -8,14 +8,9 @@ + classpath "org.mozilla.telemetry:glean-gradle-plugin:${libs.versions.mozilla.glean.get()}" +diff --git a/mobile/android/android-components/settings.gradle b/mobile/android/android-components/settings.gradle +index 19dc9e9ccf..6adb734ad5 100644 +--- a/mobile/android/android-components/settings.gradle ++++ b/mobile/android/android-components/settings.gradle +@@ -10,14 +10,9 @@ pluginManagement { } repositories { - gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository -> - maven { -- url repository +- url = repository - if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) { - allowInsecureProtocol = true - } @@ -347,16 +399,17 @@ diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/android-components/settings. } includeBuild("plugins/dependencies") -diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/fenix/app/build.gradle ---- a/mobile/android/fenix/app/build.gradle Mon Oct 21 17:55:50 2024 +0000 -+++ b/mobile/android/fenix/app/build.gradle Mon Oct 28 08:32:50 2024 -0400 -@@ -3,14 +3,9 @@ +diff --git a/mobile/android/fenix/app/build.gradle b/mobile/android/fenix/app/build.gradle +index 7535453460..95d8c3149f 100644 +--- a/mobile/android/fenix/app/build.gradle ++++ b/mobile/android/fenix/app/build.gradle +@@ -3,14 +3,9 @@ import org.apache.tools.ant.util.StringUtils buildscript { repositories { - gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository -> - maven { -- url repository +- url = repository - if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) { - allowInsecureProtocol = true - } @@ -368,16 +421,17 @@ diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/fenix/app/build.gradle } dependencies { -diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/fenix/build.gradle ---- a/mobile/android/fenix/build.gradle Mon Oct 21 17:55:50 2024 +0000 -+++ b/mobile/android/fenix/build.gradle Mon Oct 28 08:32:50 2024 -0400 -@@ -10,14 +10,9 @@ +diff --git a/mobile/android/fenix/build.gradle b/mobile/android/fenix/build.gradle +index ed1180a452..44bcdece34 100644 +--- a/mobile/android/fenix/build.gradle ++++ b/mobile/android/fenix/build.gradle +@@ -10,14 +10,9 @@ import java.nio.file.StandardCopyOption buildscript { // This logic is duplicated in the allprojects block: I don't know how to fix that. repositories { - gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository -> - maven { -- url repository +- url = repository - if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) { - allowInsecureProtocol = true - } @@ -389,13 +443,13 @@ diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/fenix/build.gradle } dependencies { -@@ -51,14 +46,9 @@ +@@ -45,14 +40,9 @@ plugins { allprojects { // This logic is duplicated in the buildscript block: I don't know how to fix that. repositories { - gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository -> - maven { -- url repository +- url = repository - if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) { - allowInsecureProtocol = true - } @@ -406,17 +460,18 @@ diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/fenix/build.gradle + google() maven { - url "${gradle.mozconfig.topobjdir}/gradle/maven" -diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/fenix/mozilla-lint-rules/build.gradle ---- a/mobile/android/fenix/mozilla-lint-rules/build.gradle Mon Oct 21 17:55:50 2024 +0000 -+++ b/mobile/android/fenix/mozilla-lint-rules/build.gradle Mon Oct 28 08:32:50 2024 -0400 -@@ -6,14 +6,9 @@ + url = "${gradle.mozconfig.topobjdir}/gradle/maven" +diff --git a/mobile/android/fenix/mozilla-lint-rules/build.gradle b/mobile/android/fenix/mozilla-lint-rules/build.gradle +index 138192fe8e..caee5f4c96 100644 +--- a/mobile/android/fenix/mozilla-lint-rules/build.gradle ++++ b/mobile/android/fenix/mozilla-lint-rules/build.gradle +@@ -6,14 +6,9 @@ apply plugin: 'java-library' apply plugin: 'kotlin' repositories { - gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository -> - maven { -- url repository +- url = repository - if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) { - allowInsecureProtocol = true - } @@ -428,16 +483,17 @@ diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/fenix/mozilla-lint-rules/bui } dependencies { -diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/fenix/plugins/apksize/build.gradle ---- a/mobile/android/fenix/plugins/apksize/build.gradle Mon Oct 21 17:55:50 2024 +0000 -+++ b/mobile/android/fenix/plugins/apksize/build.gradle Mon Oct 28 08:32:50 2024 -0400 -@@ -7,14 +7,9 @@ - } +diff --git a/mobile/android/fenix/plugins/apksize/build.gradle b/mobile/android/fenix/plugins/apksize/build.gradle +index ed6975809e..fb374e95b5 100644 +--- a/mobile/android/fenix/plugins/apksize/build.gradle ++++ b/mobile/android/fenix/plugins/apksize/build.gradle +@@ -9,14 +9,9 @@ plugins { + buildDir = "${gradle.mozconfig.topobjdir}/gradle/build/mobile/android/fenix/plugins/apksize" repositories { - gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository -> - maven { -- url repository +- url = repository - if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) { - allowInsecureProtocol = true - } @@ -449,16 +505,17 @@ diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/fenix/plugins/apksize/build. } dependencies { -diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/fenix/plugins/apksize/settings.gradle ---- a/mobile/android/fenix/plugins/apksize/settings.gradle Mon Oct 21 17:55:50 2024 +0000 -+++ b/mobile/android/fenix/plugins/apksize/settings.gradle Mon Oct 28 08:32:50 2024 -0400 -@@ -9,13 +9,8 @@ +diff --git a/mobile/android/fenix/plugins/apksize/settings.gradle b/mobile/android/fenix/plugins/apksize/settings.gradle +index 8704f1f4b3..8580140364 100644 +--- a/mobile/android/fenix/plugins/apksize/settings.gradle ++++ b/mobile/android/fenix/plugins/apksize/settings.gradle +@@ -11,14 +11,9 @@ pluginManagement { } repositories { - gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository -> - maven { -- url repository +- url = repository - if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) { - allowInsecureProtocol = true - } @@ -469,16 +526,18 @@ diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/fenix/plugins/apksize/settin + google() } } -diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/fenix/settings.gradle ---- a/mobile/android/fenix/settings.gradle Mon Oct 21 17:55:50 2024 +0000 -+++ b/mobile/android/fenix/settings.gradle Mon Oct 28 08:32:50 2024 -0400 -@@ -8,14 +8,9 @@ + +diff --git a/mobile/android/fenix/settings.gradle b/mobile/android/fenix/settings.gradle +index 372f828814..609ea043fe 100644 +--- a/mobile/android/fenix/settings.gradle ++++ b/mobile/android/fenix/settings.gradle +@@ -10,14 +10,9 @@ pluginManagement { } repositories { - gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository -> - maven { -- url repository +- url = repository - if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) { - allowInsecureProtocol = true - } @@ -490,16 +549,17 @@ diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/fenix/settings.gradle } includeBuild("../android-components/plugins/publicsuffixlist") -diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/focus-android/build.gradle ---- a/mobile/android/focus-android/build.gradle Mon Oct 21 17:55:50 2024 +0000 -+++ b/mobile/android/focus-android/build.gradle Mon Oct 28 08:32:50 2024 -0400 -@@ -7,14 +7,9 @@ +diff --git a/mobile/android/focus-android/build.gradle b/mobile/android/focus-android/build.gradle +index 9b0a399f10..0b9ff0c922 100644 +--- a/mobile/android/focus-android/build.gradle ++++ b/mobile/android/focus-android/build.gradle +@@ -7,14 +7,9 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile buildscript { repositories { - gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository -> - maven { -- url repository +- url = repository - if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) { - allowInsecureProtocol = true - } @@ -511,13 +571,13 @@ diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/focus-android/build.gradle } dependencies { -@@ -82,14 +77,9 @@ +@@ -76,14 +71,9 @@ tasks.withType(DetektCreateBaselineTask).configureEach() { allprojects { repositories { - gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository -> - maven { -- url repository +- url = repository - if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) { - allowInsecureProtocol = true - } @@ -528,17 +588,18 @@ diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/focus-android/build.gradle + google() maven { - url "${gradle.mozconfig.topobjdir}/gradle/maven" -diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/focus-android/settings.gradle ---- a/mobile/android/focus-android/settings.gradle Mon Oct 21 17:55:50 2024 +0000 -+++ b/mobile/android/focus-android/settings.gradle Mon Oct 28 08:32:50 2024 -0400 -@@ -8,14 +8,9 @@ + url = "${gradle.mozconfig.topobjdir}/gradle/maven" +diff --git a/mobile/android/focus-android/settings.gradle b/mobile/android/focus-android/settings.gradle +index 0f5dbd50a0..3143f62c77 100644 +--- a/mobile/android/focus-android/settings.gradle ++++ b/mobile/android/focus-android/settings.gradle +@@ -10,14 +10,9 @@ pluginManagement { } repositories { - gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository -> - maven { -- url repository +- url = repository - if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) { - allowInsecureProtocol = true - } @@ -550,16 +611,17 @@ diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/focus-android/settings.gradl } includeBuild("../android-components/plugins/publicsuffixlist") -diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/shared-settings.gradle ---- a/mobile/android/shared-settings.gradle Mon Oct 21 17:55:50 2024 +0000 -+++ b/mobile/android/shared-settings.gradle Mon Oct 28 08:32:50 2024 -0400 -@@ -10,14 +10,9 @@ +diff --git a/mobile/android/shared-settings.gradle b/mobile/android/shared-settings.gradle +index 74ac75285e..fbae2670bf 100644 +--- a/mobile/android/shared-settings.gradle ++++ b/mobile/android/shared-settings.gradle +@@ -12,14 +12,9 @@ buildscript { } repositories { - gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository -> - maven { -- url repository +- url = repository - if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) { - allowInsecureProtocol = true - } @@ -571,16 +633,17 @@ diff -r 0e15e2edd460 -r c45f2c445215 mobile/android/shared-settings.gradle } dependencies { -diff -r 0e15e2edd460 -r c45f2c445215 settings.gradle ---- a/settings.gradle Mon Oct 21 17:55:50 2024 +0000 -+++ b/settings.gradle Mon Oct 28 08:32:50 2024 -0400 -@@ -4,14 +4,9 @@ +diff --git a/settings.gradle b/settings.gradle +index 48240aaf4f..663cadb134 100644 +--- a/settings.gradle ++++ b/settings.gradle +@@ -9,14 +9,9 @@ pluginManagement { } repositories { - gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository -> - maven { -- url repository +- url = repository - if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) { - allowInsecureProtocol = true - } @@ -592,3 +655,6 @@ diff -r 0e15e2edd460 -r c45f2c445215 settings.gradle } includeBuild("${rootProject.projectDir.absolutePath}/mobile/android/android-components/plugins/config") +-- +2.49.0 + diff --git a/patches/global-privacy-control.patch b/patches/global-privacy-control.patch index e9d1ccbe..606d62c5 100644 --- a/patches/global-privacy-control.patch +++ b/patches/global-privacy-control.patch @@ -1,4 +1,16 @@ +From 0a614cea9b8c771a750ba41dbe409036a822b0ac Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 11:28:53 +0530 +Subject: [PATCH] fix(patches): update 'global-privacy-control.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../app/src/main/res/xml/tracking_protection_preferences.xml | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + diff --git a/mobile/android/fenix/app/src/main/res/xml/tracking_protection_preferences.xml b/mobile/android/fenix/app/src/main/res/xml/tracking_protection_preferences.xml +index 2760c9c367..8b8902e0c2 100644 --- a/mobile/android/fenix/app/src/main/res/xml/tracking_protection_preferences.xml +++ b/mobile/android/fenix/app/src/main/res/xml/tracking_protection_preferences.xml @@ -93,7 +93,8 @@ @@ -8,6 +20,9 @@ diff --git a/mobile/android/fenix/app/src/main/res/xml/tracking_protection_prefe - android:title="@string/preference_enhanced_tracking_protection_custom_global_privacy_control" /> + android:title="@string/preference_enhanced_tracking_protection_custom_global_privacy_control" + app:isPreferenceVisible="false" /> - +-- +2.49.0 + diff --git a/patches/harden-pdfjs.patch b/patches/harden-pdfjs.patch index 664a55b2..cfbf36fb 100644 --- a/patches/harden-pdfjs.patch +++ b/patches/harden-pdfjs.patch @@ -1,8 +1,22 @@ +From 0f6a79a0761163f8d2b5c3421d95c42ea4b5dfa7 Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 11:30:51 +0530 +Subject: [PATCH] fix(patches): update 'harden-pdfjs.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../components/pdfjs/content/build/pdf.mjs | 23 ++++++++----------- + .../pdfjs/content/build/pdf.worker.mjs | 23 ++++++++----------- + .../pdfjs/content/web/viewer-geckoview.html | 1 + + .../pdfjs/content/web/viewer-geckoview.mjs | 2 +- + 4 files changed, 20 insertions(+), 29 deletions(-) + diff --git a/toolkit/components/pdfjs/content/build/pdf.mjs b/toolkit/components/pdfjs/content/build/pdf.mjs -index 007703f4b3..0f893551b1 100644 +index a75478c3f6..16fd316ed3 100644 --- a/toolkit/components/pdfjs/content/build/pdf.mjs +++ b/toolkit/components/pdfjs/content/build/pdf.mjs -@@ -532,19 +532,14 @@ function isLittleEndian() { +@@ -540,19 +540,14 @@ function isLittleEndian() { return view32[0] === 1; } function isEvalSupported() { @@ -24,7 +38,7 @@ index 007703f4b3..0f893551b1 100644 } static get isOffscreenCanvasSupported() { return shadow(this, "isOffscreenCanvasSupported", typeof OffscreenCanvas !== "undefined"); -@@ -10144,7 +10139,7 @@ function getDocument(src = {}) { +@@ -10142,7 +10137,7 @@ function getDocument(src = {}) { const { docId } = task; @@ -33,7 +47,7 @@ index 007703f4b3..0f893551b1 100644 const data = src.data ? getDataProp(src.data) : null; const httpHeaders = src.httpHeaders || null; const withCredentials = src.withCredentials === true; -@@ -10154,16 +10149,16 @@ function getDocument(src = {}) { +@@ -10152,17 +10147,17 @@ function getDocument(src = {}) { let worker = src.worker instanceof PDFWorker ? src.worker : null; const verbosity = src.verbosity; const docBaseUrl = typeof src.docBaseUrl === "string" && !isDataScheme(src.docBaseUrl) ? src.docBaseUrl : null; @@ -42,6 +56,7 @@ index 007703f4b3..0f893551b1 100644 + const cMapUrl = "resource://pdf.js/web/cmaps/"; + const cMapPacked = true; const CMapReaderFactory = src.CMapReaderFactory || DOMCMapReaderFactory; + const iccUrl = getFactoryUrlProp(src.iccUrl); - const standardFontDataUrl = getFactoryUrlProp(src.standardFontDataUrl); + const standardFontDataUrl = "resource://pdf.js/web/standard_fonts/"; const StandardFontDataFactory = src.StandardFontDataFactory || DOMStandardFontDataFactory; @@ -55,7 +70,7 @@ index 007703f4b3..0f893551b1 100644 const isOffscreenCanvasSupported = typeof src.isOffscreenCanvasSupported === "boolean" ? src.isOffscreenCanvasSupported : !isNodeJS; const isImageDecoderSupported = typeof src.isImageDecoderSupported === "boolean" ? src.isImageDecoderSupported : true; const canvasMaxAreaInBytes = Number.isInteger(src.canvasMaxAreaInBytes) ? src.canvasMaxAreaInBytes : -1; -@@ -10180,7 +10175,7 @@ function getDocument(src = {}) { +@@ -10179,7 +10174,7 @@ function getDocument(src = {}) { const enableHWA = src.enableHWA === true; const useWasm = src.useWasm !== false; const length = rangeTransport ? rangeTransport.length : src.length ?? NaN; @@ -65,10 +80,10 @@ index 007703f4b3..0f893551b1 100644 const styleElement = null; setVerbosityLevel(verbosity); diff --git a/toolkit/components/pdfjs/content/build/pdf.worker.mjs b/toolkit/components/pdfjs/content/build/pdf.worker.mjs -index f4159eaef3..a864c38f67 100644 +index 3cdb5401df..81662df2fb 100644 --- a/toolkit/components/pdfjs/content/build/pdf.worker.mjs +++ b/toolkit/components/pdfjs/content/build/pdf.worker.mjs -@@ -485,19 +485,14 @@ function isLittleEndian() { +@@ -491,19 +491,14 @@ function isLittleEndian() { return view32[0] === 1; } function isEvalSupported() { @@ -90,7 +105,7 @@ index f4159eaef3..a864c38f67 100644 } static get isOffscreenCanvasSupported() { return shadow(this, "isOffscreenCanvasSupported", typeof OffscreenCanvas !== "undefined"); -@@ -27415,10 +27410,10 @@ class GlobalImageCache { +@@ -27831,10 +27826,10 @@ class GlobalImageCache { class PDFFunctionFactory { constructor({ xref, @@ -101,9 +116,9 @@ index f4159eaef3..a864c38f67 100644 - this.isEvalSupported = isEvalSupported !== false; + this.isEvalSupported = false; } - create(fn) { - const cachedFunction = this.getCached(fn); -@@ -30373,17 +30368,17 @@ const DefaultPartialEvaluatorOptions = Object.freeze({ + create(fn, parseArray = false) { + let fnRef, parsedFn; +@@ -30718,18 +30713,18 @@ const DefaultPartialEvaluatorOptions = Object.freeze({ maxImageSize: -1, disableFontFace: false, ignoreErrors: false, @@ -118,6 +133,7 @@ index f4159eaef3..a864c38f67 100644 useWasm: true, useWorkerFetch: true, - cMapUrl: null, + iccUrl: null, - standardFontDataUrl: null, - wasmUrl: null + cMapUrl: "resource://pdf.js/web/cmaps/", @@ -127,7 +143,7 @@ index f4159eaef3..a864c38f67 100644 const PatternType = { TILING: 1, diff --git a/toolkit/components/pdfjs/content/web/viewer-geckoview.html b/toolkit/components/pdfjs/content/web/viewer-geckoview.html -index 35a986f097..05e7bb96f1 100644 +index 5e0a113820..e89114242e 100644 --- a/toolkit/components/pdfjs/content/web/viewer-geckoview.html +++ b/toolkit/components/pdfjs/content/web/viewer-geckoview.html @@ -23,6 +23,7 @@ See https://github.com/adobe-type-tools/cmap-resources @@ -139,10 +155,10 @@ index 35a986f097..05e7bb96f1 100644 PDF.js viewer diff --git a/toolkit/components/pdfjs/content/web/viewer-geckoview.mjs b/toolkit/components/pdfjs/content/web/viewer-geckoview.mjs -index 0a7b58b3bd..2de6aa0d8d 100644 +index 3042947fb0..fedaeb9438 100644 --- a/toolkit/components/pdfjs/content/web/viewer-geckoview.mjs +++ b/toolkit/components/pdfjs/content/web/viewer-geckoview.mjs -@@ -790,7 +790,7 @@ const defaultOptions = { +@@ -854,7 +854,7 @@ const defaultOptions = { kind: OptionKind.API }, isEvalSupported: { @@ -151,3 +167,6 @@ index 0a7b58b3bd..2de6aa0d8d 100644 kind: OptionKind.API }, isOffscreenCanvasSupported: { +-- +2.49.0 + diff --git a/patches/https_only.patch b/patches/https_only.patch index 0c5058aa..0fa0e959 100644 --- a/patches/https_only.patch +++ b/patches/https_only.patch @@ -1,7 +1,19 @@ -diff -r a29897d2381c -r 2df6d3fa14ca mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt ---- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt Mon Oct 28 08:39:05 2024 -0400 -+++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt Mon Oct 28 08:39:49 2024 -0400 -@@ -615,7 +615,7 @@ +From 83308277130ab2b7feccc3e8ae2a1ee0b0b72bf8 Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 11:33:38 +0530 +Subject: [PATCH] fix(patches): update 'https_only.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +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 8e271198b0..7b79691db5 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 +@@ -728,7 +728,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { var shouldUseHttpsOnly by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_https_only), @@ -10,3 +22,6 @@ diff -r a29897d2381c -r 2df6d3fa14ca mobile/android/fenix/app/src/main/java/org/ ) var shouldUseHttpsOnlyInAllTabs by booleanPreference( +-- +2.49.0 + diff --git a/patches/install-ublock.patch b/patches/install-ublock.patch index c130f1cb..f01e6828 100644 --- a/patches/install-ublock.patch +++ b/patches/install-ublock.patch @@ -1,7 +1,22 @@ +From 51f108b2abb8808bc7196d6b7e7b4d46aaeb9013 Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 11:33:58 +0530 +Subject: [PATCH] fix(patches): update 'install-ublock.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../extension/WebExtensionPromptFeature.kt | 21 ++++++++++++ + .../fenix/onboarding/OnboardingFragment.kt | 7 ++++ + .../org/mozilla/fenix/utils/AddonUtils.kt | 34 +++++++++++++++++++ + 3 files changed, 62 insertions(+) + create mode 100644 mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/AddonUtils.kt + diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/extension/WebExtensionPromptFeature.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/extension/WebExtensionPromptFeature.kt +index 82e44d1abc..fe2c0dd3e3 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/extension/WebExtensionPromptFeature.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/extension/WebExtensionPromptFeature.kt -@@ -121,6 +121,9 @@ +@@ -121,6 +121,9 @@ class WebExtensionPromptFeature( private fun handlePostInstallationRequest( addon: Addon, ) { @@ -11,7 +26,7 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/extension/ showPostInstallationDialog(addon) } -@@ -128,6 +131,15 @@ +@@ -128,6 +131,15 @@ class WebExtensionPromptFeature( addon: Addon, promptRequest: WebExtensionPromptRequest.AfterInstallation.Permissions.Required, ) { @@ -27,7 +42,7 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/extension/ showPermissionDialog( addon = addon, promptRequest = promptRequest, -@@ -141,6 +153,15 @@ +@@ -141,6 +153,15 @@ class WebExtensionPromptFeature( addon: Addon, promptRequest: WebExtensionPromptRequest.AfterInstallation.Permissions.Optional, ) { @@ -44,9 +59,10 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/extension/ promptRequest.permissions, context, diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/onboarding/OnboardingFragment.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/onboarding/OnboardingFragment.kt +index 1c975c33f4..c8e8c637f3 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/onboarding/OnboardingFragment.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/onboarding/OnboardingFragment.kt -@@ -19,8 +19,10 @@ +@@ -19,8 +19,10 @@ import androidx.annotation.RequiresApi import androidx.compose.runtime.Composable import androidx.compose.ui.platform.ComposeView import androidx.fragment.app.Fragment @@ -57,7 +73,7 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/onboarding import mozilla.components.concept.engine.webextension.InstallationMethod import mozilla.components.service.nimbus.evalJexlSafe import mozilla.components.service.nimbus.messaging.use -@@ -116,6 +118,11 @@ +@@ -116,6 +118,11 @@ class OnboardingFragment : Fragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val context = requireContext() @@ -71,6 +87,7 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/onboarding onFinish(null) diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/AddonUtils.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/AddonUtils.kt new file mode 100644 +index 0000000000..da5f74b77f --- /dev/null +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/AddonUtils.kt @@ -0,0 +1,34 @@ @@ -108,3 +125,6 @@ new file mode 100644 + } + } +} +-- +2.49.0 + diff --git a/patches/ironfox-content-settings.patch b/patches/ironfox-content-settings.patch index 70cce6a5..0bcdacb1 100644 --- a/patches/ironfox-content-settings.patch +++ b/patches/ironfox-content-settings.patch @@ -1,3 +1,16 @@ +From 27f94eb4dedf4ace0ab7d26da722a059b2c31bb1 Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 11:34:21 +0530 +Subject: [PATCH] fix(patches): update 'ironfox-content-settings.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../sitepermissions/SiteSettingsFragment.kt | 61 +++++++++++++++++++ + .../src/main/res/values/preference_keys.xml | 4 ++ + .../res/xml/site_permissions_preferences.xml | 21 +++++++ + 3 files changed, 86 insertions(+) + diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/sitepermissions/SiteSettingsFragment.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/sitepermissions/SiteSettingsFragment.kt index 115535816e..d06ee00721 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/sitepermissions/SiteSettingsFragment.kt @@ -71,10 +84,10 @@ index 115535816e..d06ee00721 100644 } diff --git a/mobile/android/fenix/app/src/main/res/values/preference_keys.xml b/mobile/android/fenix/app/src/main/res/values/preference_keys.xml -index a1993c808f..493e85c9fd 100644 +index dbb7ece65c..e5b56bda69 100644 --- a/mobile/android/fenix/app/src/main/res/values/preference_keys.xml +++ b/mobile/android/fenix/app/src/main/res/values/preference_keys.xml -@@ -430,6 +430,10 @@ +@@ -441,6 +441,10 @@ pref_key_app_cold_start_count pref_key_app_is_onboarding_set_as_default_displayed @@ -117,3 +130,6 @@ index ef1dcb4e6e..46c63052f7 100644 +Date: Mon, 28 Apr 2025 11:34:48 +0530 +Subject: [PATCH] fix(patches): update + 'ironfox-fingerprinting-protection-overrides.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../resistfingerprinting/FingerprintingWebCompatService.sys.mjs | 2 ++ + 1 file changed, 2 insertions(+) + diff --git a/toolkit/components/resistfingerprinting/FingerprintingWebCompatService.sys.mjs b/toolkit/components/resistfingerprinting/FingerprintingWebCompatService.sys.mjs -index 676f06ea68..a8f08aa0ba 100644 +index 676f06ea68..0cd6d64388 100644 --- a/toolkit/components/resistfingerprinting/FingerprintingWebCompatService.sys.mjs +++ b/toolkit/components/resistfingerprinting/FingerprintingWebCompatService.sys.mjs @@ -47,6 +47,7 @@ const SCHEMA = `{ @@ -18,3 +30,6 @@ index 676f06ea68..a8f08aa0ba 100644 this.#validator = new lazy.JsonSchema.Validator(SCHEMA); } +-- +2.49.0 + diff --git a/patches/ironfox-static-strings.patch b/patches/ironfox-static-strings.patch index c9144554..ffcc66c4 100644 --- a/patches/ironfox-static-strings.patch +++ b/patches/ironfox-static-strings.patch @@ -1,8 +1,19 @@ +From 61570a46c59f96e8e9ec0f0ebe3c778d12d67ead Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 11:35:10 +0530 +Subject: [PATCH] fix(patches): update 'ironfox-static-strings.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../fenix/app/src/main/res/values/static_strings.xml | 11 +++++++++++ + 1 file changed, 11 insertions(+) + diff --git a/mobile/android/fenix/app/src/main/res/values/static_strings.xml b/mobile/android/fenix/app/src/main/res/values/static_strings.xml -index a211dab268..a487474b24 100644 +index eaa31f53dd..fcbd0b500b 100644 --- a/mobile/android/fenix/app/src/main/res/values/static_strings.xml +++ b/mobile/android/fenix/app/src/main/res/values/static_strings.xml -@@ -220,4 +220,15 @@ +@@ -229,4 +229,15 @@ Send Ping Sent %1$s ping @@ -18,3 +29,6 @@ index a211dab268..a487474b24 100644 + Enable JavaScript Just-in-time Compilation (JIT) - Requires Restart + Enable WebAssembly (WASM) +-- +2.49.0 + diff --git a/patches/js-settings.patch b/patches/js-settings.patch index d3783912..580938e4 100644 --- a/patches/js-settings.patch +++ b/patches/js-settings.patch @@ -1,8 +1,24 @@ +From 449860fa5b24aa212bfa6200e3e8786242959fc1 Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 11:35:32 +0530 +Subject: [PATCH] fix(patches): update 'js-settings.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../browser/engine/gecko/GeckoEngine.kt | 78 +++++- + .../components/concept/engine/Settings.kt | 48 ++++ + .../java/org/mozilla/fenix/components/Core.kt | 9 + + .../java/org/mozilla/fenix/utils/Settings.kt | 29 ++ + mobile/android/geckoview/api.txt | 24 ++ + .../geckoview/GeckoRuntimeSettings.java | 256 ++++++++++++++++++ + 6 files changed, 443 insertions(+), 1 deletion(-) + diff --git a/mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngine.kt b/mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngine.kt -index 84ad70e3a4..5dadecd6dd 100644 +index d3bfbfa762..9b5b2eb065 100644 --- a/mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngine.kt +++ b/mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngine.kt -@@ -1089,7 +1089,75 @@ class GeckoEngine( +@@ -1090,7 +1090,75 @@ class GeckoEngine( override val settings: Settings = object : Settings() { override var javascriptEnabled: Boolean get() = runtime.settings.javaScriptEnabled @@ -79,7 +95,7 @@ index 84ad70e3a4..5dadecd6dd 100644 override var webFontsEnabled: Boolean get() = runtime.settings.webFontsEnabled -@@ -1475,6 +1543,14 @@ class GeckoEngine( +@@ -1476,6 +1544,14 @@ class GeckoEngine( }.apply { defaultSettings?.let { this.javascriptEnabled = it.javascriptEnabled @@ -161,10 +177,10 @@ index db66cbe503..fc0414915f 100644 override var webFontsEnabled: Boolean = true, override var automaticFontSizeAdjustment: Boolean = true, diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt -index 3ab8ea1acd..02fd5db723 100644 +index 9a9487a930..b03d803fef 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt -@@ -145,6 +145,15 @@ class Core( +@@ -143,6 +143,15 @@ class Core( */ val engine: Engine by lazyMonitored { val defaultSettings = DefaultSettings( @@ -181,10 +197,10 @@ index 3ab8ea1acd..02fd5db723 100644 remoteDebuggingEnabled = context.settings().isRemoteDebuggingEnabled && Build.VERSION.SDK_INT >= Build.VERSION_CODES.M, 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 b800c22431..9adbf352ba 100644 +index 8e271198b0..511b113886 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 -@@ -1271,6 +1271,35 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1354,6 +1354,35 @@ class Settings(private val appContext: Context) : PreferencesHolder { } } @@ -221,7 +237,7 @@ index b800c22431..9adbf352ba 100644 appContext.getPreferenceKey(R.string.pref_key_show_voice_search), default = true, diff --git a/mobile/android/geckoview/api.txt b/mobile/android/geckoview/api.txt -index e4874b2bad..ca72916674 100644 +index d1af0917aa..a93eedbb6b 100644 --- a/mobile/android/geckoview/api.txt +++ b/mobile/android/geckoview/api.txt @@ -895,6 +895,14 @@ package org.mozilla.geckoview { @@ -270,7 +286,7 @@ index e4874b2bad..ca72916674 100644 method @NonNull public GeckoRuntimeSettings.Builder locales(@Nullable String[]); method @NonNull public GeckoRuntimeSettings.Builder loginAutofillEnabled(boolean); diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java -index 30a300d9eb..86dc6287b9 100644 +index 30a300d9eb..a58cec6097 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java +++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java @@ -137,6 +137,94 @@ public final class GeckoRuntimeSettings extends RuntimeSettings { @@ -550,3 +566,6 @@ index 30a300d9eb..86dc6287b9 100644 /** * Enable the Global Privacy Control Feature. * +-- +2.49.0 + diff --git a/patches/librewolf-rs-blocker.patch b/patches/librewolf-rs-blocker.patch index 478ccfc3..7703c679 100644 --- a/patches/librewolf-rs-blocker.patch +++ b/patches/librewolf-rs-blocker.patch @@ -1,8 +1,21 @@ +From 41407e87dbe226d690371e4cd2f8bf43b5d0e663 Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 11:35:55 +0530 +Subject: [PATCH] fix(patches): update 'librewolf-rs-blocker.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../settings/RemoteSettingsClient.sys.mjs | 17 ++++ + services/settings/Utils.sys.mjs | 86 ++++++++++++++++++- + .../mozapps/extensions/AddonManager.sys.mjs | 2 - + 3 files changed, 101 insertions(+), 4 deletions(-) + diff --git a/services/settings/RemoteSettingsClient.sys.mjs b/services/settings/RemoteSettingsClient.sys.mjs index 32dcdd45d8..fc1e8b0de1 100644 --- a/services/settings/RemoteSettingsClient.sys.mjs +++ b/services/settings/RemoteSettingsClient.sys.mjs -@@ -228,6 +228,11 @@ +@@ -228,6 +228,11 @@ class AttachmentDownloader extends Downloader { * @see Downloader.download */ async download(record, options) { @@ -14,7 +27,7 @@ index 32dcdd45d8..fc1e8b0de1 100644 try { // Explicitly await here to ensure we catch a network error. return await super.download(record, options); -@@ -620,6 +625,10 @@ +@@ -620,6 +625,10 @@ export class RemoteSettingsClient extends EventEmitter { return; } @@ -25,7 +38,7 @@ index 32dcdd45d8..fc1e8b0de1 100644 // We want to know which timestamp we are expected to obtain in order to leverage // cache busting. We don't provide ETag because we don't want a 304. const { changes } = await lazy.Utils.fetchLatestChanges( -@@ -981,6 +990,14 @@ +@@ -981,6 +990,14 @@ export class RemoteSettingsClient extends EventEmitter { * Import the JSON files from services/settings/dump into the local DB. */ async _importJSONDump() { @@ -41,10 +54,10 @@ index 32dcdd45d8..fc1e8b0de1 100644 const result = await lazy.RemoteSettingsWorker.importJSONDump( this.bucketName, diff --git a/services/settings/Utils.sys.mjs b/services/settings/Utils.sys.mjs -index d3643aedf2..d3d7127dbf 100644 +index d3643aedf2..f8e67ca365 100644 --- a/services/settings/Utils.sys.mjs +++ b/services/settings/Utils.sys.mjs -@@ -75,6 +75,18 @@ +@@ -75,6 +75,18 @@ ChromeUtils.defineLazyGetter(lazy, "allowServerURLOverride", () => { return false; }); @@ -63,10 +76,11 @@ index d3643aedf2..d3d7127dbf 100644 XPCOMUtils.defineLazyPreferenceGetter( lazy, "gServerURL", -@@ -206,11 +218,79 @@ +@@ -205,12 +217,80 @@ export var Utils = { + return false; }, - /** ++ /** + * Internal code to determine whether the bucket and collection are allowed to + * be loaded by the remote settings client for a given list of allowed + * bucket/collection combinations. @@ -135,7 +149,7 @@ index d3643aedf2..d3d7127dbf 100644 + return false; + }, + -+ /** + /** * A wrapper around `ServiceRequest` that behaves like `fetch()`. * * Use this in order to leverage the `beConservative` flag, for @@ -144,7 +158,7 @@ index d3643aedf2..d3d7127dbf 100644 * @param input a resource * @param init request options * @returns a Response object -@@ -483,7 +563,9 @@ +@@ -483,7 +563,9 @@ export var Utils = { } return { @@ -156,10 +170,10 @@ index d3643aedf2..d3d7127dbf 100644 serverTimeMillis, backoffSeconds, diff --git a/toolkit/mozapps/extensions/AddonManager.sys.mjs b/toolkit/mozapps/extensions/AddonManager.sys.mjs -index 044e2960be..8837020d49 100644 +index 883e8389ee..ef86a2d1fa 100644 --- a/toolkit/mozapps/extensions/AddonManager.sys.mjs +++ b/toolkit/mozapps/extensions/AddonManager.sys.mjs -@@ -4585,8 +4585,6 @@ AMRemoteSettings = { +@@ -4588,8 +4588,6 @@ AMRemoteSettings = { */ RS_ENTRIES_MAP: { installTriggerDeprecation: [ @@ -168,3 +182,6 @@ index 044e2960be..8837020d49 100644 ], quarantinedDomains: ["extensions.quarantinedDomains.list"], }, +-- +2.49.0 + diff --git a/patches/prevent-extensions-from-changing-browser-settings.patch b/patches/prevent-extensions-from-changing-browser-settings.patch index bfd2f0c0..65372760 100644 --- a/patches/prevent-extensions-from-changing-browser-settings.patch +++ b/patches/prevent-extensions-from-changing-browser-settings.patch @@ -1,3 +1,16 @@ +From accaf1ff8b1b530308f56ec568407bbbb6af557c Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 11:36:27 +0530 +Subject: [PATCH] fix(patches): update + 'prevent-extensions-from-changing-browser-settings.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../extensions/parent/ext-browserSettings.js | 18 ++++++++++++++++++ + .../extensions/parent/ext-privacy.js | 11 +++++++++++ + 2 files changed, 29 insertions(+) + diff --git a/toolkit/components/extensions/parent/ext-browserSettings.js b/toolkit/components/extensions/parent/ext-browserSettings.js index 7b292f76b8..fcd040e44f 100644 --- a/toolkit/components/extensions/parent/ext-browserSettings.js @@ -238,3 +251,6 @@ index 1c4bf05ff1..6ba0a16913 100644 setCallback(value) { function tlsStringToVersion(string) { +-- +2.49.0 + diff --git a/patches/remote-debugging.patch b/patches/remote-debugging.patch index 98f4332b..5b09fa7b 100644 --- a/patches/remote-debugging.patch +++ b/patches/remote-debugging.patch @@ -1,8 +1,20 @@ +From 9816515be3ac9ef7eb0e24880a1be1123257f9f5 Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 11:36:51 +0530 +Subject: [PATCH] fix(patches): update 'remote-debugging.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../app/src/main/java/org/mozilla/fenix/utils/Settings.kt | 5 +---- + mobile/android/fenix/app/src/main/res/xml/preferences.xml | 6 ------ + 2 files changed, 1 insertion(+), 10 deletions(-) + 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 b800c22431..269b8747d8 100644 +index 8e271198b0..90f4bbdeab 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 -@@ -341,10 +341,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -382,10 +382,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { true, ) @@ -31,3 +43,6 @@ index 3b85a2a548..fe80e3b595 100644 +Date: Mon, 28 Apr 2025 11:37:14 +0530 +Subject: [PATCH] fix(patches): update 'remove-default-sites.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../app/src/main/java/org/mozilla/fenix/utils/Settings.kt | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + 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 777a555948..92730e1fe5 100644 +index 8e271198b0..94ce73b3b5 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 -@@ -1072,10 +1072,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1155,10 +1155,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { default = true, ) @@ -14,3 +25,6 @@ index 777a555948..92730e1fe5 100644 var shouldShowSearchSuggestionsInPrivate by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_show_search_suggestions_in_private), +-- +2.49.0 + diff --git a/patches/remove-webcompat-reporter.patch b/patches/remove-webcompat-reporter.patch index 65cb8ab7..f54a9331 100644 --- a/patches/remove-webcompat-reporter.patch +++ b/patches/remove-webcompat-reporter.patch @@ -1,8 +1,26 @@ +From 4279898097c771367f86897c4d48a0e0d1e575b1 Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 11:37:38 +0530 +Subject: [PATCH] fix(patches): update 'remove-webcompat-reporter.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../android-components/.buildconfig.yml | 23 ------------------- + .../samples/browser/build.gradle | 1 - + mobile/android/fenix/.buildconfig.yml | 1 - + mobile/android/fenix/app/build.gradle | 1 - + .../java/org/mozilla/fenix/FeatureFlags.kt | 2 +- + .../components/menu/MenuDialogFragment.kt | 3 +-- + .../fenix/components/menu/compose/MainMenu.kt | 4 ++-- + .../components/toolbar/DefaultToolbarMenu.kt | 5 +--- + 8 files changed, 5 insertions(+), 35 deletions(-) + diff --git a/mobile/android/android-components/.buildconfig.yml b/mobile/android/android-components/.buildconfig.yml -index 391430e6f7..a2d266df77 100644 +index 26e76a18d2..8ee7e10a15 100644 --- a/mobile/android/android-components/.buildconfig.yml +++ b/mobile/android/android-components/.buildconfig.yml -@@ -1445,28 +1445,6 @@ projects: +@@ -1521,28 +1521,6 @@ projects: - support-webextensions - tooling-lint - ui-icons @@ -31,19 +49,19 @@ index 391430e6f7..a2d266df77 100644 feature-webnotifications: description: Feature component for Web Notifications. path: components/feature/webnotifications -@@ -1656,7 +1634,6 @@ projects: - - feature-tabs +@@ -1744,7 +1722,6 @@ projects: - feature-toolbar + - feature-top-sites - feature-webcompat - - feature-webcompat-reporter - feature-webnotifications - lib-crash - lib-dataprotect diff --git a/mobile/android/android-components/samples/browser/build.gradle b/mobile/android/android-components/samples/browser/build.gradle -index 4e51f76bbb..c56260c40d 100644 +index bd70dd476b..bf43d5834e 100644 --- a/mobile/android/android-components/samples/browser/build.gradle +++ b/mobile/android/android-components/samples/browser/build.gradle -@@ -118,7 +118,6 @@ dependencies { +@@ -114,7 +114,6 @@ dependencies { implementation project(':feature-findinpage') implementation project(':feature-sitepermissions') implementation project(':feature-webcompat') @@ -52,10 +70,10 @@ index 4e51f76bbb..c56260c40d 100644 implementation project(':feature-addons') diff --git a/mobile/android/fenix/.buildconfig.yml b/mobile/android/fenix/.buildconfig.yml -index 7a0541681b..05c8388f0d 100644 +index b5aa2ce3a4..4aefd0fc43 100644 --- a/mobile/android/fenix/.buildconfig.yml +++ b/mobile/android/fenix/.buildconfig.yml -@@ -58,7 +58,6 @@ projects: +@@ -59,7 +59,6 @@ projects: - feature-top-sites - feature-webauthn - feature-webcompat @@ -64,10 +82,10 @@ index 7a0541681b..05c8388f0d 100644 - lib-crash - lib-crash-sentry diff --git a/mobile/android/fenix/app/build.gradle b/mobile/android/fenix/app/build.gradle -index b16b9b845d..d3243f45fa 100644 +index 7535453460..160ac8422e 100644 --- a/mobile/android/fenix/app/build.gradle +++ b/mobile/android/fenix/app/build.gradle -@@ -627,7 +627,6 @@ dependencies { +@@ -634,7 +634,6 @@ dependencies { implementation project(':feature-webauthn') implementation project(':feature-webcompat') implementation project(':feature-webnotifications') @@ -75,6 +93,33 @@ index b16b9b845d..d3243f45fa 100644 implementation project(':service-pocket') implementation project(':service-mars') +diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt +index 7f435ae784..ba6576a5db 100644 +--- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt ++++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt +@@ -81,7 +81,7 @@ object FeatureFlags { + /** + * Enables native WebCompat Reporter. + */ +- const val webCompatReporter = true ++ const val webCompatReporter = false + + /** + * Enables the tab swipe to dismiss rewrite. +diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/MenuDialogFragment.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/MenuDialogFragment.kt +index 514f270d17..25ec170e81 100644 +--- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/MenuDialogFragment.kt ++++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/MenuDialogFragment.kt +@@ -312,8 +312,7 @@ class MenuDialogFragment : BottomSheetDialogFragment() { + val translateLanguageCode = selectedTab?.translationsState?.translationEngineState + ?.requestedTranslationPair?.toLanguage + val isExtensionsProcessDisabled = browserStore.state.extensionsProcessDisabled +- val isWebCompatReporterSupported = +- FxNimbus.features.menuRedesign.value().reportSiteIssue ++ val isWebCompatReporterSupported = false + + val isDesktopMode by store.observeAsState(initialValue = false) { state -> + state.isDesktopMode diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/compose/MainMenu.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/compose/MainMenu.kt index 136ddf0fda..40534be709 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/compose/MainMenu.kt @@ -97,20 +142,6 @@ index 136ddf0fda..40534be709 100644 showQuitMenu = true, isExtensionsProcessDisabled = false, extensionsMenuItemDescription = "No extensions enabled", -diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/MenuDialogFragment.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/MenuDialogFragment.kt -index 760259e9fd..6b56038867 100644 ---- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/MenuDialogFragment.kt -+++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/MenuDialogFragment.kt -@@ -311,8 +311,7 @@ class MenuDialogFragment : BottomSheetDialogFragment() { - val translateLanguageCode = selectedTab?.translationsState?.translationEngineState - ?.requestedTranslationPair?.toLanguage - val isExtensionsProcessDisabled = browserStore.state.extensionsProcessDisabled -- val isWebCompatReporterSupported = -- FxNimbus.features.menuRedesign.value().reportSiteIssue -+ val isWebCompatReporterSupported = false - - val isDesktopMode by store.observeAsState(initialValue = false) { state -> - state.isDesktopMode diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt index 92c7c8b36c..7223a6de8e 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt @@ -127,15 +158,6 @@ index 92c7c8b36c..7223a6de8e 100644 } // End of predicates // -diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt ---- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt -+++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt -@@ -91,7 +91,7 @@ - /** - * Enables native WebCompat Reporter. - */ -- const val webCompatReporter = true -+ const val webCompatReporter = false - - /** - * Enables the tab swipe to dismiss rewrite. +-- +2.49.0 + diff --git a/patches/restrict-mozaddonmanager.patch b/patches/restrict-mozaddonmanager.patch index f4919e3b..ae342ab5 100644 --- a/patches/restrict-mozaddonmanager.patch +++ b/patches/restrict-mozaddonmanager.patch @@ -1,3 +1,15 @@ +From a16cb60bd9c49a383eb5656c638e119d62a61083 Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 11:38:02 +0530 +Subject: [PATCH] fix(patches): update 'restrict-mozaddonmanager.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + toolkit/mozapps/extensions/amManager.sys.mjs | 10 ---------- + toolkit/mozapps/extensions/amWebAPI.sys.mjs | 4 +--- + 2 files changed, 1 insertion(+), 13 deletions(-) + diff --git a/toolkit/mozapps/extensions/amManager.sys.mjs b/toolkit/mozapps/extensions/amManager.sys.mjs index 3d9f3e6b40..aa1ed91690 100644 --- a/toolkit/mozapps/extensions/amManager.sys.mjs @@ -44,3 +56,6 @@ index 59d093603a..0c9d9c6176 100644 return null; } let addon = new Addon(this.window, this.broker, addonInfo); +-- +2.49.0 + diff --git a/patches/rs-dumps.patch b/patches/rs-dumps.patch index b77464f8..10cc18f5 100644 --- a/patches/rs-dumps.patch +++ b/patches/rs-dumps.patch @@ -1,3 +1,16 @@ +From bf36c34afb88f493557bd85784c729caa9159d58 Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 11:38:19 +0530 +Subject: [PATCH] fix(patches): update 'rs-dumps.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + services/settings/dumps/blocklists/moz.build | 20 +++++++++---------- + services/settings/dumps/main/moz.build | 9 +++++++++ + .../settings/dumps/security-state/moz.build | 7 +++---- + 3 files changed, 22 insertions(+), 14 deletions(-) + diff --git a/services/settings/dumps/blocklists/moz.build b/services/settings/dumps/blocklists/moz.build index 485e888f6a..17d75af900 100644 --- a/services/settings/dumps/blocklists/moz.build @@ -28,7 +41,7 @@ index 485e888f6a..17d75af900 100644 + "addons-bloomfilters/softblocks-addons-mlbf.bin.meta.json", +] diff --git a/services/settings/dumps/main/moz.build b/services/settings/dumps/main/moz.build -index f07d3a35f3..1770884ff6 100644 +index f07d3a35f3..66c505699f 100644 --- a/services/settings/dumps/main/moz.build +++ b/services/settings/dumps/main/moz.build @@ -37,7 +37,16 @@ if not CONFIG["MOZ_BUILD_APP"].startswith("mobile/"): @@ -63,3 +76,6 @@ index 6e92217dcb..d6c81e5643 100644 +FINAL_TARGET_FILES.defaults.settings["security-state"] += [ + "intermediates.json", +] +-- +2.49.0 + diff --git a/patches/safe-browsing.patch b/patches/safe-browsing.patch index 1133d123..458bfcaf 100644 --- a/patches/safe-browsing.patch +++ b/patches/safe-browsing.patch @@ -1,8 +1,27 @@ +From c2c709b74fd3cc4d038a02cee6e5d9f164d3df01 Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 11:38:38 +0530 +Subject: [PATCH] fix(patches): update 'safe-browsing.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../browser/engine/gecko/GeckoEngine.kt | 18 ++++++ + .../components/concept/engine/Settings.kt | 12 ++++ + .../java/org/mozilla/fenix/components/Core.kt | 2 + + .../fenix/settings/SettingsFragment.kt | 21 ++++++ + .../java/org/mozilla/fenix/utils/Settings.kt | 7 ++ + .../src/main/res/values/preference_keys.xml | 3 + + .../app/src/main/res/xml/preferences.xml | 6 ++ + mobile/android/geckoview/api.txt | 6 ++ + .../geckoview/GeckoRuntimeSettings.java | 64 +++++++++++++++++++ + 9 files changed, 139 insertions(+) + diff --git a/mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngine.kt b/mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngine.kt -index 84ad70e3a4..14f87ad9be 100644 +index d3bfbfa762..0c04eb91ee 100644 --- a/mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngine.kt +++ b/mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngine.kt -@@ -1113,6 +1113,22 @@ class GeckoEngine( +@@ -1114,6 +1114,22 @@ class GeckoEngine( runtime.settings.contentBlocking.setSafeBrowsing(policy) field = value } @@ -25,7 +44,7 @@ index 84ad70e3a4..14f87ad9be 100644 override var trackingProtectionPolicy: TrackingProtectionPolicy? = null set(value) { -@@ -1480,6 +1496,8 @@ class GeckoEngine( +@@ -1481,6 +1497,8 @@ class GeckoEngine( this.automaticLanguageAdjustment = it.automaticLanguageAdjustment this.trackingProtectionPolicy = it.trackingProtectionPolicy this.safeBrowsingPolicy = arrayOf(SafeBrowsingPolicy.RECOMMENDED) @@ -65,10 +84,10 @@ index db66cbe503..8eb6fdec9d 100644 override var cookieBannerHandlingGlobalRules: Boolean = false, override var cookieBannerHandlingGlobalRulesSubFrames: Boolean = false, diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt -index 3ab8ea1acd..1f2d82e5b0 100644 +index 9a9487a930..f901801a96 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt -@@ -167,6 +167,8 @@ class Core( +@@ -169,6 +169,8 @@ class Core( fdlibmMathEnabled = FxNimbus.features.fingerprintingProtection.value().fdlibmMath, cookieBannerHandlingMode = context.settings().getCookieBannerHandling(), cookieBannerHandlingModePrivateBrowsing = context.settings().getCookieBannerHandlingPrivateMode(), @@ -78,10 +97,10 @@ index 3ab8ea1acd..1f2d82e5b0 100644 cookieBannerHandlingGlobalRules = context.settings().shouldEnableCookieBannerGlobalRules, cookieBannerHandlingGlobalRulesSubFrames = context.settings().shouldEnableCookieBannerGlobalRulesSubFrame, diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt -index 1b318ffee7..fa641f86bb 100644 +index ad6678f234..6e25b8b6df 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt -@@ -561,6 +561,7 @@ class SettingsFragment : PreferenceFragmentCompat() { +@@ -563,6 +563,7 @@ class SettingsFragment : PreferenceFragmentCompat() { (requireContext().components.core.engine.profiler?.isProfilerActive() != null) } setupCookieBannerPreference() @@ -89,7 +108,7 @@ index 1b318ffee7..fa641f86bb 100644 setupInstallAddonFromFilePreference(requireContext().settings()) setLinkSharingPreference() setupAmoCollectionOverridePreference(requireContext().settings()) -@@ -786,6 +787,26 @@ class SettingsFragment : PreferenceFragmentCompat() { +@@ -789,6 +790,26 @@ class SettingsFragment : PreferenceFragmentCompat() { } } @@ -117,10 +136,10 @@ index 1b318ffee7..fa641f86bb 100644 internal fun setupInstallAddonFromFilePreference(settings: Settings) { with(requirePreference(R.string.pref_key_install_local_addon)) { 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 b800c22431..d22e761709 100644 +index 8e271198b0..b6d118ef12 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 -@@ -717,6 +717,13 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -786,6 +786,13 @@ class Settings(private val appContext: Context) : PreferencesHolder { val queryParameterStrippingStripList: String get() = queryParameterStrippingSection[QUERY_PARAMETER_STRIPPING_STRIP_LIST].orEmpty() @@ -135,10 +154,10 @@ index b800c22431..d22e761709 100644 /** * Declared as a function for performance purposes. This could be declared as a variable using diff --git a/mobile/android/fenix/app/src/main/res/values/preference_keys.xml b/mobile/android/fenix/app/src/main/res/values/preference_keys.xml -index a1993c808f..026f53266e 100644 +index dbb7ece65c..e334b7586c 100644 --- a/mobile/android/fenix/app/src/main/res/values/preference_keys.xml +++ b/mobile/android/fenix/app/src/main/res/values/preference_keys.xml -@@ -218,6 +218,9 @@ +@@ -224,6 +224,9 @@ pref_key_tracking_protection_suspected_fingerprinters pref_key_tracking_protection_suspected_fingerprinters_select @@ -166,7 +185,7 @@ index 3b85a2a548..76cbc502d6 100644 +Date: Mon, 28 Apr 2025 11:39:05 +0530 +Subject: [PATCH] fix(patches): update 'sanitize-on-exit.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../src/main/java/org/mozilla/fenix/utils/Settings.kt | 11 ++++++++++- + .../res/xml/delete_browsing_data_quit_preferences.xml | 8 +++++++- + 2 files changed, 17 insertions(+), 2 deletions(-) + 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 b800c22431..c67bb8fe8c 100644 +index 8e271198b0..f776524d8f 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 -@@ -954,7 +954,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1027,7 +1027,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { var shouldDeleteBrowsingDataOnQuit by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_delete_browsing_data_on_quit), @@ -11,8 +23,8 @@ index b800c22431..c67bb8fe8c 100644 ) var deleteOpenTabs by booleanPreference( -@@ -1041,6 +1041,15 @@ class Settings(private val appContext: Context) : PreferencesHolder { - preferences.edit().putBoolean(type.getPreferenceKey(appContext), value).apply() +@@ -1114,6 +1114,15 @@ class Settings(private val appContext: Context) : PreferencesHolder { + preferences.edit { putBoolean(type.getPreferenceKey(appContext), value) } } + init { @@ -76,3 +88,6 @@ index a5cc8cabb6..f61d1e1b71 100644 android:key="@string/pref_key_delete_downloads_on_quit" android:layout="@layout/checkbox_left_preference" android:title="@string/preferences_delete_browsing_data_downloads" /> +-- +2.49.0 + diff --git a/patches/search-engines.patch b/patches/search-engines.patch index f88e35b5..663cb6cd 100644 --- a/patches/search-engines.patch +++ b/patches/search-engines.patch @@ -1,8 +1,19 @@ +From a6d7f0cdcbee01391dd2bd99e751dd4f30bc2d8c Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 11:39:26 +0530 +Subject: [PATCH] fix(patches): update 'search-engines.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../feature/search/storage/SearchEngineReader.kt | 16 +++++++--------- + 1 file changed, 7 insertions(+), 9 deletions(-) + diff --git a/mobile/android/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/storage/SearchEngineReader.kt b/mobile/android/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/storage/SearchEngineReader.kt -index d80ec8592f..05996612c1 100644 +index 263ab0ca4b..deae499592 100644 --- a/mobile/android/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/storage/SearchEngineReader.kt +++ b/mobile/android/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/storage/SearchEngineReader.kt -@@ -29,16 +29,14 @@ internal const val GOOGLE_ID = "google" +@@ -38,16 +38,14 @@ private const val MAX_SIZE = 256 // List of general search engine ids, taken from // https://searchfox.org/mozilla-central/rev/ef0aa879e94534ffd067a3748d034540a9fc10b0/toolkit/components/search/SearchUtils.sys.mjs#200 internal val GENERAL_SEARCH_ENGINE_IDS = setOf( @@ -26,3 +37,6 @@ index d80ec8592f..05996612c1 100644 ) /** +-- +2.49.0 + diff --git a/patches/strict_etp.patch b/patches/strict_etp.patch index c9847ce8..da64e828 100644 --- a/patches/strict_etp.patch +++ b/patches/strict_etp.patch @@ -1,8 +1,20 @@ +From 84b30965972a87d254e9a5377fb3621c440db448 Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 11:39:59 +0530 +Subject: [PATCH] fix(patches): update 'strict_etp.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../java/org/mozilla/fenix/utils/Settings.kt | 20 ++++--------------- + .../xml/tracking_protection_preferences.xml | 16 +++++++++------ + 2 files changed, 14 insertions(+), 22 deletions(-) + 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 b800c22431..442ee37df4 100644 +index 8e271198b0..0c7a2c731c 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 -@@ -672,10 +672,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -741,10 +741,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { default = false, ) @@ -14,7 +26,7 @@ index b800c22431..442ee37df4 100644 var shouldEnableGlobalPrivacyControl by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_privacy_enable_global_privacy_control), -@@ -782,20 +779,11 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -851,20 +848,11 @@ class Settings(private val appContext: Context) : PreferencesHolder { default = false, ) @@ -39,7 +51,7 @@ index b800c22431..442ee37df4 100644 @VisibleForTesting(otherwise = PRIVATE) fun setStrictETP() { diff --git a/mobile/android/fenix/app/src/main/res/xml/tracking_protection_preferences.xml b/mobile/android/fenix/app/src/main/res/xml/tracking_protection_preferences.xml -index 712c890683..64a9670543 100644 +index 2760c9c367..10835b79e3 100644 --- a/mobile/android/fenix/app/src/main/res/xml/tracking_protection_preferences.xml +++ b/mobile/android/fenix/app/src/main/res/xml/tracking_protection_preferences.xml @@ -14,25 +14,29 @@ @@ -78,3 +90,6 @@ index 712c890683..64a9670543 100644 +Date: Mon, 28 Apr 2025 11:40:41 +0530 +Subject: [PATCH] fix(patches): update 'tor-spoof-english.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + .../browser/engine/gecko/GeckoEngine.kt | 10 ++++++ + .../components/concept/engine/Settings.kt | 3 ++ + .../java/org/mozilla/fenix/components/Core.kt | 1 + + .../DefaultLocaleSettingsController.kt | 5 +++ + .../advanced/LocaleSettingsFragment.kt | 15 ++++++++- + .../java/org/mozilla/fenix/utils/Settings.kt | 5 +++ + .../res/layout/fragment_locale_settings.xml | 24 ++++++++++++-- + .../src/main/res/values/preference_keys.xml | 2 ++ + mobile/android/geckoview/api.txt | 3 ++ + .../geckoview/GeckoRuntimeSettings.java | 33 +++++++++++++++++++ + .../geckoview/GeckoViewStartup.sys.mjs | 5 +++ + 11 files changed, 102 insertions(+), 4 deletions(-) + diff --git a/mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngine.kt b/mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngine.kt +index d3bfbfa762..876cbc2672 100644 --- a/mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngine.kt +++ b/mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngine.kt -@@ -1465,6 +1465,15 @@ +@@ -1466,6 +1466,15 @@ class GeckoEngine( get() = runtime.settings.cookieBehaviorOptInPartitioningPBM set(value) { runtime.settings.setCookieBehaviorOptInPartitioningPBM(value) } @@ -17,7 +39,7 @@ diff --git a/mobile/android/android-components/components/browser/engine-gecko/s override var certificateTransparencyMode: Int get() = runtime.settings.certificateTransparencyMode set(value) { runtime.settings.setCertificateTransparencyMode(value) } -@@ -1508,6 +1517,7 @@ +@@ -1513,6 +1522,7 @@ class GeckoEngine( this.parallelMarkingEnabled = it.parallelMarkingEnabled this.cookieBehaviorOptInPartitioning = it.cookieBehaviorOptInPartitioning this.cookieBehaviorOptInPartitioningPBM = it.cookieBehaviorOptInPartitioningPBM @@ -26,9 +48,10 @@ diff --git a/mobile/android/android-components/components/browser/engine-gecko/s this.postQuantumKeyExchangeEnabled = it.postQuantumKeyExchangeEnabled } diff --git a/mobile/android/android-components/components/concept/engine/src/main/java/mozilla/components/concept/engine/Settings.kt b/mobile/android/android-components/components/concept/engine/src/main/java/mozilla/components/concept/engine/Settings.kt +index db66cbe503..cb8ad3ca35 100644 --- a/mobile/android/android-components/components/concept/engine/src/main/java/mozilla/components/concept/engine/Settings.kt +++ b/mobile/android/android-components/components/concept/engine/src/main/java/mozilla/components/concept/engine/Settings.kt -@@ -330,6 +330,8 @@ +@@ -330,6 +330,8 @@ abstract class Settings { */ open var cookieBehaviorOptInPartitioningPBM: Boolean by UnsupportedSetting() @@ -37,7 +60,7 @@ diff --git a/mobile/android/android-components/components/concept/engine/src/mai /** * Setting to control how Certificate Transparency information is processed. */ -@@ -406,6 +408,7 @@ +@@ -406,6 +408,7 @@ data class DefaultSettings( val getDesktopMode: () -> Boolean = { false }, override var cookieBehaviorOptInPartitioning: Boolean = false, override var cookieBehaviorOptInPartitioningPBM: Boolean = false, @@ -46,9 +69,10 @@ diff --git a/mobile/android/android-components/components/concept/engine/src/mai override var postQuantumKeyExchangeEnabled: Boolean = false, ) : Settings() { diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt +index 9a9487a930..5323e9af2e 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt -@@ -178,6 +178,7 @@ +@@ -180,6 +180,7 @@ class Core( webContentIsolationStrategy = WebContentIsolationStrategy.ISOLATE_HIGH_VALUE, fetchPriorityEnabled = FxNimbus.features.networking.value().fetchPriorityEnabled, parallelMarkingEnabled = FxNimbus.features.javascript.value().parallelMarkingEnabled, @@ -57,9 +81,10 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components postQuantumKeyExchangeEnabled = FxNimbus.features.pqcrypto.value().postQuantumKeyExchangeEnabled, ) diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/advanced/DefaultLocaleSettingsController.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/advanced/DefaultLocaleSettingsController.kt +index e387bc4ae0..404c55872a 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/advanced/DefaultLocaleSettingsController.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/advanced/DefaultLocaleSettingsController.kt -@@ -12,6 +12,7 @@ +@@ -12,6 +12,7 @@ import mozilla.components.browser.state.store.BrowserStore import mozilla.components.support.locale.LocaleManager import mozilla.components.support.locale.LocaleUseCases import org.mozilla.fenix.nimbus.FxNimbus @@ -67,7 +92,7 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/a import java.util.Locale interface LocaleSettingsController { -@@ -83,5 +84,9 @@ +@@ -83,5 +84,9 @@ class DefaultLocaleSettingsController( config.setLocale(locale) config.setLayoutDirection(locale) resources.updateConfiguration(config, resources.displayMetrics) @@ -78,9 +103,10 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/a } } diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/advanced/LocaleSettingsFragment.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/advanced/LocaleSettingsFragment.kt +index 91929aab38..a45b807f84 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/advanced/LocaleSettingsFragment.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/advanced/LocaleSettingsFragment.kt -@@ -23,6 +23,8 @@ +@@ -23,6 +23,8 @@ import org.mozilla.fenix.R import org.mozilla.fenix.components.StoreProvider import org.mozilla.fenix.databinding.FragmentLocaleSettingsBinding import org.mozilla.fenix.ext.components @@ -89,7 +115,7 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/a import org.mozilla.fenix.ext.showToolbar class LocaleSettingsFragment : Fragment(), MenuProvider { -@@ -46,6 +48,8 @@ +@@ -46,6 +48,8 @@ class LocaleSettingsFragment : Fragment(), MenuProvider { _binding = FragmentLocaleSettingsBinding.inflate(inflater, container, false) val view = binding.root @@ -98,7 +124,7 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/a val browserStore = requireContext().components.core.store val localeUseCase = LocaleUseCases(browserStore) -@@ -62,10 +66,19 @@ +@@ -62,10 +66,19 @@ class LocaleSettingsFragment : Fragment(), MenuProvider { localeUseCase = localeUseCase, ), ) @@ -120,9 +146,10 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/a inflater.inflate(R.menu.languages_list, menu) val searchItem = menu.findItem(R.id.search) 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 8e271198b0..2d63d0bfc9 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 -@@ -314,6 +314,11 @@ +@@ -355,6 +355,11 @@ class Settings(private val appContext: Context) : PreferencesHolder { false, ) @@ -135,6 +162,7 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Sett appContext.getPreferenceKey(R.string.pref_key_search_engine), default = "", diff --git a/mobile/android/fenix/app/src/main/res/layout/fragment_locale_settings.xml b/mobile/android/fenix/app/src/main/res/layout/fragment_locale_settings.xml +index d235e7043f..d0b3a29e9d 100644 --- a/mobile/android/fenix/app/src/main/res/layout/fragment_locale_settings.xml +++ b/mobile/android/fenix/app/src/main/res/layout/fragment_locale_settings.xml @@ -7,13 +7,31 @@ @@ -173,9 +201,10 @@ diff --git a/mobile/android/fenix/app/src/main/res/layout/fragment_locale_settin diff --git a/mobile/android/fenix/app/src/main/res/values/preference_keys.xml b/mobile/android/fenix/app/src/main/res/values/preference_keys.xml +index dbb7ece65c..2b71de93f2 100644 --- a/mobile/android/fenix/app/src/main/res/values/preference_keys.xml +++ b/mobile/android/fenix/app/src/main/res/values/preference_keys.xml -@@ -445,6 +445,8 @@ +@@ -457,6 +457,8 @@ pref_key_doh_settings_enabled @@ -183,11 +212,12 @@ diff --git a/mobile/android/fenix/app/src/main/res/values/preference_keys.xml b/ + pref_key_glean_usage_profile_id - + diff --git a/mobile/android/geckoview/api.txt b/mobile/android/geckoview/api.txt +index d1af0917aa..b64dfd5cca 100644 --- a/mobile/android/geckoview/api.txt +++ b/mobile/android/geckoview/api.txt -@@ -905,6 +905,7 @@ +@@ -905,6 +905,7 @@ package org.mozilla.geckoview { method public boolean getRemoteDebuggingEnabled(); method @Nullable public GeckoRuntime getRuntime(); method @Nullable public Rect getScreenSizeOverride(); @@ -195,7 +225,7 @@ diff --git a/mobile/android/geckoview/api.txt b/mobile/android/geckoview/api.txt method public boolean getTranslationsOfferPopup(); method @NonNull public List getTrustedRecursiveResolverExcludedDomains(); method @NonNull public String getTrustedRecursiveResolverUri(); -@@ -948,6 +949,7 @@ +@@ -948,6 +949,7 @@ package org.mozilla.geckoview { method @NonNull public GeckoRuntimeSettings setPostQuantumKeyExchangeEnabled(boolean); method @NonNull public GeckoRuntimeSettings setPreferredColorScheme(int); method @NonNull public GeckoRuntimeSettings setRemoteDebuggingEnabled(boolean); @@ -203,7 +233,7 @@ diff --git a/mobile/android/geckoview/api.txt b/mobile/android/geckoview/api.txt method @NonNull public GeckoRuntimeSettings setTranslationsOfferPopup(boolean); method @NonNull public GeckoRuntimeSettings setTrustedRecursiveResolverExcludedDomains(@NonNull List); method @NonNull public GeckoRuntimeSettings setTrustedRecursiveResolverMode(int); -@@ -1010,6 +1012,7 @@ +@@ -1010,6 +1012,7 @@ package org.mozilla.geckoview { method @NonNull public GeckoRuntimeSettings.Builder preferredColorScheme(int); method @NonNull public GeckoRuntimeSettings.Builder remoteDebuggingEnabled(boolean); method @NonNull public GeckoRuntimeSettings.Builder screenSizeOverride(int, int); @@ -212,9 +242,10 @@ diff --git a/mobile/android/geckoview/api.txt b/mobile/android/geckoview/api.txt method @NonNull public GeckoRuntimeSettings.Builder trustedRecursiveResolverMode(int); method @NonNull public GeckoRuntimeSettings.Builder trustedRecursiveResolverUri(@NonNull String); diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java +index 30a300d9eb..a41a0976ba 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java +++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java -@@ -601,6 +601,17 @@ +@@ -601,6 +601,17 @@ public final class GeckoRuntimeSettings extends RuntimeSettings { getSettings().setLargeKeepaliveFactor(factor); return this; } @@ -232,7 +263,7 @@ diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoR } private GeckoRuntime mRuntime; -@@ -700,6 +711,7 @@ +@@ -700,6 +711,7 @@ public final class GeckoRuntimeSettings extends RuntimeSettings { new Pref("network.cookie.cookieBehavior.optInPartitioning.pbmode", false); /* package */ final Pref mCertificateTransparencyMode = new Pref("security.pki.certificate_transparency.mode", 0); @@ -240,7 +271,7 @@ diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoR /* package */ final Pref mPostQuantumKeyExchangeTLSEnabled = new Pref("security.tls.enable_kyber", false); /* package */ final Pref mPostQuantumKeyExchangeHttp3Enabled = -@@ -2048,6 +2060,27 @@ +@@ -2048,6 +2060,27 @@ public final class GeckoRuntimeSettings extends RuntimeSettings { return this; } @@ -269,9 +300,10 @@ diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoR public void writeToParcel(final Parcel out, final int flags) { super.writeToParcel(out, flags); diff --git a/mobile/shared/components/geckoview/GeckoViewStartup.sys.mjs b/mobile/shared/components/geckoview/GeckoViewStartup.sys.mjs +index 4483941f8e..1ca52f75bc 100644 --- a/mobile/shared/components/geckoview/GeckoViewStartup.sys.mjs +++ b/mobile/shared/components/geckoview/GeckoViewStartup.sys.mjs -@@ -11,6 +11,7 @@ +@@ -11,6 +11,7 @@ ChromeUtils.defineESModuleGetters(lazy, { ActorManagerParent: "resource://gre/modules/ActorManagerParent.sys.mjs", EventDispatcher: "resource://gre/modules/Messaging.sys.mjs", PdfJs: "resource://pdf.js/PdfJs.sys.mjs", @@ -279,7 +311,7 @@ diff --git a/mobile/shared/components/geckoview/GeckoViewStartup.sys.mjs b/mobil }); const { debug, warn } = GeckoViewUtils.initLogging("Startup"); -@@ -339,6 +340,10 @@ +@@ -339,6 +340,10 @@ export class GeckoViewStartup { if (aData.requestedLocales) { Services.locale.requestedLocales = aData.requestedLocales; } @@ -290,3 +322,6 @@ diff --git a/mobile/shared/components/geckoview/GeckoViewStartup.sys.mjs b/mobil const pls = Cc["@mozilla.org/pref-localizedstring;1"].createInstance( Ci.nsIPrefLocalizedString ); +-- +2.49.0 + diff --git a/patches/ublock-assets.patch b/patches/ublock-assets.patch index 5b151501..93f8502f 100644 --- a/patches/ublock-assets.patch +++ b/patches/ublock-assets.patch @@ -1,5 +1,17 @@ +From 3847b868839f795d0e29a6f70682070ac2804df8 Mon Sep 17 00:00:00 2001 +From: Akash Yadav +Date: Mon, 28 Apr 2025 11:40:21 +0530 +Subject: [PATCH] fix(patches): update 'ublock-assets.patch' for + 'FIREFOX_138_0_BUILD1' + +Signed-off-by: Akash Yadav +--- + toolkit/components/extensions/NativeManifests.sys.mjs | 2 +- + toolkit/components/extensions/parent/ext-storage.js | 8 ++++++++ + 2 files changed, 9 insertions(+), 1 deletion(-) + diff --git a/toolkit/components/extensions/NativeManifests.sys.mjs b/toolkit/components/extensions/NativeManifests.sys.mjs -index 282597c2db..9a630fa942 100644 +index ef3d1152ff..ca88c38529 100644 --- a/toolkit/components/extensions/NativeManifests.sys.mjs +++ b/toolkit/components/extensions/NativeManifests.sys.mjs @@ -36,7 +36,7 @@ export var NativeManifests = { @@ -12,10 +24,10 @@ index 282597c2db..9a630fa942 100644 Services.dirsvc.get("XREUserNativeManifests", Ci.nsIFile).path, Services.dirsvc.get("XRESysNativeManifests", Ci.nsIFile).path, diff --git a/toolkit/components/extensions/parent/ext-storage.js b/toolkit/components/extensions/parent/ext-storage.js -index 7340546f37..6097cef49f 100644 +index 61eb0fb48e..ecdd2bae9a 100644 --- a/toolkit/components/extensions/parent/ext-storage.js +++ b/toolkit/components/extensions/parent/ext-storage.js -@@ -403,6 +403,14 @@ this.storage = class extends ExtensionAPIPersistent { +@@ -391,6 +391,14 @@ this.storage = class extends ExtensionAPIPersistent { let data = await lookup; if (!data) { @@ -30,3 +42,6 @@ index 7340546f37..6097cef49f 100644 return Promise.reject({ message: "Managed storage manifest not found", }); +-- +2.49.0 +