From 63a99045b4f2016a93e2e52f76279ed2b3ef0e16 Mon Sep 17 00:00:00 2001 From: celenity Date: Tue, 22 Jul 2025 08:21:43 -0400 Subject: [PATCH] WIP: v141.0 Signed-off-by: celenity --- docs/Features.md | 1 - patches/block-cookie-banners.patch | 4 +- patches/branding.patch | 18 +- patches/certificate-pinning.patch | 15 +- patches/configure-doh.patch | 8 +- patches/default-site-permissions.patch | 8 +- patches/disable-amo-collections.patch | 2 +- patches/disable-autocomplete.patch | 4 +- patches/disable-autofill.patch | 8 +- patches/disable-contile.patch | 4 +- patches/disable-doh-canary.patch | 4 +- patches/disable-firefox-suggest.patch | 14 +- patches/disable-link-sharing.patch | 17 +- patches/disable-mars.patch | 6 +- patches/disable-microsurveys.patch | 8 +- patches/disable-nags.patch | 75 +++---- ...able-network-connectivity-monitoring.patch | 4 +- patches/disable-pocket.patch | 25 +-- .../disable-recent-search-suggestions.patch | 8 +- .../disable-remote-search-configuration.patch | 8 +- patches/disable-search-suggestions.patch | 6 +- patches/disable-shipped-domains.patch | 4 +- patches/disable-sync-avatar-fetching.patch | 2 +- .../disable-trending-search-suggestions.patch | 6 +- .../domain-highlighting-and-alignment.patch | 115 ---------- patches/enable-secret-settings.patch | 63 ++++-- patches/enable-secure-storage.patch | 8 +- patches/fenix-disable-crash-reporting.patch | 99 +++++---- patches/fenix-disable-nimbus.patch | 111 +++++++--- patches/fenix-disable-telemetry.patch | 54 ++--- ...tings-support-accessibility-services.patch | 6 +- ...-support-cross-origin-referer-policy.patch | 4 +- ...support-preferred-website-appearance.patch | 4 +- patches/fenix-ironfox-settings.patch | 24 +-- patches/fenix-liberate.patch | 204 ++++++++++-------- patches/force-enable-zoom.patch | 2 +- patches/gecko-disable-nimbus.patch | 4 +- patches/gecko-disable-telemetry.patch | 12 +- ...onfox-settings-support-spoof-english.patch | 6 +- patches/gecko-ironfox-settings.patch | 39 ++-- patches/gecko-liberate.patch | 6 +- patches/gecko-localize_maven.patch | 20 +- .../RFPTargetsDefault.inc | 1 + patches/harden-pdfjs.patch | 26 +-- patches/https_only.patch | 4 +- ...stall-addons-without-mozaddonmanager.patch | 4 +- patches/install-ublock.patch | 4 +- patches/ironfox-home.patch | 29 +-- patches/librewolf-rs-blocker.patch | 12 +- patches/mach-disable-telemetry.patch | 2 +- patches/prevent-pdfjs-fingerprinting.patch | 2 +- patches/remote-debugging.patch | 4 +- patches/remove-autoconfig-dependency.patch | 2 +- patches/remove-webcompat-reporter.patch | 158 +++++++------- patches/sanitize-on-exit.patch | 6 +- patches/strict_etp.patch | 6 +- patches/stub-beacon.patch | 4 +- patches/tab-strip.patch | 17 +- patches/unifiedpush.patch | 100 ++++----- scripts/build.sh | 2 +- scripts/patches.yaml | 7 - scripts/prebuild.sh | 1 - scripts/versions.sh | 10 +- 63 files changed, 685 insertions(+), 756 deletions(-) delete mode 100644 patches/domain-highlighting-and-alignment.patch diff --git a/docs/Features.md b/docs/Features.md index c7935e8..d6a7a29 100644 --- a/docs/Features.md +++ b/docs/Features.md @@ -47,7 +47,6 @@ IronFox **additionally**: ## Security -- Adds domain highlighting and alignment in the toolbar, to protect against phishing, by making it easier for users to identify the actual domain in the URL bar - Disables [accessibility services](https://developer.android.com/guide/topics/ui/accessibility/service) by default, and adds a toggle to enable/disable it, located at `IronFox` -> `IronFox settings` -> `Privacy and security` -> `Enable accessibility services` in settings - Disables autofill of [form data](https://wiki.mozilla.org/Firefox/Features/Form_Autofill) and [log-in credentials](https://support.mozilla.org/kb/autofill-logins-firefox) by default - Disables the browser's [built-in password manager](https://support.mozilla.org/kb/manage-your-logins-firefox-password-manager) by default diff --git a/patches/block-cookie-banners.patch b/patches/block-cookie-banners.patch index 097735a..bde6c3d 100644 --- a/patches/block-cookie-banners.patch +++ b/patches/block-cookie-banners.patch @@ -1,8 +1,8 @@ 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 9197b274db..dd608587a0 100644 +index 8913d9f230..78212d438c 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 -@@ -752,13 +752,13 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -758,13 +758,13 @@ class Settings(private val appContext: Context) : PreferencesHolder { ) val shouldUseCookieBannerPrivateModeDefaultValue: Boolean diff --git a/patches/branding.patch b/patches/branding.patch index 9973766..9e17951 100644 --- a/patches/branding.patch +++ b/patches/branding.patch @@ -12,10 +12,10 @@ index 732a80cb03..7a2fdae0c3 100644 onDispose { diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/about/AboutFragment.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/about/AboutFragment.kt -index e43dec84c6..e462b4c0fe 100644 +index b45fdee550..45dbba4891 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/about/AboutFragment.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/about/AboutFragment.kt -@@ -208,11 +208,11 @@ class AboutFragment( +@@ -206,11 +206,11 @@ class AboutFragment( AboutPageItem( AboutItem.ExternalLink( SUPPORT, @@ -29,7 +29,7 @@ index e43dec84c6..e462b4c0fe 100644 AboutItem.Crashes, getString(R.string.about_crashes), ), -@@ -229,7 +229,7 @@ class AboutFragment( +@@ -227,7 +227,7 @@ class AboutFragment( SupportUtils.getSumoURLForTopic(context, SupportUtils.SumoTopic.YOUR_RIGHTS), ), getString(R.string.about_know_your_rights), @@ -39,11 +39,11 @@ index e43dec84c6..e462b4c0fe 100644 AboutItem.ExternalLink(LICENSING_INFO, ABOUT_LICENSE_URL), getString(R.string.about_licensing_information), 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 c13ecb6c86..588396072d 100644 +index dd0ae4ad87..f05742fcf6 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 -@@ -25,10 +25,10 @@ object SupportUtils { - const val POCKET_TRENDING_URL = "https://getpocket.com/fenix-top-articles" +@@ -24,10 +24,10 @@ object SupportUtils { + const val RATE_APP_URL = "market://details?id=" + BuildConfig.APPLICATION_ID 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/" @@ -55,8 +55,8 @@ index c13ecb6c86..588396072d 100644 + const val GOOGLE_XX_URL = "" + const val WHATS_NEW_URL = "https://gitlab.com/ironfox-oss/IronFox/-/releases" const val FXACCOUNT_SUMO_URL = "https://support.mozilla.org/kb/access-mozilla-services-firefox-account" + const val ANDROID_SUPPORT_SUMO_URL = "mzl.la/AndroidSupport" - // This is locale-less on purpose so that the content negotiation happens on the AMO side because the current 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 e5ab956ac3..8f88bf456e 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/onboarding/OnboardingFragment.kt @@ -155,10 +155,10 @@ index 0e2a6efdc9..3d7ff4a88f 100644 + +include("ironfox.configure") 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 9197b274db..652a7a4486 100644 +index 8913d9f230..0bad31b1a5 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 -@@ -438,7 +438,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -444,7 +444,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { var shouldShowPrivacyPopWindow by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_privacy_pop_window), diff --git a/patches/certificate-pinning.patch b/patches/certificate-pinning.patch index f17fecb..182330a 100644 --- a/patches/certificate-pinning.patch +++ b/patches/certificate-pinning.patch @@ -1,5 +1,5 @@ diff --git a/security/manager/ssl/StaticHPKPins.h b/security/manager/ssl/StaticHPKPins.h -index 058f88d3a1..1f7b2ae123 100644 +index 1ab408a7f1..a39d4e02b6 100644 --- a/security/manager/ssl/StaticHPKPins.h +++ b/security/manager/ssl/StaticHPKPins.h @@ -195,6 +195,26 @@ static const char kUSERTrust_ECC_Certification_AuthorityFingerprint[] = @@ -163,7 +163,7 @@ index 058f88d3a1..1f7b2ae123 100644 { "test-mode.pinning.example.com", true, true, false, -1, &kPinset_mozilla_test }, { "testpilot.firefox.com", false, false, true, 9, &kPinset_mozilla_services }, { "touch.facebook.com", true, false, false, -1, &kPinset_facebook }, -@@ -730,9 +789,101 @@ static const TransportSecurityPreload kPublicKeyPinningPreloadList[] = { +@@ -730,9 +789,96 @@ static const TransportSecurityPreload kPublicKeyPinningPreloadList[] = { { "youtube-nocookie.com", true, false, false, -1, &kPinset_google_root_pems }, { "youtube.com", true, false, false, -1, &kPinset_google_root_pems }, { "ytimg.com", true, false, false, -1, &kPinset_google_root_pems }, @@ -198,6 +198,8 @@ index 058f88d3a1..1f7b2ae123 100644 + { "dict.brave.com", true, false, false, -1, &kPinset_brave }, + { "dove.celenity.dev", true, false, false, -1, &kPinset_celenity }, + { "extensionupdater.brave.com", true, false, false, -1, &kPinset_brave }, ++ { "feedback.brave.com", true, false, false, -1, &kPinset_brave }, ++ { "fg.search.brave.com", true, false, false, -1, &kPinset_brave }, + { "gaia.brave.com", true, false, false, -1, &kPinset_brave }, + { "geo.ads.brave.com", true, false, false, -1, &kPinset_brave }, + { "geo.ads.bravesoftware.com", true, false, false, -1, &kPinset_brave }, @@ -214,13 +216,6 @@ index 058f88d3a1..1f7b2ae123 100644 + { "mta-sts.celenity.dev", true, false, false, -1, &kPinset_celenity }, + { "mywallet.ads.brave.com", true, false, false, -1, &kPinset_brave }, + { "mywallet.ads.bravesoftware.com", true, false, false, -1, &kPinset_brave }, -+ { "p2a.brave.com", true, false, false, -1, &kPinset_brave }, -+ { "p2a-json.brave.com", true, false, false, -1, &kPinset_brave }, -+ { "p3a.brave.com", true, false, false, -1, &kPinset_brave }, -+ { "p3a.bravesoftware.com", true, false, false, -1, &kPinset_brave }, -+ { "p3a-creative.brave.com", true, false, false, -1, &kPinset_brave }, -+ { "p3a-dev.bravesoftware.com", true, false, false, -1, &kPinset_brave }, -+ { "p3a-json.brave.com", true, false, false, -1, &kPinset_brave }, + { "patterns.wdp.brave.com", true, false, false, -1, &kPinset_brave }, + { "payment.rewards.brave.com", true, false, false, -1, &kPinset_brave }, + { "payment.rewards.brave.software", true, false, false, -1, &kPinset_brave }, @@ -262,7 +257,7 @@ index 058f88d3a1..1f7b2ae123 100644 }; -// Pinning Preload List Length = 401; -+// Pinning Preload List Length = 495; ++// Pinning Preload List Length = 490; static const int32_t kUnknownId = -1; diff --git a/patches/configure-doh.patch b/patches/configure-doh.patch index e69d838..a00d673 100644 --- a/patches/configure-doh.patch +++ b/patches/configure-doh.patch @@ -167,10 +167,10 @@ index 028be832d6..47175dcf47 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 9197b274db..f89b2f7ea6 100644 +index 8913d9f230..dd88a35f1d 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt -@@ -2364,7 +2364,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -2350,7 +2350,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { */ val showDohEntryPoint by lazyFeatureFlagPreference( key = appContext.getPreferenceKey(R.string.pref_key_doh_settings_enabled), @@ -179,7 +179,7 @@ index 9197b274db..f89b2f7ea6 100644 featureFlag = true, ) -@@ -2377,7 +2377,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -2363,7 +2363,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { */ private var trrMode by intPreference( key = appContext.getPreferenceKey(R.string.pref_key_doh_settings_mode), @@ -188,7 +188,7 @@ index 9197b274db..f89b2f7ea6 100644 ) /** -@@ -2395,7 +2395,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -2381,7 +2381,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { */ val dohDefaultProviderUrl by stringPreference( key = appContext.getPreferenceKey(R.string.pref_key_doh_default_provider_uri), diff --git a/patches/default-site-permissions.patch b/patches/default-site-permissions.patch index df4cc0a..4895bd6 100644 --- a/patches/default-site-permissions.patch +++ b/patches/default-site-permissions.patch @@ -14,10 +14,10 @@ index a24ff6e34e..e3c15525eb 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 9197b274db..b83b3b3565 100644 +index 8913d9f230..992ebcb1b4 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 -@@ -1298,7 +1298,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1301,7 +1301,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. */ @@ -26,7 +26,7 @@ index 9197b274db..b83b3b3565 100644 private fun getSitePermissionsPhoneFeatureAutoplayAction( feature: PhoneFeature, -@@ -1317,9 +1317,9 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1320,9 +1320,9 @@ class Settings(private val appContext: Context) : PreferencesHolder { fun getSitePermissionsCustomSettingsRules(): SitePermissionsRules { return SitePermissionsRules( @@ -38,7 +38,7 @@ index 9197b274db..b83b3b3565 100644 camera = getSitePermissionsPhoneFeatureAction(PhoneFeature.CAMERA), autoplayAudible = getSitePermissionsPhoneFeatureAutoplayAction( feature = PhoneFeature.AUTOPLAY_AUDIBLE, -@@ -1327,7 +1327,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1330,7 +1330,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { ), autoplayInaudible = getSitePermissionsPhoneFeatureAutoplayAction( feature = PhoneFeature.AUTOPLAY_INAUDIBLE, diff --git a/patches/disable-amo-collections.patch b/patches/disable-amo-collections.patch index 368283b..4040c82 100644 --- a/patches/disable-amo-collections.patch +++ b/patches/disable-amo-collections.patch @@ -30,7 +30,7 @@ index c21f63a00d..a8ea5237b6 100644 // Build a list of installed extensions that are not built-in extensions. val installedAddons = installedExtensions diff --git a/mobile/android/fenix/app/build.gradle b/mobile/android/fenix/app/build.gradle -index d9a6045423..bf9c9237c6 100644 +index 5bcd9c730b..043303febc 100644 --- a/mobile/android/fenix/app/build.gradle +++ b/mobile/android/fenix/app/build.gradle @@ -80,10 +80,10 @@ android { diff --git a/patches/disable-autocomplete.patch b/patches/disable-autocomplete.patch index 34eafa7..c3591e5 100644 --- a/patches/disable-autocomplete.patch +++ b/patches/disable-autocomplete.patch @@ -1,8 +1,8 @@ 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 9197b274db..0c86d51321 100644 +index 8913d9f230..ceaedf35fa 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 -@@ -1146,7 +1146,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1149,7 +1149,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { val shouldAutocompleteInAwesomebar by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_enable_autocomplete_urls), diff --git a/patches/disable-autofill.patch b/patches/disable-autofill.patch index ece2cc7..0dc7472 100644 --- a/patches/disable-autofill.patch +++ b/patches/disable-autofill.patch @@ -1,8 +1,8 @@ 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 9197b274db..c3f610f0c6 100644 +index 8913d9f230..1d074345b8 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 -@@ -1378,12 +1378,12 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1381,12 +1381,12 @@ class Settings(private val appContext: Context) : PreferencesHolder { var shouldPromptToSaveLogins by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_save_logins), @@ -17,7 +17,7 @@ index 9197b274db..c3f610f0c6 100644 ) /** -@@ -1715,7 +1715,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1709,7 +1709,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 +26,7 @@ index 9197b274db..c3f610f0c6 100644 ) /** -@@ -1726,7 +1726,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1720,7 +1720,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { */ var shouldAutofillAddressDetails by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_addresses_save_and_autofill_addresses), diff --git a/patches/disable-contile.patch b/patches/disable-contile.patch index 58eba2b..b080c4e 100644 --- a/patches/disable-contile.patch +++ b/patches/disable-contile.patch @@ -14,10 +14,10 @@ index 89230fb4c1..4faeb9ee77 100644 internal const val CACHE_TOP_SITES_KEY = "tiles" 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 9197b274db..880c97957d 100644 +index 8913d9f230..50bf05c440 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 -@@ -1818,10 +1818,10 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1803,10 +1803,10 @@ class Settings(private val appContext: Context) : PreferencesHolder { /** * Indicates if the Contile functionality should be visible. */ diff --git a/patches/disable-doh-canary.patch b/patches/disable-doh-canary.patch index 032a56b..e8fdcb0 100644 --- a/patches/disable-doh-canary.patch +++ b/patches/disable-doh-canary.patch @@ -1,9 +1,9 @@ diff --git a/toolkit/components/doh/DoHHeuristics.sys.mjs b/toolkit/components/doh/DoHHeuristics.sys.mjs -index 112aef69a3..86811bc5a3 100644 +index 812af19f00..2bb4337c40 100644 --- a/toolkit/components/doh/DoHHeuristics.sys.mjs +++ b/toolkit/components/doh/DoHHeuristics.sys.mjs @@ -29,7 +29,7 @@ ChromeUtils.defineESModuleGetters(lazy, { - DoHConfigController: "resource://gre/modules/DoHConfig.sys.mjs", + DoHConfigController: "moz-src:///toolkit/components/doh/DoHConfig.sys.mjs", }); -const GLOBAL_CANARY = "use-application-dns.net."; diff --git a/patches/disable-firefox-suggest.patch b/patches/disable-firefox-suggest.patch index f3cafc7..3c76580 100644 --- a/patches/disable-firefox-suggest.patch +++ b/patches/disable-firefox-suggest.patch @@ -66,10 +66,10 @@ index baadbd7873..87a4d45b15 100644 ) } diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/search/SearchEngineFragment.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/search/SearchEngineFragment.kt -index e6c63d7834..6652461ef2 100644 +index ce4b42ef4a..d5f03c9e2a 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/search/SearchEngineFragment.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/search/SearchEngineFragment.kt -@@ -35,7 +35,7 @@ class SearchEngineFragment : PreferenceFragmentCompat() { +@@ -39,7 +39,7 @@ class SearchEngineFragment : PreferenceFragmentCompat() { ) requirePreference(R.string.pref_key_show_sponsored_suggestions).apply { @@ -79,10 +79,10 @@ index e6c63d7834..6652461ef2 100644 requirePreference(R.string.pref_key_show_nonsponsored_suggestions).apply { isVisible = context.settings().enableFxSuggest 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 9197b274db..e3b7082380 100644 +index 8913d9f230..8d7d553926 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 -@@ -2105,7 +2105,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -2091,7 +2091,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { */ var enableFxSuggest by lazyFeatureFlagPreference( key = appContext.getPreferenceKey(R.string.pref_key_enable_fxsuggest), @@ -91,7 +91,7 @@ index 9197b274db..e3b7082380 100644 featureFlag = FeatureFlags.FX_SUGGEST, ) -@@ -2113,7 +2113,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -2099,7 +2099,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { * Indicates if boosting AMP/wiki suggestions is enabled. */ val boostAmpWikiSuggestions: Boolean @@ -100,7 +100,7 @@ index 9197b274db..e3b7082380 100644 /** * Indicates first time engaging with signup -@@ -2130,7 +2130,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -2116,7 +2116,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { var showSponsoredSuggestions by lazyFeatureFlagPreference( key = appContext.getPreferenceKey(R.string.pref_key_show_sponsored_suggestions), default = { enableFxSuggest }, @@ -109,7 +109,7 @@ index 9197b274db..e3b7082380 100644 ) /** -@@ -2140,7 +2140,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -2126,7 +2126,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { */ var showNonSponsoredSuggestions by lazyFeatureFlagPreference( key = appContext.getPreferenceKey(R.string.pref_key_show_nonsponsored_suggestions), diff --git a/patches/disable-link-sharing.patch b/patches/disable-link-sharing.patch index 67754e6..005175f 100644 --- a/patches/disable-link-sharing.patch +++ b/patches/disable-link-sharing.patch @@ -12,10 +12,10 @@ index 325e5d2141..90833e35cd 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 9197b274db..58ff7665d8 100644 +index 8913d9f230..b34d6c4ba3 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 -@@ -681,13 +681,13 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -687,13 +687,13 @@ class Settings(private val appContext: Context) : PreferencesHolder { var whatsappLinkSharingEnabled by lazyFeatureFlagPreference( key = appContext.getPreferenceKey(R.string.pref_key_link_sharing), @@ -31,16 +31,3 @@ index 9197b274db..58ff7665d8 100644 ) /** -diff --git a/mobile/android/fenix/app/src/main/res/xml/link_sharing_preferences.xml b/mobile/android/fenix/app/src/main/res/xml/link_sharing_preferences.xml -index faafebc7f2..cf8650c1ee 100644 ---- a/mobile/android/fenix/app/src/main/res/xml/link_sharing_preferences.xml -+++ b/mobile/android/fenix/app/src/main/res/xml/link_sharing_preferences.xml -@@ -5,7 +5,7 @@ - - diff --git a/patches/disable-mars.patch b/patches/disable-mars.patch index 0195752..66800af 100644 --- a/patches/disable-mars.patch +++ b/patches/disable-mars.patch @@ -20,7 +20,7 @@ index facfce542c..5caf534fe3 100644 /** * Provides access to the MARS API for fetching top sites tile. 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 43bea16286..0245a82e17 100644 +index ac0f3bc013..5571c3d891 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 @@ -104,6 +104,7 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { @@ -32,10 +32,10 @@ index 43bea16286..0245a82e17 100644 onPreferenceChangeListener = object : SharedPreferenceUpdater() { override fun onPreferenceChange(preference: Preference, newValue: Any?): Boolean { 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 9197b274db..ca0b4cdf4b 100644 +index 8913d9f230..f4de24204e 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 -@@ -1812,7 +1812,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1797,7 +1797,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { var marsAPIEnabled by lazyFeatureFlagPreference( key = appContext.getPreferenceKey(R.string.pref_key_mars_api_enabled), default = { FxNimbus.features.mars.value().enabled }, diff --git a/patches/disable-microsurveys.patch b/patches/disable-microsurveys.patch index 98c29fd..b7713c4 100644 --- a/patches/disable-microsurveys.patch +++ b/patches/disable-microsurveys.patch @@ -1,8 +1,8 @@ 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 43bea16286..7b4a264b5a 100644 +index ac0f3bc013..a4f50027d2 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 -@@ -240,7 +240,7 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { +@@ -224,7 +224,7 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { } requirePreference(R.string.pref_key_microsurvey_feature_enabled).apply { @@ -12,10 +12,10 @@ index 43bea16286..7b4a264b5a 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 9197b274db..479bd47958 100644 +index 8913d9f230..b5f645dd97 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 -@@ -2225,7 +2225,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -2211,7 +2211,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { var microsurveyFeatureEnabled by lazyFeatureFlagPreference( key = appContext.getPreferenceKey(R.string.pref_key_microsurvey_feature_enabled), default = { FxNimbus.features.microsurveys.value().enabled }, diff --git a/patches/disable-nags.patch b/patches/disable-nags.patch index e0b9c38..80f3c3a 100644 --- a/patches/disable-nags.patch +++ b/patches/disable-nags.patch @@ -12,7 +12,7 @@ index e5ab956ac3..4d1ef3de39 100644 private fun isNotDefaultBrowser(context: Context) = 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 9197b274db..44fc7b52f3 100644 +index 8913d9f230..7895607510 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 @@ -198,7 +198,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { @@ -33,7 +33,16 @@ index 9197b274db..44fc7b52f3 100644 default = { mr2022Sections[Mr2022Section.WALLPAPERS_SELECTION_TOOL] == true }, ) -@@ -618,7 +618,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -351,7 +351,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { + var shouldShowMenuBanner by lazyFeatureFlagPreference( + key = appContext.getPreferenceKey(R.string.pref_key_show_menu_banner), + default = { FxNimbus.features.menuRedesign.value().menuBanner }, +- featureFlag = true, ++ featureFlag = false, + ) + + var defaultSearchEngineName by stringPreference( +@@ -624,7 +624,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { */ var showFirstTimeTranslation: Boolean by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_show_first_time_translation), @@ -42,7 +51,7 @@ index 9197b274db..44fc7b52f3 100644 ) /** -@@ -788,12 +788,12 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -794,12 +794,12 @@ 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 { @@ -61,7 +70,7 @@ index 9197b274db..44fc7b52f3 100644 } /** -@@ -802,12 +802,12 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -808,12 +808,12 @@ class Settings(private val appContext: Context) : PreferencesHolder { */ fun isDefaultBrowserBlocking(): Boolean { val browsers = BrowsersCache.all(appContext) @@ -76,7 +85,7 @@ index 9197b274db..44fc7b52f3 100644 ) /** -@@ -830,7 +830,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -836,7 +836,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { var reEngagementNotificationEnabled by lazyFeatureFlagPreference( key = appContext.getPreferenceKey(R.string.pref_key_re_engagement_notification_enabled), default = { FxNimbus.features.reEngagementNotification.value().enabled }, @@ -85,7 +94,7 @@ index 9197b274db..44fc7b52f3 100644 ) /** -@@ -838,7 +838,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -844,7 +844,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { */ val reEngagementNotificationType: Int get() = @@ -94,16 +103,7 @@ index 9197b274db..44fc7b52f3 100644 val shouldUseAutoBatteryTheme by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_auto_battery_theme), -@@ -900,7 +900,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { - */ - var shouldShowEraseActionCFR by lazyFeatureFlagPreference( - appContext.getPreferenceKey(R.string.pref_key_should_show_erase_action_popup), -- featureFlag = true, -+ featureFlag = false, - default = { feltPrivateBrowsingEnabled }, - ) - -@@ -909,7 +909,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -906,7 +906,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { */ var shouldShowCookieBannersCFR by lazyFeatureFlagPreference( appContext.getPreferenceKey(R.string.pref_key_should_show_cookie_banners_action_popup), @@ -112,7 +112,7 @@ index 9197b274db..44fc7b52f3 100644 default = { shouldShowCookieBannerUI }, ) -@@ -920,7 +920,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -917,7 +917,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { var hasShownTabSwipeCFR by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_toolbar_has_shown_tab_swipe_cfr), @@ -121,7 +121,7 @@ index 9197b274db..44fc7b52f3 100644 ) val blockCookiesSelectionInCustomTrackingProtection by stringPreference( -@@ -1219,12 +1219,12 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1222,12 +1222,12 @@ class Settings(private val appContext: Context) : PreferencesHolder { var userKnowsAboutPwas by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_user_knows_about_pwa), @@ -136,7 +136,7 @@ index 9197b274db..44fc7b52f3 100644 ) val shouldShowOpenInAppCfr: Boolean -@@ -1232,17 +1232,17 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1235,17 +1235,17 @@ class Settings(private val appContext: Context) : PreferencesHolder { var shouldShowAutoCloseTabsBanner by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_should_show_auto_close_tabs_banner), @@ -157,7 +157,7 @@ index 9197b274db..44fc7b52f3 100644 ) /** -@@ -1250,7 +1250,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1253,7 +1253,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { */ var hasInactiveTabsAutoCloseDialogBeenDismissed by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_has_inactive_tabs_auto_close_dialog_dismissed), @@ -166,7 +166,7 @@ index 9197b274db..44fc7b52f3 100644 ) /** -@@ -1671,7 +1671,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1674,7 +1674,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { */ var showSyncCFR by lazyFeatureFlagPreference( appContext.getPreferenceKey(R.string.pref_key_should_show_sync_cfr), @@ -175,25 +175,7 @@ index 9197b274db..44fc7b52f3 100644 default = { mr2022Sections[Mr2022Section.SYNC_CFR] == true }, ) -@@ -1680,7 +1680,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { - */ - var showHomeOnboardingDialog by lazyFeatureFlagPreference( - appContext.getPreferenceKey(R.string.pref_key_should_show_home_onboarding_dialog), -- featureFlag = true, -+ featureFlag = false, - default = { mr2022Sections[Mr2022Section.HOME_ONBOARDING_DIALOG_EXISTING_USERS] == true }, - ) - -@@ -1906,7 +1906,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { - */ - var shouldShowMenuCFR by booleanPreference( - key = appContext.getPreferenceKey(R.string.pref_key_menu_cfr), -- default = true, -+ default = false, - ) - - /** -@@ -2120,7 +2120,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -2106,7 +2106,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { */ var isFirstTimeEngagingWithSignup: Boolean by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_first_time_engage_with_signup), @@ -202,7 +184,7 @@ index 9197b274db..44fc7b52f3 100644 ) /** -@@ -2273,7 +2273,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -2259,7 +2259,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { */ val shouldShowSetAsDefaultPrompt: Boolean get() = @@ -211,7 +193,7 @@ index 9197b274db..44fc7b52f3 100644 DAYS_BETWEEN_DEFAULT_BROWSER_PROMPTS * ONE_DAY_MS && numberOfSetAsDefaultPromptShownTimes < MAX_NUMBER_OF_DEFAULT_BROWSER_PROMPTS && coldStartsBetweenSetAsDefaultPrompts >= APP_COLD_STARTS_TO_SHOW_DEFAULT_PROMPT -@@ -2436,7 +2436,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -2422,7 +2422,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { */ var hasCompletedSetupStepToolbar by booleanPreference( key = appContext.getPreferenceKey(R.string.pref_key_setup_step_toolbar), @@ -220,7 +202,7 @@ index 9197b274db..44fc7b52f3 100644 ) /** -@@ -2444,7 +2444,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -2430,7 +2430,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { */ var hasCompletedSetupStepTheme by booleanPreference( key = appContext.getPreferenceKey(R.string.pref_key_setup_step_theme), @@ -229,7 +211,7 @@ index 9197b274db..44fc7b52f3 100644 ) /** -@@ -2452,16 +2452,16 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -2438,16 +2438,16 @@ class Settings(private val appContext: Context) : PreferencesHolder { */ var hasCompletedSetupStepExtensions by booleanPreference( key = appContext.getPreferenceKey(R.string.pref_key_setup_step_extensions), @@ -251,11 +233,12 @@ index 9197b274db..44fc7b52f3 100644 /** * Indicates whether or not to show the checklist feature. -@@ -2472,6 +2472,6 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -2458,7 +2458,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { FxNimbus.features.setupChecklist.value().enabled && canShowAddSearchWidgetPrompt(AppWidgetManager.getInstance(appContext)) }, - featureFlag = true, + featureFlag = false, ) - } + + /** diff --git a/patches/disable-network-connectivity-monitoring.patch b/patches/disable-network-connectivity-monitoring.patch index 3119304..267e802 100644 --- a/patches/disable-network-connectivity-monitoring.patch +++ b/patches/disable-network-connectivity-monitoring.patch @@ -24,7 +24,7 @@ index 5f5ceb60c0..b11f2165b7 100644 text = getString(R.string.preference_option_phone_feature_blocked) setOnClickListener { diff --git a/mobile/android/fenix/app/src/main/AndroidManifest.xml b/mobile/android/fenix/app/src/main/AndroidManifest.xml -index f235d0f7a1..12d2abd595 100644 +index e47c31743f..7ec4cef9ae 100644 --- a/mobile/android/fenix/app/src/main/AndroidManifest.xml +++ b/mobile/android/fenix/app/src/main/AndroidManifest.xml @@ -7,7 +7,7 @@ @@ -50,7 +50,7 @@ index ac6e718f3c..24199dbadd 100644 tools:ignore="HighSamplingRate" /> diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntime.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntime.java -index a582fa1732..0bf7131976 100644 +index cd93c8fca3..ccb6eebdd1 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntime.java +++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntime.java @@ -214,7 +214,7 @@ public final class GeckoRuntime implements Parcelable { diff --git a/patches/disable-pocket.patch b/patches/disable-pocket.patch index b4c34b7..dba184c 100644 --- a/patches/disable-pocket.patch +++ b/patches/disable-pocket.patch @@ -14,19 +14,10 @@ index 81bf2dd7e2..7a43fac926 100644 private const val SPOCS_ENDPOINT_DELETE_PROFILE_PATH = "user" private const val SPOCS_PROXY_VERSION_KEY = "version" diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/pocket/ContentRecommendationsFeatureHelper.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/pocket/ContentRecommendationsFeatureHelper.kt -index 9e4f378574..f09791f066 100644 +index d211d3625d..cbdc241b9b 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/pocket/ContentRecommendationsFeatureHelper.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/pocket/ContentRecommendationsFeatureHelper.kt -@@ -44,7 +44,7 @@ object ContentRecommendationsFeatureHelper { - fun isPocketRecommendationsFeatureEnabled(context: Context): Boolean { - val langTag = LocaleManager.getCurrentLocale(context) - ?.toLanguageTag() ?: getSystemDefault().toLanguageTag() -- return POCKET_SUPPORTED_LOCALES.contains(langTag) -+ return false && POCKET_SUPPORTED_LOCALES.contains(langTag) - } - - /** -@@ -61,6 +61,6 @@ object ContentRecommendationsFeatureHelper { +@@ -47,6 +47,6 @@ object ContentRecommendationsFeatureHelper { fun isContentRecommendationsFeatureEnabled(context: Context): Boolean { val langTag = LocaleManager.getCurrentLocale(context) ?.toLanguageTag() ?: getSystemDefault().toLanguageTag() @@ -34,15 +25,3 @@ index 9e4f378574..f09791f066 100644 + return false && CONTENT_RECOMMENDATIONS_SUPPORTED_LOCALE.contains(langTag) } } -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 43bea16286..78b04620cc 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 -@@ -114,6 +114,7 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { - } - - requirePreference(R.string.pref_key_pocket_content_recommendations).apply { -+ isVisible = false - isChecked = context.settings().showContentRecommendations - onPreferenceChangeListener = object : SharedPreferenceUpdater() { - override fun onPreferenceChange(preference: Preference, newValue: Any?): Boolean { diff --git a/patches/disable-recent-search-suggestions.patch b/patches/disable-recent-search-suggestions.patch index 93065d9..080997c 100644 --- a/patches/disable-recent-search-suggestions.patch +++ b/patches/disable-recent-search-suggestions.patch @@ -1,8 +1,8 @@ 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 9197b274db..27677eb17c 100644 +index 8913d9f230..fca9f16696 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 -@@ -458,7 +458,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -464,7 +464,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { val shouldShowHistorySuggestions by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_search_browsing_history), @@ -11,7 +11,7 @@ index 9197b274db..27677eb17c 100644 ) val shouldShowBookmarkSuggestions by booleanPreference( -@@ -1174,7 +1174,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1177,7 +1177,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { @VisibleForTesting internal var recentSearchSuggestionsEnabled by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_show_recent_search_suggestions), @@ -20,7 +20,7 @@ index 9197b274db..27677eb17c 100644 ) /** -@@ -2044,7 +2044,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -2030,7 +2030,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { */ var isRecentSearchesVisible by lazyFeatureFlagPreference( key = appContext.getPreferenceKey(R.string.pref_key_enable_recent_searches), diff --git a/patches/disable-remote-search-configuration.patch b/patches/disable-remote-search-configuration.patch index f0a3b02..7fefce0 100644 --- a/patches/disable-remote-search-configuration.patch +++ b/patches/disable-remote-search-configuration.patch @@ -1,8 +1,8 @@ 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 43bea16286..550de3f6ec 100644 +index ac0f3bc013..930542da6c 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 -@@ -225,7 +225,7 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { +@@ -209,7 +209,7 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { } requirePreference(R.string.pref_key_use_remote_search_configuration).apply { @@ -12,10 +12,10 @@ index 43bea16286..550de3f6ec 100644 onPreferenceChangeListener = object : SharedPreferenceUpdater() { override fun onPreferenceChange(preference: Preference, newValue: Any?): Boolean { 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 9197b274db..8cc210f86c 100644 +index 8913d9f230..7c621d5a3e 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 -@@ -1898,7 +1898,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1884,7 +1884,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { var useRemoteSearchConfiguration by lazyFeatureFlagPreference( key = appContext.getPreferenceKey(R.string.pref_key_use_remote_search_configuration), default = { FxNimbus.features.remoteSearchConfiguration.value().enabled }, diff --git a/patches/disable-search-suggestions.patch b/patches/disable-search-suggestions.patch index 837f135..83b3ea5 100644 --- a/patches/disable-search-suggestions.patch +++ b/patches/disable-search-suggestions.patch @@ -1,8 +1,8 @@ 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 9197b274db..7fb57d6f45 100644 +index 8913d9f230..bb5c4e26ff 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 -@@ -1141,7 +1141,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1144,7 +1144,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { val shouldShowSearchSuggestions by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_show_search_suggestions), @@ -11,7 +11,7 @@ index 9197b274db..7fb57d6f45 100644 ) val shouldAutocompleteInAwesomebar by booleanPreference( -@@ -1185,7 +1185,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1188,7 +1188,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { var showSearchSuggestionsInPrivateOnboardingFinished by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_show_search_suggestions_in_private_onboarding), diff --git a/patches/disable-shipped-domains.patch b/patches/disable-shipped-domains.patch index 8bacd42..c9aeb08 100644 --- a/patches/disable-shipped-domains.patch +++ b/patches/disable-shipped-domains.patch @@ -1,8 +1,8 @@ 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 cfbdaba62c..4b8116b56e 100644 +index 6875486c72..fa70212977 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 -@@ -507,7 +507,7 @@ class Core( +@@ -513,7 +513,7 @@ class Core( val passwordsStorage: SyncableLoginsStorage get() = lazyPasswordsStorage.value val autofillStorage: AutofillCreditCardsAddressesStorage get() = lazyAutofillStorage.value val domainsAutocompleteProvider: BaseDomainAutocompleteProvider? get() = diff --git a/patches/disable-sync-avatar-fetching.patch b/patches/disable-sync-avatar-fetching.patch index 9b7c5cf..1edb5f0 100644 --- a/patches/disable-sync-avatar-fetching.patch +++ b/patches/disable-sync-avatar-fetching.patch @@ -1,5 +1,5 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/compose/header/MozillaAccountMenuButton.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/compose/header/MozillaAccountMenuButton.kt -index d02f7f6e22..ebc0742659 100644 +index 606f2a214f..9f89d3cc5b 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/compose/header/MozillaAccountMenuButton.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/compose/header/MozillaAccountMenuButton.kt @@ -160,7 +160,7 @@ private fun FallbackAvatarIcon() { diff --git a/patches/disable-trending-search-suggestions.patch b/patches/disable-trending-search-suggestions.patch index e431c27..7137bc4 100644 --- a/patches/disable-trending-search-suggestions.patch +++ b/patches/disable-trending-search-suggestions.patch @@ -1,8 +1,8 @@ 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 9197b274db..940c1bed6e 100644 +index 8913d9f230..9afdf8f45d 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 -@@ -1165,7 +1165,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1168,7 +1168,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { @VisibleForTesting internal var trendingSearchSuggestionsEnabled by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_show_trending_search_suggestions), @@ -11,7 +11,7 @@ index 9197b274db..940c1bed6e 100644 ) /** -@@ -2035,7 +2035,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -2021,7 +2021,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { */ var isTrendingSearchesVisible by lazyFeatureFlagPreference( key = appContext.getPreferenceKey(R.string.pref_key_enable_trending_searches), diff --git a/patches/domain-highlighting-and-alignment.patch b/patches/domain-highlighting-and-alignment.patch deleted file mode 100644 index 5fe705c..0000000 --- a/patches/domain-highlighting-and-alignment.patch +++ /dev/null @@ -1,115 +0,0 @@ -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..925ac6ab80 100644 ---- 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 -@@ -17,6 +17,8 @@ import androidx.annotation.VisibleForTesting - import androidx.core.view.isVisible - import mozilla.components.browser.toolbar.BrowserToolbar - import mozilla.components.browser.toolbar.R -+import android.text.Spanned -+import mozilla.components.concept.toolbar.Toolbar - - /** - * View displaying the URL and optionally the title of a website. -@@ -136,7 +138,31 @@ internal class OriginView @JvmOverloads constructor( - - internal var url: CharSequence - get() = urlView.text -- set(value) { urlView.text = value } -+ set(value) { -+ urlView.text = value -+ urlView.scrollTo(0, 0) -+ -+ if (value is Spanned) { -+ val spans = value.getSpans( -+ 0, -+ value.length, -+ Toolbar.RegistrableDomainColorSpan::class.java, -+ ) -+ -+ if (spans.size != 1) { -+ return -+ } -+ -+ val valueUntilRegistrableDomainEnd = value.subSequence(0, value.getSpanEnd(spans[0])) -+ -+ val urlViewWidth = urlView.getWidth() -+ val valueWidth = urlView.getPaint().measureText(valueUntilRegistrableDomainEnd.toString()) -+ -+ if (valueWidth > urlViewWidth) { -+ urlView.scrollTo((valueWidth - urlViewWidth).toInt(), 0) -+ } -+ } -+ } - - /** - * 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 77ffea44d7..bedfcef794 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 -@@ -21,6 +21,8 @@ import mozilla.components.support.base.android.Padding - import mozilla.components.support.ktx.android.content.res.resolveAttribute - import mozilla.components.support.ktx.android.view.setPadding - import java.lang.ref.WeakReference -+import android.text.style.ForegroundColorSpan -+import androidx.annotation.ColorInt - - /** - * Interface to be implemented by components that provide browser toolbar functionality. -@@ -548,6 +550,12 @@ interface Toolbar : ScrollableToolbar { - */ - END, - } -+ -+ /** -+ * Registrable domain foreground color span. -+ * This simple class extension is used so that we can filter for it elsewhere. -+ */ -+ class RegistrableDomainColorSpan(@ColorInt color: Int) : ForegroundColorSpan(color) - } - - 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 5b0dcb298d..ff774543d7 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,7 +98,7 @@ private suspend fun SpannableStringBuilder.colorRegistrableDomain( - - val registrableDomain = configuration - .publicSuffixList -- .getPublicSuffixPlusOne(host) -+ .getPublicSuffixPlusOne(host.removeSuffix(".")) - .await() ?: return - - val indexOfHost = url.indexOf(host) -@@ -110,7 +110,7 @@ private suspend fun SpannableStringBuilder.colorRegistrableDomain( - val index = indexOfHost + indexOfRegistrableDomain - - setSpan( -- ForegroundColorSpan(configuration.registrableDomainColor), -+ Toolbar.RegistrableDomainColorSpan(configuration.registrableDomainColor), - index, - index + registrableDomain.length, - SPAN_INCLUSIVE_INCLUSIVE, -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 17e3bf78ba..c404af16f8 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 -@@ -58,6 +58,7 @@ abstract class ToolbarIntegration( - urlRenderConfiguration = ToolbarFeature.UrlRenderConfiguration( - context.components.publicSuffixList, - context.getColorFromAttr(R.attr.textPrimary), -+ context.getColorFromAttr(R.attr.textSecondary), - renderStyle = renderStyle, - ), - ) -@@ -140,7 +141,7 @@ class DefaultToolbarIntegration( - interactor = interactor, - customTabId = customTabId, - isPrivate = isPrivate, -- renderStyle = ToolbarFeature.RenderStyle.UncoloredUrl, -+ renderStyle = ToolbarFeature.RenderStyle.ColoredUrl, - ) { - - @VisibleForTesting diff --git a/patches/enable-secret-settings.patch b/patches/enable-secret-settings.patch index 1f7fb31..73f0cd9 100644 --- a/patches/enable-secret-settings.patch +++ b/patches/enable-secret-settings.patch @@ -11,8 +11,28 @@ index e7e19273f9..8572b6bfdb 100644 // This feature is explicitly for users opening links in private tabs. context.settings().openLinksInAPrivateTab && // and is only visible in private tabs. +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 a77d48d282..7ba7483cc6 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 +@@ -25,7 +25,7 @@ object FeatureFlags { + /** + * Enables the Sync Addresses feature. + */ +- const val SYNC_ADDRESSES_FEATURE = false ++ const val SYNC_ADDRESSES_FEATURE = true + + /** + * Enables new search settings UI with two extra fragments, for managing the default engine +@@ -64,5 +64,5 @@ object FeatureFlags { + /** + * Determines whether to show live downloads in progress in the UI. + */ +- val showLiveDownloads = Config.channel.isNightlyOrDebug ++ val showLiveDownloads = true + } 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 43bea16286..b23d2531db 100644 +index ac0f3bc013..637a4f8c2f 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 @@ -64,7 +64,7 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { @@ -47,7 +67,7 @@ index 43bea16286..b23d2531db 100644 isChecked = context.settings().enableHomepageAsNewTab onPreferenceChangeListener = SharedPreferenceUpdater() } -@@ -124,7 +124,7 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { +@@ -114,7 +114,7 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { } requirePreference(R.string.pref_key_enable_unified_trust_panel).apply { @@ -57,7 +77,7 @@ index 43bea16286..b23d2531db 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 9197b274db..eebc62347b 100644 +index 8913d9f230..b2f10505f6 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 @@ -335,7 +335,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { @@ -69,7 +89,7 @@ index 9197b274db..eebc62347b 100644 ) var privateBrowsingModeLocked by booleanPreference( -@@ -479,7 +479,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -485,7 +485,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { */ var isShortcutSuggestionsVisible by lazyFeatureFlagPreference( key = appContext.getPreferenceKey(R.string.pref_key_enable_shortcuts_suggestions), @@ -78,14 +98,16 @@ index 9197b274db..eebc62347b 100644 featureFlag = true, ) -@@ -1874,13 +1874,13 @@ class Settings(private val appContext: Context) : PreferencesHolder { - key = appContext.getPreferenceKey(R.string.pref_key_should_enable_felt_privacy), - featureFlag = true, - default = { -- FxNimbus.features.privateBrowsing.value().feltPrivacyEnabled -+ true - }, - ) +@@ -1635,7 +1635,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { + "en-CA", + "fr-CA", + ) +- val currentlyEnabledLanguages = if (Config.channel.isNightlyOrDebug) { ++ val currentlyEnabledLanguages = if (true) { + releaseEnabledLanguages + SharedPrefsAddressesDebugLocalesRepository(context) + .getAllEnabledLocales().map { it.langTag } + } else { +@@ -1857,7 +1857,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { var shouldUseComposableToolbar by lazyFeatureFlagPreference( key = appContext.getPreferenceKey(R.string.pref_key_enable_composable_toolbar), @@ -94,7 +116,16 @@ index 9197b274db..eebc62347b 100644 featureFlag = true, ) -@@ -1991,7 +1991,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1867,7 +1867,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { + @VisibleForTesting + internal var toolbarRedesignEnabled by booleanPreference( + appContext.getPreferenceKey(R.string.pref_key_enable_toolbar_redesign), +- default = { FxNimbus.features.toolbarRedesignOption.value().showOptions }, ++ default = { true }, + ) + + /** +@@ -1977,7 +1977,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { */ var enableComposeHomepage by lazyFeatureFlagPreference( key = appContext.getPreferenceKey(R.string.pref_key_enable_compose_homepage), @@ -103,7 +134,7 @@ index 9197b274db..eebc62347b 100644 featureFlag = true, ) -@@ -2000,7 +2000,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1986,7 +1986,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { */ var enableMenuRedesign by lazyFeatureFlagPreference( key = appContext.getPreferenceKey(R.string.pref_key_enable_menu_redesign), @@ -112,7 +143,7 @@ index 9197b274db..eebc62347b 100644 featureFlag = true, ) -@@ -2009,7 +2009,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1995,7 +1995,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { */ var enableHomepageAsNewTab by lazyFeatureFlagPreference( key = appContext.getPreferenceKey(R.string.pref_key_enable_homepage_as_new_tab), @@ -121,7 +152,7 @@ index 9197b274db..eebc62347b 100644 featureFlag = true, ) -@@ -2018,7 +2018,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -2004,7 +2004,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { */ var enableHomepageSearchBar by lazyFeatureFlagPreference( key = appContext.getPreferenceKey(R.string.pref_key_enable_homepage_searchbar), diff --git a/patches/enable-secure-storage.patch b/patches/enable-secure-storage.patch index 78fea23..de397d4 100644 --- a/patches/enable-secure-storage.patch +++ b/patches/enable-secure-storage.patch @@ -1,8 +1,8 @@ diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/BackgroundServices.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/BackgroundServices.kt -index 1e64545a12..d036ff0949 100644 +index 028742f2b3..7ae3b50470 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/BackgroundServices.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/BackgroundServices.kt -@@ -107,7 +107,7 @@ class BackgroundServices( +@@ -113,7 +113,7 @@ class BackgroundServices( // Enable encryption for account state on supported API levels (23+). // Just on Nightly and local builds for now. // Enabling this for all channels is tracked in https://github.com/mozilla-mobile/fenix/issues/6704 @@ -12,10 +12,10 @@ index 1e64545a12..d036ff0949 100644 @VisibleForTesting 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 cfbdaba62c..527bc82177 100644 +index 6875486c72..5a79c0cb55 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 -@@ -666,7 +666,7 @@ class Core( +@@ -663,7 +663,7 @@ class Core( SecureAbove22Preferences( context = context, name = KEY_STORAGE_NAME, diff --git a/patches/fenix-disable-crash-reporting.patch b/patches/fenix-disable-crash-reporting.patch index c0a8bfa..ba5e1fd 100644 --- a/patches/fenix-disable-crash-reporting.patch +++ b/patches/fenix-disable-crash-reporting.patch @@ -18,10 +18,10 @@ index d897b9af6f..086f87d87b 100644 +// isRecoverable } 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 8efdd24f23..99107e9307 100644 +index 68dd4d13fa..a6f94dfadc 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 -@@ -100,7 +100,7 @@ class GleanCrashReporterService( +@@ -103,7 +103,7 @@ class GleanCrashReporterService( @SerialName("count") data class Count(val label: String) : GleanCrashAction() { override fun submit() { @@ -30,51 +30,56 @@ index 8efdd24f23..99107e9307 100644 } } -@@ -151,11 +151,11 @@ class GleanCrashReporterService( +@@ -119,11 +119,11 @@ class GleanCrashReporterService( val minidumpHash: String?, ) : PingCause() { - override fun setMetricsLater() { -- GleanCrash.cause.setLater("os_fault") -+/* GleanCrash.cause.setLater("os_fault") - remoteType?.let { GleanCrash.remoteType.setLater(it) } - minidumpHash?.let { GleanCrash.minidumpSha256Hash.setLater(it) } + override fun setMetrics() { +- GleanCrash.cause.set("os_fault") ++/* GleanCrash.cause.set("os_fault") + remoteType?.let { GleanCrash.remoteType.set(it) } + minidumpHash?.let { GleanCrash.minidumpSha256Hash.set(it) } - extras?.let(::setExtraMetrics) + extras?.let(::setExtraMetrics)*/ } private fun setExtraMetrics(extras: JsonObject) { -@@ -359,7 +359,7 @@ class GleanCrashReporterService( - // Perform all processing up-front in case an unexpected exception occurs. We don't - // want to partially set Glean metrics. The Glean metric functions do not throw - // exceptions. -- val setMetrics = cause.prepareSetMetrics() -+/* val setMetrics = cause.prepareSetMetrics() - var setBreadcrumbs = {} - if (breadcrumbs.isNotEmpty()) { - val value = Json.decodeFromJsonElement( -@@ -388,17 +388,17 @@ class GleanCrashReporterService( - ), +@@ -306,14 +306,14 @@ class GleanCrashReporterService( + val appBuildId: String? = null, + ) : PingCause() { + override fun setMetrics() { +- GleanCrash.cause.set("java_exception") ++/* GleanCrash.cause.set("java_exception") + appChannel?.let { GleanCrash.appChannel.set(it) } + appBuildId?.let { GleanCrash.appBuild.set(it) } + appVersion?.let { GleanCrash.appDisplayVersion.set(it) } + GleanCrash.javaException.set( + Json.decodeFromJsonElement(throwableJson), ) - setBreadcrumbs = { GleanCrash.breadcrumbs.set(value) } - } + }*/ + } + } + +@@ -334,7 +334,7 @@ class GleanCrashReporterService( + // case a previous crash submission attempt was aborted due to + // an unexpected exception and the metrics were left + // partially-populated. See bug 1961202. +- Pings.crash.setEnabled(false) ++/* Pings.crash.setEnabled(false) + Pings.crash.setEnabled(true) + + GleanEnvironment.uptime.setRawNanos(uptimeNanos) +@@ -373,7 +373,7 @@ class GleanCrashReporterService( + ) + } - // Set all metrics and submit the ping. We are guaranteed to not throw any - // exceptions here, so the metrics will never be partially set. -- GleanEnvironment.uptime.setRawNanos(uptimeNanos) -+/* GleanEnvironment.uptime.setRawNanos(uptimeNanos) - GleanCrash.processType.set(processType) - GleanCrash.time.set(Date(timeMillis)) - GleanCrash.startup.set(startup) - setMetrics() - setBreadcrumbs() - Pings.crash.submit(reason) + Pings.crash.submit(reason)*/ } } } -@@ -455,7 +455,7 @@ class GleanCrashReporterService( +@@ -430,7 +430,7 @@ class GleanCrashReporterService( logger.error("Expected file, but found directory") false } else { @@ -83,17 +88,17 @@ index 8efdd24f23..99107e9307 100644 } } -@@ -544,7 +544,7 @@ class GleanCrashReporterService( +@@ -519,7 +519,7 @@ class GleanCrashReporterService( } override fun record(crash: Crash.UncaughtExceptionCrash) { - recordCrashAction(GleanCrashAction.Count(UNCAUGHT_EXCEPTION_KEY)) +/* recordCrashAction(GleanCrashAction.Count(UNCAUGHT_EXCEPTION_KEY)) + recordCrashAction( GleanCrashAction.Ping( - uptimeNanos = uptime(), -@@ -554,7 +554,7 @@ class GleanCrashReporterService( - cause = GleanCrashAction.PingCause.JavaException(crash.throwable.toJson()), +@@ -535,7 +535,7 @@ class GleanCrashReporterService( + ), breadcrumbs = crash.breadcrumbs.map { it.toBreadcrumb() }, ), - ) @@ -101,7 +106,7 @@ index 8efdd24f23..99107e9307 100644 } private fun getExtrasJson(path: String): JsonObject? { -@@ -633,7 +633,7 @@ class GleanCrashReporterService( +@@ -614,7 +614,7 @@ class GleanCrashReporterService( } override fun record(crash: Crash.NativeCodeCrash) { @@ -110,7 +115,7 @@ index 8efdd24f23..99107e9307 100644 Crash.NativeCodeCrash.PROCESS_VISIBILITY_MAIN -> recordCrashAction(GleanCrashAction.Count(MAIN_PROCESS_NATIVE_CODE_CRASH_KEY)) Crash.NativeCodeCrash.PROCESS_VISIBILITY_FOREGROUND_CHILD -> -@@ -673,10 +673,10 @@ class GleanCrashReporterService( +@@ -654,10 +654,10 @@ class GleanCrashReporterService( ), breadcrumbs = crash.breadcrumbs.map { it.toBreadcrumb() }, ), @@ -159,7 +164,7 @@ index 5b057f2579..7613b7ac06 100644 override val id: String = "new-sentry-instance" diff --git a/mobile/android/fenix/app/build.gradle b/mobile/android/fenix/app/build.gradle -index d9a6045423..2f788179ee 100644 +index 5bcd9c730b..3241341821 100644 --- a/mobile/android/fenix/app/build.gradle +++ b/mobile/android/fenix/app/build.gradle @@ -355,7 +355,7 @@ android.applicationVariants.configureEach { variant -> @@ -172,10 +177,10 @@ index d9a6045423..2f788179ee 100644 try { def token = new File("${rootDir}/.sentry_token").text.trim() 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 13db9f3c83..6ac6401266 100644 +index a88ff8d3ac..a1ed1502ff 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 -@@ -504,10 +504,10 @@ open class FenixApplication : LocaleAwareApplication(), Provider { +@@ -514,10 +514,10 @@ open class FenixApplication : LocaleAwareApplication(), Provider { } private fun setupCrashReporting() { @@ -189,7 +194,7 @@ index 13db9f3c83..6ac6401266 100644 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 1ad6a264c7..0b80a2807e 100644 +index f04adf8312..fb8c49c827 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 @@ -16,7 +16,7 @@ import mozilla.components.lib.crash.service.GleanCrashReporterService @@ -236,7 +241,7 @@ index 1ad6a264c7..0b80a2807e 100644 val intent = Intent(context, HomeActivity::class.java).apply { flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP -@@ -119,7 +119,7 @@ class Analytics( +@@ -126,7 +126,7 @@ class Analytics( appName = context.getString(R.string.app_name), organizationName = "Mozilla", ), @@ -259,10 +264,10 @@ index 36d4b4c349..f9ff9db3bf 100644 } diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/search/SearchDialogController.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/search/SearchDialogController.kt -index 6725aa64a0..d3e7f17a86 100644 +index 819b24954e..0f9bb0a905 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/search/SearchDialogController.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/search/SearchDialogController.kt -@@ -84,13 +84,13 @@ class SearchDialogController( +@@ -83,13 +83,13 @@ class SearchDialogController( } when (url) { @@ -271,18 +276,18 @@ index 6725aa64a0..d3e7f17a86 100644 // The list of past crashes can be accessed via "settings > about", but desktop and // fennec users may be used to navigating to "about:crashes". So we intercept this here // and open the crash list activity instead. - activity.startActivity(Intent(activity, CrashListActivity::class.java)) - store.dispatch(AwesomeBarAction.EngagementFinished(abandoned = false)) + val directions = SearchDialogFragmentDirections.actionCrashListFragment() + navController.navigate(directions) - } + }*/ "about:addons" -> { val directions = SearchDialogFragmentDirections.actionGlobalAddonsManagementFragment() 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 9197b274db..77d6eee674 100644 +index 8913d9f230..317cc8ad23 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 -@@ -2314,10 +2314,10 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -2300,10 +2300,10 @@ 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. */ diff --git a/patches/fenix-disable-nimbus.patch b/patches/fenix-disable-nimbus.patch index 9337b3d..49d6378 100644 --- a/patches/fenix-disable-nimbus.patch +++ b/patches/fenix-disable-nimbus.patch @@ -1,8 +1,17 @@ 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 6611dd53cd..856d86e071 100644 +index d2357260a2..aca31ce35e 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 -@@ -173,7 +173,7 @@ class BrowserFragment : BaseBrowserFragment(), UserInteractionHandler { +@@ -53,7 +53,7 @@ import org.mozilla.fenix.ext.requireComponents + import org.mozilla.fenix.ext.runIfFragmentIsAttached + import org.mozilla.fenix.ext.settings + import org.mozilla.fenix.home.HomeFragment +-import org.mozilla.fenix.nimbus.FxNimbus ++//import org.mozilla.fenix.nimbus.FxNimbus + import org.mozilla.fenix.settings.quicksettings.protections.cookiebanners.getCookieBannerUIMode + import org.mozilla.fenix.shortcut.PwaOnboardingObserver + import org.mozilla.fenix.theme.ThemeManager +@@ -179,7 +179,7 @@ class BrowserFragment : BaseBrowserFragment(), UserInteractionHandler { } if ( @@ -11,12 +20,30 @@ index 6611dd53cd..856d86e071 100644 ) { return } +@@ -260,7 +260,7 @@ class BrowserFragment : BaseBrowserFragment(), UserInteractionHandler { + return + } + +- if (!FxNimbus.features.translations.value().mainFlowToolbarEnabled) return ++// if (!FxNimbus.features.translations.value().mainFlowToolbarEnabled) return + + translationsBinding.set( + feature = TranslationsBinding( +@@ -566,7 +566,7 @@ class BrowserFragment : BaseBrowserFragment(), UserInteractionHandler { + + override fun navToQuickSettingsSheet(tab: SessionState, sitePermissions: SitePermissions?) { + val useCase = requireComponents.useCases.trackingProtectionUseCases +- FxNimbus.features.cookieBanners.recordExposure() ++// FxNimbus.features.cookieBanners.recordExposure() + useCase.containsException(tab.id) { hasTrackingProtectionException -> + 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 1443661bb8..fbec347f11 100644 +index a6bfa3a688..ce970ea329 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 -@@ -76,7 +76,7 @@ import org.mozilla.fenix.components.menu.store.MenuStore - import org.mozilla.fenix.components.menu.store.WebExtensionMenuItem +@@ -85,7 +85,7 @@ import org.mozilla.fenix.components.menu.store.WebExtensionMenuItem + import org.mozilla.fenix.ext.openSetDefaultBrowserOption import org.mozilla.fenix.ext.runIfFragmentIsAttached import org.mozilla.fenix.ext.settings -import org.mozilla.fenix.nimbus.FxNimbus @@ -24,7 +51,7 @@ index 1443661bb8..fbec347f11 100644 import org.mozilla.fenix.settings.SupportUtils import org.mozilla.fenix.settings.deletebrowsingdata.deleteAndQuit import org.mozilla.fenix.theme.FirefoxTheme -@@ -307,7 +307,7 @@ class MenuDialogFragment : BottomSheetDialogFragment() { +@@ -335,7 +335,7 @@ class MenuDialogFragment : BottomSheetDialogFragment() { browserStore.state.translationEngine.isEngineSupported ?: false val isTranslationSupported = isTranslationEngineSupported && @@ -34,9 +61,27 @@ index 1443661bb8..fbec347f11 100644 val isWebCompatEnabled by store.observeAsState(store.state.isWebCompatEnabled) { it.isWebCompatEnabled 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 e7e19273f9..b98bdf7878 100644 +index e7e19273f9..c37b5fbd6c 100644 --- 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 +@@ -43,7 +43,7 @@ import org.mozilla.fenix.automotive.isAndroidAutomotiveAvailable + import org.mozilla.fenix.components.accounts.FenixAccountManager + import org.mozilla.fenix.ext.components + import org.mozilla.fenix.ext.settings +-import org.mozilla.fenix.nimbus.FxNimbus ++//import org.mozilla.fenix.nimbus.FxNimbus + import org.mozilla.fenix.theme.ThemeManager + + /** +@@ -82,7 +82,7 @@ open class DefaultToolbarMenu( + get() = store.state.selectedTab + + override val menuBuilder by lazy { +- FxNimbus.features.print.recordExposure() ++// FxNimbus.features.print.recordExposure() + WebExtensionBrowserMenuBuilder( + items = coreMenuItems, + endOfMenuAlwaysVisible = shouldUseBottomToolbar, @@ -205,7 +205,7 @@ open class DefaultToolbarMenu( val isEngineSupported = store.state.translationEngine.isEngineSupported return selectedSession?.let { @@ -78,7 +123,7 @@ index e387bc4ae0..17a5b647e0 100644 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { activity.overrideActivityTransition(Activity.OVERRIDE_TRANSITION_OPEN, 0, 0) 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 43bea16286..07fc6947c5 100644 +index ac0f3bc013..a566bc9952 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 @@ -58,7 +58,7 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { @@ -91,9 +136,18 @@ index 43bea16286..07fc6947c5 100644 onPreferenceChangeListener = SharedPreferenceUpdater() } 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 325e5d2141..fc8ce20d0a 100644 +index 325e5d2141..e776045b4f 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 +@@ -65,7 +65,7 @@ import org.mozilla.fenix.ext.openSetDefaultBrowserOption + import org.mozilla.fenix.ext.requireComponents + import org.mozilla.fenix.ext.settings + import org.mozilla.fenix.ext.showToolbar +-import org.mozilla.fenix.nimbus.FxNimbus ++//import org.mozilla.fenix.nimbus.FxNimbus + import org.mozilla.fenix.perf.ProfilerViewModel + import org.mozilla.fenix.settings.account.AccountUiView + import org.mozilla.fenix.snackbar.FenixSnackbarDelegate @@ -176,7 +176,7 @@ class SettingsFragment : PreferenceFragmentCompat() { findPreference( @@ -117,6 +171,24 @@ index 325e5d2141..fc8ce20d0a 100644 showToolbar("$title$suffix") +@@ -549,7 +549,7 @@ class SettingsFragment : PreferenceFragmentCompat() { + with(requireContext().settings()) { + findPreference( + getPreferenceKey(R.string.pref_key_nimbus_experiments), +- )?.isVisible = showSecretDebugMenuThisSession ++ )?.isVisible = false + findPreference( + getPreferenceKey(R.string.pref_key_debug_settings), + )?.isVisible = showSecretDebugMenuThisSession +@@ -713,7 +713,7 @@ class SettingsFragment : PreferenceFragmentCompat() { + + @VisibleForTesting + internal fun setupCookieBannerPreference() { +- FxNimbus.features.cookieBanners.recordExposure() ++// FxNimbus.features.cookieBanners.recordExposure() + if (context?.settings()?.shouldShowCookieBannerUI == false) return + with(requirePreference(R.string.pref_key_cookie_banner_private_mode)) { + isVisible = context.settings().shouldShowCookieBannerUI diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/translations/TranslationSettingsFragment.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/translations/TranslationSettingsFragment.kt index 1a02f82498..728024b7b3 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/translations/TranslationSettingsFragment.kt @@ -175,7 +247,7 @@ index 472e3bf5a8..b2a4842c16 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 9197b274db..44112a59b6 100644 +index 8913d9f230..3b209bfd01 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 @@ -225,10 +225,10 @@ class Settings(private val appContext: Context) : PreferencesHolder { @@ -193,7 +265,7 @@ index 9197b274db..44112a59b6 100644 var utmParamsKnown by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_utm_params_known), -@@ -412,10 +412,10 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -418,10 +418,10 @@ class Settings(private val appContext: Context) : PreferencesHolder { persistDefaultIfNotExists = true, ) @@ -208,7 +280,7 @@ index 9197b274db..44112a59b6 100644 var isOverrideTPPopupsForPerformanceTest = false -@@ -534,10 +534,10 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -540,10 +540,10 @@ class Settings(private val appContext: Context) : PreferencesHolder { default = false, ) @@ -223,7 +295,7 @@ index 9197b274db..44112a59b6 100644 var isFirstNimbusRun: Boolean by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_is_first_run), -@@ -2157,7 +2157,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -2143,7 +2143,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { * Indicates if the feature to close synced tabs is enabled. */ val enableCloseSyncedTabs: Boolean @@ -232,16 +304,3 @@ index 9197b274db..44112a59b6 100644 /** * Returns the height of the bottom toolbar. -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 325e5d2141..7d4277ef8e 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 -@@ -549,7 +549,7 @@ class SettingsFragment : PreferenceFragmentCompat() { - with(requireContext().settings()) { - findPreference( - getPreferenceKey(R.string.pref_key_nimbus_experiments), -- )?.isVisible = showSecretDebugMenuThisSession -+ )?.isVisible = false - findPreference( - getPreferenceKey(R.string.pref_key_debug_settings), - )?.isVisible = showSecretDebugMenuThisSession diff --git a/patches/fenix-disable-telemetry.patch b/patches/fenix-disable-telemetry.patch index 85c9730..358a362 100644 --- a/patches/fenix-disable-telemetry.patch +++ b/patches/fenix-disable-telemetry.patch @@ -1,5 +1,5 @@ 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 +index 6bbc5b3ed8..98e27d666c 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 @@ android { @@ -10,7 +10,7 @@ index 7941343807..e56e90a005 100644 +ext.allowMetricsFromAAR = false dependencies { - implementation project(':concept-engine') + implementation project(':components:concept-engine') diff --git a/mobile/android/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/telemetry/SerpTelemetryRepository.kt b/mobile/android/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/telemetry/SerpTelemetryRepository.kt index 20eab9e438..c596e9238a 100644 --- a/mobile/android/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/telemetry/SerpTelemetryRepository.kt @@ -27,7 +27,7 @@ index 20eab9e438..c596e9238a 100644 /** * Parse SERP Telemetry json from remote config. diff --git a/mobile/android/fenix/app/build.gradle b/mobile/android/fenix/app/build.gradle -index d9a6045423..84073eaeee 100644 +index 5bcd9c730b..5d97405e25 100644 --- a/mobile/android/fenix/app/build.gradle +++ b/mobile/android/fenix/app/build.gradle @@ -313,7 +313,7 @@ android.applicationVariants.configureEach { variant -> @@ -49,7 +49,7 @@ index d9a6045423..84073eaeee 100644 buildConfigField 'boolean', 'TELEMETRY', 'false' } 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 5ba4561291..d1307b220c 100644 +index a77d48d282..a880b108f8 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 @@ -41,7 +41,7 @@ object FeatureFlags { @@ -62,10 +62,10 @@ index 5ba4561291..d1307b220c 100644 /** * Enables the Unified Trust Panel. 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 d3b21828c2..edea7b4d0d 100644 +index 2c8c8a5e8c..30da05ee86 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 -@@ -188,7 +188,7 @@ class Components(private val context: Context) { +@@ -191,7 +191,7 @@ class Components(private val context: Context) { AddonManager(core.store, core.engine, addonsProvider, addonUpdater) } @@ -75,12 +75,12 @@ index d3b21828c2..edea7b4d0d 100644 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 cfbdaba62c..8b07a2496c 100644 +index 6875486c72..a0db72b690 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 -@@ -64,14 +64,14 @@ import mozilla.components.feature.search.SearchApplicationName +@@ -64,14 +64,14 @@ import mozilla.components.feature.recentlyclosed.RecentlyClosedTabsStorage + import mozilla.components.feature.search.SearchApplicationName import mozilla.components.feature.search.SearchDeviceType - import mozilla.components.feature.search.SearchEngineSelector import mozilla.components.feature.search.SearchUpdateChannel -import mozilla.components.feature.search.middleware.AdsTelemetryMiddleware +//import mozilla.components.feature.search.middleware.AdsTelemetryMiddleware @@ -106,7 +106,7 @@ index cfbdaba62c..8b07a2496c 100644 import org.mozilla.fenix.utils.getUndoDelay import org.mozilla.geckoview.GeckoRuntime import java.util.UUID -@@ -312,7 +312,7 @@ class Core( +@@ -313,7 +313,7 @@ class Core( RecentlyClosedMiddleware(recentlyClosedTabsStorage, RECENTLY_CLOSED_MAX), DownloadMiddleware(context, DownloadService::class.java), ReaderViewMiddleware(), @@ -115,7 +115,7 @@ index cfbdaba62c..8b07a2496c 100644 ThumbnailsMiddleware(thumbnailStorage), UndoMiddleware(context.getUndoDelay()), RegionMiddleware(context, locationService), -@@ -325,7 +325,7 @@ class Core( +@@ -326,7 +326,7 @@ class Core( ), RecordingDevicesMiddleware(context, context.components.notificationsDelegate), PromptMiddleware(), @@ -124,7 +124,7 @@ index cfbdaba62c..8b07a2496c 100644 LastMediaAccessMiddleware(), HistoryMetadataMiddleware(historyMetadataService), SessionPrioritizationMiddleware(), -@@ -364,7 +364,7 @@ class Core( +@@ -365,7 +365,7 @@ class Core( // Install the "icons" WebExtension to automatically load icons for every visited website. icons.install(engine, this) @@ -133,7 +133,7 @@ index cfbdaba62c..8b07a2496c 100644 val readJson = { context.assets.readJSONObject("search/search_telemetry_v2.json") } val providerList = withContext(Dispatchers.IO) { SerpTelemetryRepository( -@@ -377,12 +377,12 @@ class Core( +@@ -378,12 +378,12 @@ class Core( REMOTE_STAGE_ENDPOINT_URL }, ).updateProviderList() @@ -150,7 +150,7 @@ index cfbdaba62c..8b07a2496c 100644 WebNotificationFeature( context, -@@ -434,7 +434,7 @@ class Core( +@@ -440,7 +440,7 @@ class Core( BrowserIcons(context, client) } @@ -159,7 +159,7 @@ index cfbdaba62c..8b07a2496c 100644 context.components.analytics.metrics } -@@ -444,7 +444,7 @@ class Core( +@@ -450,7 +450,7 @@ class Core( val searchTelemetry by lazyMonitored { InContentTelemetry() @@ -168,7 +168,7 @@ index cfbdaba62c..8b07a2496c 100644 /** * Shortcut component for managing shortcuts on the device home screen. -@@ -735,7 +735,7 @@ class Core( +@@ -731,7 +731,7 @@ class Core( const val METADATA_SHORTCUT_SUGGESTION_LIMIT = 20 // collection name to fetch from server for SERP telemetry @@ -301,10 +301,10 @@ index 9d54f66a65..ee9cc8e139 100644 fun getInstalledTime(context: Context): Long = context.packageManager 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 13db9f3c83..b0d4f44010 100644 +index a88ff8d3ac..0578a2299a 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 -@@ -87,7 +87,7 @@ import org.mozilla.fenix.GleanMetrics.TopSites +@@ -85,7 +85,7 @@ import org.mozilla.fenix.GleanMetrics.TopSites import org.mozilla.fenix.components.Components import org.mozilla.fenix.components.Core import org.mozilla.fenix.components.appstate.AppAction @@ -313,7 +313,7 @@ index 13db9f3c83..b0d4f44010 100644 import org.mozilla.fenix.components.metrics.MozillaProductDetector import org.mozilla.fenix.components.startMetricsIfEnabled import org.mozilla.fenix.experiments.maybeFetchExperiments -@@ -188,7 +188,7 @@ open class FenixApplication : LocaleAwareApplication(), Provider { +@@ -186,7 +186,7 @@ open class FenixApplication : LocaleAwareApplication(), Provider { // We delay the Glean initialization until, we have user consent (After onboarding). // If onboarding is disabled (when in local builds), continue to initialize Glean. if (components.fenixOnboarding.userHasBeenOnboarded() || !FeatureFlags.onboardingFeatureEnabled) { @@ -322,7 +322,7 @@ index 13db9f3c83..b0d4f44010 100644 } // We avoid blocking the main thread on startup by setting startup metrics on the background thread. -@@ -224,7 +224,7 @@ open class FenixApplication : LocaleAwareApplication(), Provider { +@@ -222,7 +222,7 @@ open class FenixApplication : LocaleAwareApplication(), Provider { components.core.engine.warmUp() } @@ -403,10 +403,10 @@ index e5ab956ac3..c4c45334dd 100644 startMetricsIfEnabled( diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/search/SearchDialogController.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/search/SearchDialogController.kt -index 6725aa64a0..ae0d1eb0b7 100644 +index 819b24954e..273349e0ca 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/search/SearchDialogController.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/search/SearchDialogController.kt -@@ -97,10 +97,10 @@ class SearchDialogController( +@@ -96,10 +96,10 @@ class SearchDialogController( navController.navigateSafe(R.id.searchDialogFragment, directions) store.dispatch(AwesomeBarAction.EngagementFinished(abandoned = false)) } @@ -420,10 +420,10 @@ index 6725aa64a0..ae0d1eb0b7 100644 SupportUtils.getMozillaPageUrl(SupportUtils.MozillaPage.MANIFESTO), ) 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 43bea16286..8f460115af 100644 +index ac0f3bc013..bfd696a88b 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 -@@ -182,7 +182,7 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { +@@ -166,7 +166,7 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { lifecycleScope.launch { requirePreference(R.string.pref_key_enable_debug_drawer).apply { @@ -433,10 +433,10 @@ index 43bea16286..8f460115af 100644 onPreferenceChangeListener = Preference.OnPreferenceChangeListener { _, newValue -> 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 9197b274db..a9ba779426 100644 +index 8913d9f230..5d81426619 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 -@@ -380,19 +380,19 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -386,19 +386,19 @@ class Settings(private val appContext: Context) : PreferencesHolder { default = false, ) @@ -465,7 +465,7 @@ index 9197b274db..a9ba779426 100644 ) var hasAcceptedTermsOfService by booleanPreference( -@@ -406,11 +406,11 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -412,11 +412,11 @@ class Settings(private val appContext: Context) : PreferencesHolder { * sure that users who upgrade and had telemetry disabled don't start sending the * daily usage ping telemetry. */ diff --git a/patches/fenix-ironfox-settings-support-accessibility-services.patch b/patches/fenix-ironfox-settings-support-accessibility-services.patch index e9fe8e1..c7a892c 100644 --- a/patches/fenix-ironfox-settings-support-accessibility-services.patch +++ b/patches/fenix-ironfox-settings-support-accessibility-services.patch @@ -1,8 +1,8 @@ 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 7f19ba4304..e321174ae1 100644 +index 8913d9f230..1143389a4a 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 -@@ -1076,7 +1076,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1084,7 +1084,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { accessibilityManager?.getEnabledAccessibilityServiceList(0)?.let { activeServices -> for (service in activeServices) { if (service.capabilities.and(CAPABILITY_CAN_PERFORM_GESTURES) == 1) { @@ -11,7 +11,7 @@ index 7f19ba4304..e321174ae1 100644 } } } -@@ -1088,7 +1088,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1096,7 +1096,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { get() { val accessibilityManager = appContext.getSystemService(Context.ACCESSIBILITY_SERVICE) as? AccessibilityManager diff --git a/patches/fenix-ironfox-settings-support-cross-origin-referer-policy.patch b/patches/fenix-ironfox-settings-support-cross-origin-referer-policy.patch index 1d1dcf5..5f67b0e 100644 --- a/patches/fenix-ironfox-settings-support-cross-origin-referer-policy.patch +++ b/patches/fenix-ironfox-settings-support-cross-origin-referer-policy.patch @@ -1,8 +1,8 @@ diff --git a/mobile/android/android-components/components/concept/engine/src/main/java/mozilla/components/concept/engine/Engine.kt b/mobile/android/android-components/components/concept/engine/src/main/java/mozilla/components/concept/engine/Engine.kt -index 6088ad065c..2c553a6c18 100644 +index 6d394e4c2b..42eacd04a0 100644 --- a/mobile/android/android-components/components/concept/engine/src/main/java/mozilla/components/concept/engine/Engine.kt +++ b/mobile/android/android-components/components/concept/engine/src/main/java/mozilla/components/concept/engine/Engine.kt -@@ -109,6 +109,12 @@ interface Engine : WebExtensionRuntime, TranslationsRuntime, DataCleanable { +@@ -110,6 +110,12 @@ interface Engine : WebExtensionRuntime, TranslationsRuntime, BrowserPreferencesR OFF, } diff --git a/patches/fenix-ironfox-settings-support-preferred-website-appearance.patch b/patches/fenix-ironfox-settings-support-preferred-website-appearance.patch index c18a034..6a7bcb2 100644 --- a/patches/fenix-ironfox-settings-support-preferred-website-appearance.patch +++ b/patches/fenix-ironfox-settings-support-preferred-website-appearance.patch @@ -1,8 +1,8 @@ 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 cfbdaba62c..8e24737e50 100644 +index 6875486c72..c8fb1d3d0b 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 -@@ -682,9 +682,11 @@ class Core( +@@ -679,9 +679,11 @@ class Core( (context.resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK) == Configuration.UI_MODE_NIGHT_YES return when { diff --git a/patches/fenix-ironfox-settings.patch b/patches/fenix-ironfox-settings.patch index 8a6a554..0c19344 100644 --- a/patches/fenix-ironfox-settings.patch +++ b/patches/fenix-ironfox-settings.patch @@ -1,5 +1,5 @@ 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 cfbdaba62c..0d6ddb5136 100644 +index 6875486c72..d976d249d5 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 @@ -196,6 +196,30 @@ class Core( @@ -33,7 +33,7 @@ index cfbdaba62c..0d6ddb5136 100644 ) // Apply fingerprinting protection overrides if the feature is enabled in Nimbus -@@ -228,6 +252,7 @@ class Core( +@@ -229,6 +253,7 @@ class Core( defaultSettings, geckoRuntime, ).also { @@ -744,7 +744,7 @@ index 325e5d2141..0a5ac75418 100644 if (profilerStatus) { findPreference(getPreferenceKey(R.string.pref_key_start_profiler))?.title = 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 9197b274db..3493b98e0f 100644 +index 8913d9f230..182ed03faa 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 @@ -65,6 +65,7 @@ import org.mozilla.fenix.settings.sitepermissions.AUTOPLAY_BLOCK_AUDIBLE @@ -755,10 +755,11 @@ index 9197b274db..3493b98e0f 100644 private const val AUTOPLAY_USER_SETTING = "AUTOPLAY_USER_SETTING" -@@ -2463,6 +2464,153 @@ class Settings(private val appContext: Context) : PreferencesHolder { - default = false, +@@ -2468,4 +2469,151 @@ class Settings(private val appContext: Context) : PreferencesHolder { + key = appContext.getPreferenceKey(R.string.pref_key_distribution_id), + default = "", ) - ++ + var accessibilityEnabled by booleanPreference( + appContext.getPreferenceKey(R.string.pref_key_accessibility_enabled), + default = false, @@ -905,15 +906,12 @@ index 9197b274db..3493b98e0f 100644 + RefererXOriginPolicy.REFERER_XORIGIN_ALWAYS + } + } -+ - /** - * Indicates whether or not to show the checklist feature. - */ + } diff --git a/mobile/android/fenix/app/src/main/res/navigation/nav_graph.xml b/mobile/android/fenix/app/src/main/res/navigation/nav_graph.xml -index 87f445940d..bfa7137ced 100644 +index de8568b293..7dc7b7ab37 100644 --- a/mobile/android/fenix/app/src/main/res/navigation/nav_graph.xml +++ b/mobile/android/fenix/app/src/main/res/navigation/nav_graph.xml -@@ -651,6 +651,13 @@ +@@ -647,6 +647,13 @@ app:exitAnim="@anim/slide_out_left" app:popEnterAnim="@anim/slide_in_left" app:popExitAnim="@anim/slide_out_right" /> @@ -927,7 +925,7 @@ index 87f445940d..bfa7137ced 100644 diff --git a/patches/fenix-liberate.patch b/patches/fenix-liberate.patch index d73dc1d..b40665a 100644 --- a/patches/fenix-liberate.patch +++ b/patches/fenix-liberate.patch @@ -1,63 +1,63 @@ diff --git a/mobile/android/android-components/.buildconfig.yml b/mobile/android/android-components/.buildconfig.yml -index 26e76a18d2..8e2967ca46 100644 +index 489c138b0d..9e4567bb3e 100644 --- a/mobile/android/android-components/.buildconfig.yml +++ b/mobile/android/android-components/.buildconfig.yml -@@ -1669,17 +1669,17 @@ projects: - - support-base - - support-test - - tooling-lint -- lib-push-firebase: +@@ -1692,17 +1692,17 @@ projects: + - components:support-base + - components:support-test + - components:tooling-lint +- components:lib-push-firebase: - description: An implementation of concept-push for the Firebase Message Service. - path: components/lib/push-firebase - publish: true - upstream_dependencies: -- - concept-base -- - concept-fetch -- - concept-push -- - support-base -- - support-test -- - tooling-lint -+# lib-push-firebase: +- - components:concept-base +- - components:concept-fetch +- - components:concept-push +- - components:support-base +- - components:support-test +- - components:tooling-lint ++# components:lib-push-firebase: +# description: An implementation of concept-push for the Firebase Message Service. +# path: components/lib/push-firebase +# publish: true +# upstream_dependencies: -+# - concept-base -+# - concept-fetch -+# - concept-push -+# - support-base -+# - support-test -+# - tooling-lint - lib-state: ++# - components:concept-base ++# - components:concept-fetch ++# - components:concept-push ++# - components:support-base ++# - components:support-test ++# - components:tooling-lint + components:lib-state: description: A library for maintaining application state. path: components/lib/state diff --git a/mobile/android/fenix/.buildconfig.yml b/mobile/android/fenix/.buildconfig.yml -index b5aa2ce3a4..3486db0750 100644 +index 0620fba71e..5fd81e66bf 100644 --- a/mobile/android/fenix/.buildconfig.yml +++ b/mobile/android/fenix/.buildconfig.yml @@ -65,7 +65,7 @@ projects: - - lib-crash-sentry - - lib-dataprotect - - lib-publicsuffixlist -- - lib-push-firebase -+# - lib-push-firebase - - lib-state - - service-digitalassetlinks - - service-firefox-accounts + - components:lib-crash-sentry + - components:lib-dataprotect + - components:lib-publicsuffixlist +- - components:lib-push-firebase ++# - components:lib-push-firebase + - components:lib-state + - components:service-digitalassetlinks + - components:service-firefox-accounts diff --git a/mobile/android/fenix/app/build.gradle b/mobile/android/fenix/app/build.gradle -index d9a6045423..31842f64a8 100644 +index 5bcd9c730b..5d1cdcaba8 100644 --- a/mobile/android/fenix/app/build.gradle +++ b/mobile/android/fenix/app/build.gradle -@@ -649,7 +649,7 @@ dependencies { +@@ -648,7 +648,7 @@ dependencies { - implementation project(':lib-crash') - implementation project(':lib-crash-sentry') -- implementation project(':lib-push-firebase') -+// implementation project(':lib-push-firebase') - implementation project(':lib-state') - implementation project(':lib-dataprotect') - testImplementation project(':support-test-fakes') -@@ -701,15 +701,15 @@ dependencies { + implementation project(':components:lib-crash') + implementation project(':components:lib-crash-sentry') +- implementation project(':components:lib-push-firebase') ++// implementation project(':components:lib-push-firebase') + implementation project(':components:lib-state') + implementation project(':components:lib-dataprotect') + testImplementation project(':components:support-test-fakes') +@@ -708,15 +708,15 @@ dependencies { implementation libs.protobuf.javalite implementation libs.google.material @@ -76,8 +76,8 @@ index d9a6045423..31842f64a8 100644 +// implementation libs.play.review +// implementation libs.play.review.ktx - implementation ComponentsDependencies.mozilla_appservices_init_rust_components - + androidTestImplementation(libs.androidx.espresso.contrib) { + exclude module: 'protobuf-lite' diff --git a/mobile/android/fenix/app/proguard-rules.pro b/mobile/android/fenix/app/proguard-rules.pro index 982ef996de..4002614795 100644 --- a/mobile/android/fenix/app/proguard-rules.pro @@ -210,7 +210,7 @@ index 982ef996de..4002614795 100644 +-dontwarn org.checkerframework.checker.nullness.qual.EnsuresNonNullIf +-dontwarn org.checkerframework.checker.nullness.qual.RequiresNonNull diff --git a/mobile/android/fenix/app/src/main/AndroidManifest.xml b/mobile/android/fenix/app/src/main/AndroidManifest.xml -index f235d0f7a1..e07a7511dc 100644 +index e47c31743f..c143dd89d2 100644 --- a/mobile/android/fenix/app/src/main/AndroidManifest.xml +++ b/mobile/android/fenix/app/src/main/AndroidManifest.xml @@ -52,7 +52,7 @@ @@ -222,7 +222,7 @@ index f235d0f7a1..e07a7511dc 100644 @@ -231,7 +231,7 @@ index f235d0f7a1..e07a7511dc 100644 android:name=".push.FirebasePushService" android:exported="false"> -@@ -761,7 +761,7 @@ +@@ -756,7 +756,7 @@ android:value="false" /> Long = { System.currentTimeMillis() }, +- private val tryPromptReview: suspend (Activity) -> Unit = { activity -> +- playStoreReviewPromptController.tryPromptReview(activity) ++ private val tryPromptReview: suspend (Activity) -> Unit = { _ -> ++// playStoreReviewPromptController.tryPromptReview(activity) + }, + ) { + @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) +@@ -50,14 +50,14 @@ class ReviewPromptController( + + suspend fun promptReview(activity: Activity) { + if (shouldShowPrompt()) { +- tryPromptReview(activity) +- reviewSettings.lastReviewPromptTimeInMillis = timeNowInMillis() ++// tryPromptReview(activity) ++// reviewSettings.lastReviewPromptTimeInMillis = timeNowInMillis() + } + } + + fun trackApplicationLaunch() { + // We only want to show the the prompt after we've finished "launching" the application. +- reviewPromptIsReady = true ++// reviewPromptIsReady = true + } + + @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) +diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/PlayStoreReviewPromptController.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/PlayStoreReviewPromptController.kt +index c65df5de4a..2b9e9e80e4 100644 +--- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/PlayStoreReviewPromptController.kt ++++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/PlayStoreReviewPromptController.kt @@ -6,8 +6,8 @@ package org.mozilla.fenix.components import android.app.Activity @@ -274,33 +307,34 @@ index 33e8704adc..4bb2a3f64b 100644 -import com.google.android.play.core.review.ReviewManager +//import com.google.android.play.core.review.ReviewInfo +//import com.google.android.play.core.review.ReviewManager - import kotlinx.coroutines.Dispatchers.Main + import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import org.mozilla.fenix.GleanMetrics.ReviewPrompt -@@ -45,11 +45,11 @@ class FenixReviewSettings( - * Controls the Review Prompt behavior. - */ - class ReviewPromptController( +@@ -17,13 +17,13 @@ import java.util.Locale + + /** Wraps the Play Store In-App Review API. */ + class PlayStoreReviewPromptController( - private val manager: ReviewManager, +// private val manager: ReviewManager, - private val reviewSettings: ReviewSettings, - private val timeNowInMillis: () -> Long = { System.currentTimeMillis() }, -- private val tryPromptReview: suspend (Activity) -> Unit = { activity -> -- val flow = manager.requestReviewFlow() -+ private val tryPromptReview: suspend (Activity) -> Unit = { _ -> -+/* val flow = manager.requestReviewFlow() - - withContext(Main) { - flow.addOnCompleteListener { -@@ -62,7 +62,7 @@ class ReviewPromptController( - ) - } - } -- } -+ }*/ - }, + private val numberOfAppLaunches: () -> Int, ) { - @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) + + /** Launch the in-app review flow, unless we've hit the quota. */ + suspend fun tryPromptReview(activity: Activity) { +- val flow = withContext(Dispatchers.IO) { manager.requestReviewFlow() } ++/* val flow = withContext(Dispatchers.IO) { manager.requestReviewFlow() } + + flow.addOnCompleteListener { + if (it.isSuccessful) { +@@ -35,7 +35,7 @@ class PlayStoreReviewPromptController( + ) + } + } +- } ++ }*/ + } + + /** diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/metrics/AdjustMetricsService.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/metrics/AdjustMetricsService.kt index 6312b65949..ec8b759397 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/metrics/AdjustMetricsService.kt @@ -333,7 +367,7 @@ index 6312b65949..ec8b759397 100644 } 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..db736fd18a 100644 +index e1c3ed4d04..a72032ae9f 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,8 +6,8 @@ package org.mozilla.fenix.components.metrics @@ -357,10 +391,10 @@ index 233855f4c2..db736fd18a 100644 +//import org.mozilla.fenix.GleanMetrics.MetaAttribution +//import org.mozilla.fenix.GleanMetrics.Pings +//import org.mozilla.fenix.GleanMetrics.PlayStoreAttribution + import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.settings import org.mozilla.fenix.utils.Settings - import java.io.UnsupportedEncodingException -@@ -33,10 +33,10 @@ class InstallReferrerMetricsService(private val context: Context) : MetricsServi +@@ -34,10 +34,10 @@ class InstallReferrerMetricsService(private val context: Context) : MetricsServi private val logger = Logger("InstallReferrerMetricsService") override val type = MetricServiceType.Data @@ -373,7 +407,7 @@ index 233855f4c2..db736fd18a 100644 return } -@@ -51,13 +51,13 @@ class InstallReferrerMetricsService(private val context: Context) : MetricsServi +@@ -52,13 +52,13 @@ class InstallReferrerMetricsService(private val context: Context) : MetricsServi val firstSession = FirstSessionPing(context) PlayStoreAttribution.responseCode.set(responseCode.toString()) when (responseCode) { @@ -392,7 +426,7 @@ index 233855f4c2..db736fd18a 100644 null } catch (e: SecurityException) { logger.error("Failed to retrieve install referrer response", e) -@@ -86,33 +86,33 @@ class InstallReferrerMetricsService(private val context: Context) : MetricsServi +@@ -90,33 +90,33 @@ class InstallReferrerMetricsService(private val context: Context) : MetricsServi InstallReferrerClient.InstallReferrerResponse.FEATURE_NOT_SUPPORTED, InstallReferrerClient.InstallReferrerResponse.DEVELOPER_ERROR, InstallReferrerClient.InstallReferrerResponse.PERMISSION_ERROR, @@ -443,7 +477,7 @@ index 233855f4c2..db736fd18a 100644 } override fun track(event: Event) = Unit -@@ -120,9 +120,9 @@ class InstallReferrerMetricsService(private val context: Context) : MetricsServi +@@ -124,9 +124,9 @@ class InstallReferrerMetricsService(private val context: Context) : MetricsServi override fun shouldTrack(event: Event): Boolean = false private fun triggerPing() { @@ -456,7 +490,7 @@ index 233855f4c2..db736fd18a 100644 } } -@@ -238,11 +238,11 @@ data class UTMParams( +@@ -242,11 +242,11 @@ data class UTMParams( } intoSettings(settings) @@ -473,7 +507,7 @@ index 233855f4c2..db736fd18a 100644 } } -@@ -337,9 +337,9 @@ data class MetaParams( +@@ -341,9 +341,9 @@ data class MetaParams( * record META attribution params to telemetry */ fun recordMetaAttribution() { @@ -703,10 +737,10 @@ index e13ebe821f..4322aad38e 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 9197b274db..b600d45fd5 100644 +index 8913d9f230..38b80e2549 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 -@@ -1867,7 +1867,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1852,7 +1852,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { */ var shouldShowMarketingOnboarding by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_should_show_marketing_onboarding), @@ -714,7 +748,7 @@ index 9197b274db..b600d45fd5 100644 + default = false, ) - val feltPrivateBrowsingEnabled by lazyFeatureFlagPreference( + var shouldUseComposableToolbar by lazyFeatureFlagPreference( 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 4c6b14bf87..9fc35fc6a8 100644 --- a/mobile/android/fenix/app/src/main/res/xml/preferences.xml @@ -733,10 +767,10 @@ index 4c6b14bf87..9fc35fc6a8 100644 { @@ -50,7 +50,7 @@ index 165309d17b..689326135e 100644 } diff --git a/toolkit/components/nimbus/lib/RemoteSettingsExperimentLoader.sys.mjs b/toolkit/components/nimbus/lib/RemoteSettingsExperimentLoader.sys.mjs -index d3ab385732..700465258c 100644 +index ebb933e6fa..b1eea8bc5e 100644 --- a/toolkit/components/nimbus/lib/RemoteSettingsExperimentLoader.sys.mjs +++ b/toolkit/components/nimbus/lib/RemoteSettingsExperimentLoader.sys.mjs @@ -37,7 +37,7 @@ XPCOMUtils.defineLazyServiceGetter( diff --git a/patches/gecko-disable-telemetry.patch b/patches/gecko-disable-telemetry.patch index cfe8629..6964598 100644 --- a/patches/gecko-disable-telemetry.patch +++ b/patches/gecko-disable-telemetry.patch @@ -124,10 +124,10 @@ index cf0a7bd372..4f19716815 100644 isReleaseCandidateOnBeta || Services.prefs.getBoolPref(this.Preferences.OverridePreRelease, false); diff --git a/toolkit/components/telemetry/app/UsageReporting.sys.mjs b/toolkit/components/telemetry/app/UsageReporting.sys.mjs -index 4a3e1de32d..baeff11b29 100644 +index bb7e05d43b..d0e8c3476b 100644 --- a/toolkit/components/telemetry/app/UsageReporting.sys.mjs +++ b/toolkit/components/telemetry/app/UsageReporting.sys.mjs -@@ -45,7 +45,7 @@ export var UsageReporting = { +@@ -46,7 +46,7 @@ export var UsageReporting = { // Usage deletion requests can always be sent. They are // always sent in response to user action. @@ -137,10 +137,10 @@ index 4a3e1de32d..baeff11b29 100644 // Usage pings should only be sent when upload is enabled. // Eventually, Glean will persist this setting. diff --git a/toolkit/components/telemetry/core/Telemetry.cpp b/toolkit/components/telemetry/core/Telemetry.cpp -index 64c53be02c..b4940c3aac 100644 +index c07273a7b7..66a0191fec 100644 --- a/toolkit/components/telemetry/core/Telemetry.cpp +++ b/toolkit/components/telemetry/core/Telemetry.cpp -@@ -885,7 +885,7 @@ NS_IMETHODIMP +@@ -895,7 +895,7 @@ NS_IMETHODIMP TelemetryImpl::GetIsOfficialTelemetry(bool* ret) { #if defined(MOZILLA_OFFICIAL) && defined(MOZ_TELEMETRY_REPORTING) && \ !defined(DEBUG) @@ -149,7 +149,7 @@ index 64c53be02c..b4940c3aac 100644 #else *ret = false; #endif -@@ -904,7 +904,7 @@ already_AddRefed TelemetryImpl::CreateTelemetryInstance() { +@@ -914,7 +914,7 @@ already_AddRefed TelemetryImpl::CreateTelemetryInstance() { #ifndef FUZZING if (XRE_IsParentProcess() || XRE_IsContentProcess() || XRE_IsGPUProcess() || XRE_IsRDDProcess() || XRE_IsSocketProcess() || XRE_IsUtilityProcess()) { @@ -180,7 +180,7 @@ index a52d8e0a64..2ecdbffc98 100644 // We're not recording extended telemetry or this is not the base diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn -index f94b88f8d8..3401baff7e 100644 +index 83fcfac2d4..82a852c15c 100644 --- a/toolkit/content/jar.mn +++ b/toolkit/content/jar.mn @@ -37,9 +37,9 @@ toolkit.jar: diff --git a/patches/gecko-ironfox-settings-support-spoof-english.patch b/patches/gecko-ironfox-settings-support-spoof-english.patch index 075aeaa..7db6137 100644 --- a/patches/gecko-ironfox-settings-support-spoof-english.patch +++ b/patches/gecko-ironfox-settings-support-spoof-english.patch @@ -1,16 +1,16 @@ diff --git a/mobile/shared/components/geckoview/GeckoViewStartup.sys.mjs b/mobile/shared/components/geckoview/GeckoViewStartup.sys.mjs -index c5999da57a..332f14fa8a 100644 +index a7a3554a5e..9f8e0c94b7 100644 --- a/mobile/shared/components/geckoview/GeckoViewStartup.sys.mjs +++ b/mobile/shared/components/geckoview/GeckoViewStartup.sys.mjs @@ -12,6 +12,7 @@ ChromeUtils.defineESModuleGetters(lazy, { - DoHController: "resource://gre/modules/DoHController.sys.mjs", + DoHController: "moz-src:///toolkit/components/doh/DoHController.sys.mjs", EventDispatcher: "resource://gre/modules/Messaging.sys.mjs", PdfJs: "resource://pdf.js/PdfJs.sys.mjs", + RFPHelper: "resource://gre/modules/RFPHelper.sys.mjs", }); const { debug, warn } = GeckoViewUtils.initLogging("Startup"); -@@ -369,6 +370,10 @@ export class GeckoViewStartup { +@@ -361,6 +362,10 @@ export class GeckoViewStartup { if (aData.requestedLocales) { Services.locale.requestedLocales = aData.requestedLocales; } diff --git a/patches/gecko-ironfox-settings.patch b/patches/gecko-ironfox-settings.patch index 76154f7..b914a93 100644 --- a/patches/gecko-ironfox-settings.patch +++ b/patches/gecko-ironfox-settings.patch @@ -1,8 +1,8 @@ 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 1612c570be..f53b53cf43 100644 +index abc5eb1d3c..a60ff512f9 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 -@@ -1483,6 +1483,114 @@ class GeckoEngine( +@@ -1503,6 +1503,114 @@ class GeckoEngine( override var bannedPorts: String get() = runtime.settings.bannedPorts set(value) { runtime.settings.setBannedPorts(value) } @@ -117,7 +117,7 @@ index 1612c570be..f53b53cf43 100644 }.apply { defaultSettings?.let { this.javascriptEnabled = it.javascriptEnabled -@@ -1527,6 +1635,29 @@ class GeckoEngine( +@@ -1549,6 +1657,29 @@ class GeckoEngine( this.postQuantumKeyExchangeEnabled = it.postQuantumKeyExchangeEnabled this.dohAutoselectEnabled = it.dohAutoselectEnabled this.bannedPorts = it.bannedPorts @@ -148,10 +148,10 @@ index 1612c570be..f53b53cf43 100644 } 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 24e8f76532..c42b6b37ab 100644 +index 5dd0b2beae..55900c099d 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 -@@ -350,6 +350,30 @@ abstract class Settings { +@@ -362,6 +362,30 @@ abstract class Settings { * Comma-separated list of destination ports that the application should block connections to. */ open var bannedPorts: String by UnsupportedSetting() @@ -182,7 +182,7 @@ index 24e8f76532..c42b6b37ab 100644 } /** -@@ -420,6 +444,29 @@ data class DefaultSettings( +@@ -434,6 +458,29 @@ data class DefaultSettings( override var postQuantumKeyExchangeEnabled: Boolean? = null, override var dohAutoselectEnabled: Boolean = false, override var bannedPorts: String = "", @@ -213,10 +213,10 @@ index 24e8f76532..c42b6b37ab 100644 override val desktopModeEnabled: Boolean get() = getDesktopMode() diff --git a/mobile/android/geckoview/api.txt b/mobile/android/geckoview/api.txt -index a410550e60..032b5f2509 100644 +index 2a1a27a990..ac9313950e 100644 --- a/mobile/android/geckoview/api.txt +++ b/mobile/android/geckoview/api.txt -@@ -984,6 +984,29 @@ package org.mozilla.geckoview { +@@ -991,6 +991,29 @@ package org.mozilla.geckoview { method @Nullable public Integer getWebContentIsolationStrategy(); method public boolean getWebFontsEnabled(); method public boolean getWebManifestEnabled(); @@ -246,7 +246,7 @@ index a410550e60..032b5f2509 100644 method @NonNull public GeckoRuntimeSettings setAboutConfigEnabled(boolean); method @NonNull public GeckoRuntimeSettings setAllowInsecureConnections(int); method @NonNull public GeckoRuntimeSettings setAutomaticFontSizeAdjustment(boolean); -@@ -1030,6 +1053,29 @@ package org.mozilla.geckoview { +@@ -1039,6 +1062,29 @@ package org.mozilla.geckoview { method @NonNull public GeckoRuntimeSettings setWebContentIsolationStrategy(@NonNull Integer); method @NonNull public GeckoRuntimeSettings setWebFontsEnabled(boolean); method @NonNull public GeckoRuntimeSettings setWebManifestEnabled(boolean); @@ -276,7 +276,7 @@ index a410550e60..032b5f2509 100644 field public static final int ALLOW_ALL = 0; field public static final int COLOR_SCHEME_DARK = 1; field public static final int COLOR_SCHEME_LIGHT = 0; -@@ -1044,6 +1090,9 @@ package org.mozilla.geckoview { +@@ -1053,6 +1099,9 @@ package org.mozilla.geckoview { field public static final int TRR_MODE_FIRST = 2; field public static final int TRR_MODE_OFF = 0; field public static final int TRR_MODE_ONLY = 3; @@ -286,7 +286,7 @@ index a410550e60..032b5f2509 100644 } @AnyThread public static final class GeckoRuntimeSettings.Builder extends RuntimeSettings.Builder { -@@ -1093,6 +1142,29 @@ package org.mozilla.geckoview { +@@ -1102,6 +1151,29 @@ package org.mozilla.geckoview { method @NonNull public GeckoRuntimeSettings.Builder useMaxScreenDepth(boolean); method @NonNull public GeckoRuntimeSettings.Builder webFontsEnabled(boolean); method @NonNull public GeckoRuntimeSettings.Builder webManifest(boolean); @@ -316,7 +316,7 @@ index a410550e60..032b5f2509 100644 method @NonNull protected GeckoRuntimeSettings newSettings(@Nullable GeckoRuntimeSettings); } -@@ -1108,6 +1180,9 @@ package org.mozilla.geckoview { +@@ -1117,6 +1189,9 @@ package org.mozilla.geckoview { @Retention(value=RetentionPolicy.SOURCE) public static interface GeckoRuntimeSettings.WebContentIsolationStrategy { } @@ -327,7 +327,7 @@ index a410550e60..032b5f2509 100644 ctor public GeckoSession(); ctor public GeckoSession(@Nullable GeckoSessionSettings); 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 25ea09c3f6..39182b1d9b 100644 +index 95f2454abf..3a77508983 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 @@ -640,6 +640,121 @@ public final class GeckoRuntimeSettings extends RuntimeSettings { @@ -452,16 +452,7 @@ index 25ea09c3f6..39182b1d9b 100644 } private GeckoRuntime mRuntime; -@@ -706,7 +821,7 @@ public final class GeckoRuntimeSettings extends RuntimeSettings { - /* package */ final Pref mExtensionsWebAPIEnabled = - new Pref<>("extensions.webapi.enabled", false); - /* package */ final PrefWithoutDefault mExtensionsProcess = -- new PrefWithoutDefault("extensions.webextensions.remote"); -+ new PrefWithoutDefault("z99.ignore.boolean"); - /* package */ final PrefWithoutDefault mExtensionsProcessCrashTimeframe = - new PrefWithoutDefault("extensions.webextensions.crash.timeframe"); - /* package */ final PrefWithoutDefault mExtensionsProcessCrashThreshold = -@@ -766,6 +881,30 @@ public final class GeckoRuntimeSettings extends RuntimeSettings { +@@ -770,6 +885,30 @@ public final class GeckoRuntimeSettings extends RuntimeSettings { /* package */ String[] mRequestedLocales; /* package */ ExperimentDelegate mExperimentDelegate; @@ -492,7 +483,7 @@ index 25ea09c3f6..39182b1d9b 100644 /** * Attach and commit the settings to the given runtime. * -@@ -2206,6 +2345,239 @@ public final class GeckoRuntimeSettings extends RuntimeSettings { +@@ -2256,6 +2395,239 @@ public final class GeckoRuntimeSettings extends RuntimeSettings { return mSameDocumentNavigationOverridesLoadTypeForceDisable.get(); } diff --git a/patches/gecko-liberate.patch b/patches/gecko-liberate.patch index cdf4c91..c6c3b93 100644 --- a/patches/gecko-liberate.patch +++ b/patches/gecko-liberate.patch @@ -1,5 +1,5 @@ diff --git a/mobile/android/geckoview/build.gradle b/mobile/android/geckoview/build.gradle -index b6305f62be..8b5708dc1b 100644 +index 9f2993090f..7b93871e74 100644 --- a/mobile/android/geckoview/build.gradle +++ b/mobile/android/geckoview/build.gradle @@ -218,7 +218,7 @@ dependencies { @@ -12,10 +12,10 @@ index b6305f62be..8b5708dc1b 100644 implementation libs.androidx.lifecycle.common diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn -index f94b88f8d8..d9db903a89 100644 +index 83fcfac2d4..8207c2bf18 100644 --- a/toolkit/content/jar.mn +++ b/toolkit/content/jar.mn -@@ -166,9 +166,9 @@ toolkit.jar: +@@ -170,9 +170,9 @@ toolkit.jar: #ifdef XP_MACOSX content/global/macWindowMenu.js #endif diff --git a/patches/gecko-localize_maven.patch b/patches/gecko-localize_maven.patch index 6fb2593..deec748 100644 --- a/patches/gecko-localize_maven.patch +++ b/patches/gecko-localize_maven.patch @@ -39,7 +39,7 @@ index 3c6eb9e4c4..9b7621a44e 100644 // Use the semanticdb-javac and semanticdb-kotlinc plugins to generate semanticdb files for Searchfox diff --git a/mobile/android/android-components/build.gradle b/mobile/android/android-components/build.gradle -index 00c059ffd5..936dda52d7 100644 +index 101bb5ba0f..8242623cd1 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 @@ -79,7 +79,7 @@ index 00c059ffd5..936dda52d7 100644 maven { 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 +index 6bbc5b3ed8..e009561361 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 @@ @@ -101,7 +101,7 @@ index 7941343807..6e930c8da5 100644 dependencies { 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 +index fe86bfc252..68713e57d7 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 @@ @@ -123,7 +123,7 @@ index 3e2c155de0..ae4ed0d52c 100644 dependencies { diff --git a/mobile/android/android-components/components/service/nimbus/build.gradle b/mobile/android/android-components/components/service/nimbus/build.gradle -index 9aa45d5115..208a7a1076 100644 +index 7f79cbdbd6..0a4b0c3a72 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 @@ @@ -145,7 +145,7 @@ index 9aa45d5115..208a7a1076 100644 dependencies { diff --git a/mobile/android/android-components/components/support/remotesettings/build.gradle b/mobile/android/android-components/components/support/remotesettings/build.gradle -index 87e6954947..437580979a 100644 +index bdae594eb0..17a61a5dea 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 @@ @@ -365,7 +365,7 @@ index 19dc9e9ccf..6adb734ad5 100644 includeBuild("plugins/dependencies") diff --git a/mobile/android/fenix/app/build.gradle b/mobile/android/fenix/app/build.gradle -index d9a6045423..262a5e483c 100644 +index 5bcd9c730b..9612ecd635 100644 --- a/mobile/android/fenix/app/build.gradle +++ b/mobile/android/fenix/app/build.gradle @@ -3,14 +3,9 @@ import java.time.format.DateTimeFormatter @@ -387,7 +387,7 @@ index d9a6045423..262a5e483c 100644 dependencies { diff --git a/mobile/android/fenix/build.gradle b/mobile/android/fenix/build.gradle -index e34e870acc..f86a22a45c 100644 +index 94001b33fe..99aad74b2a 100644 --- a/mobile/android/fenix/build.gradle +++ b/mobile/android/fenix/build.gradle @@ -8,14 +8,9 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile @@ -493,7 +493,7 @@ index 7e461f97cc..65f0b42b0f 100644 includeBuild("../android-components/plugins/publicsuffixlist") diff --git a/mobile/android/focus-android/build.gradle b/mobile/android/focus-android/build.gradle -index 80f726f82f..9daac463f6 100644 +index aa31f34889..76cf20d094 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 @@ -555,7 +555,7 @@ index 0f5dbd50a0..3143f62c77 100644 includeBuild("../android-components/plugins/publicsuffixlist") diff --git a/mobile/android/shared-settings.gradle b/mobile/android/shared-settings.gradle -index eb9e1e36b3..92981dce83 100644 +index a6efbedbd2..a4c647f5e1 100644 --- a/mobile/android/shared-settings.gradle +++ b/mobile/android/shared-settings.gradle @@ -13,14 +13,9 @@ buildscript { @@ -577,7 +577,7 @@ index eb9e1e36b3..92981dce83 100644 dependencies { diff --git a/settings.gradle b/settings.gradle -index 35b1d35323..705a80ed96 100644 +index c66db7a77b..7a3365bfa7 100644 --- a/settings.gradle +++ b/settings.gradle @@ -9,14 +9,9 @@ pluginManagement { diff --git a/patches/gecko-overlay/toolkit/components/resistfingerprinting/RFPTargetsDefault.inc b/patches/gecko-overlay/toolkit/components/resistfingerprinting/RFPTargetsDefault.inc index 5ab2706..81977a4 100644 --- a/patches/gecko-overlay/toolkit/components/resistfingerprinting/RFPTargetsDefault.inc +++ b/patches/gecko-overlay/toolkit/components/resistfingerprinting/RFPTargetsDefault.inc @@ -52,6 +52,7 @@ ANDROID_DEFAULT(SiteSpecificZoom) ANDROID_DEFAULT(SpeechSynthesis) ANDROID_DEFAULT(StreamVideoFacingMode) ANDROID_DEFAULT(TouchEvents) +ANDROID_DEFAULT(UseHardcodedFontSubstitutes) ANDROID_DEFAULT(UseStandinsForNativeColors) ANDROID_DEFAULT(VideoElementMozFrameDelay) ANDROID_DEFAULT(VideoElementMozFrames) diff --git a/patches/harden-pdfjs.patch b/patches/harden-pdfjs.patch index 2d33c68..6df1edb 100644 --- a/patches/harden-pdfjs.patch +++ b/patches/harden-pdfjs.patch @@ -1,8 +1,8 @@ diff --git a/toolkit/components/pdfjs/content/build/pdf.mjs b/toolkit/components/pdfjs/content/build/pdf.mjs -index bdf304a524..56667492ad 100644 +index 59ecfccf3c..b1b373ab14 100644 --- a/toolkit/components/pdfjs/content/build/pdf.mjs +++ b/toolkit/components/pdfjs/content/build/pdf.mjs -@@ -469,7 +469,7 @@ function isLittleEndian() { +@@ -473,7 +473,7 @@ function isLittleEndian() { function isEvalSupported() { try { new Function(""); @@ -11,7 +11,7 @@ index bdf304a524..56667492ad 100644 } catch { return false; } -@@ -479,7 +479,7 @@ class util_FeatureTest { +@@ -483,7 +483,7 @@ class util_FeatureTest { return shadow(this, "isLittleEndian", isLittleEndian()); } static get isEvalSupported() { @@ -20,7 +20,7 @@ index bdf304a524..56667492ad 100644 } static get isOffscreenCanvasSupported() { return shadow(this, "isOffscreenCanvasSupported", typeof OffscreenCanvas !== "undefined"); -@@ -10030,7 +10030,7 @@ function getDocument(src = {}) { +@@ -10199,7 +10199,7 @@ function getDocument(src = {}) { const { docId } = task; @@ -29,7 +29,7 @@ index bdf304a524..56667492ad 100644 const data = src.data ? getDataProp(src.data) : null; const httpHeaders = src.httpHeaders || null; const withCredentials = src.withCredentials === true; -@@ -10040,17 +10040,17 @@ function getDocument(src = {}) { +@@ -10209,17 +10209,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; @@ -52,7 +52,7 @@ index bdf304a524..56667492ad 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; -@@ -10067,7 +10067,7 @@ function getDocument(src = {}) { +@@ -10236,7 +10236,7 @@ function getDocument(src = {}) { const enableHWA = src.enableHWA === true; const useWasm = src.useWasm !== false; const length = rangeTransport ? rangeTransport.length : src.length ?? NaN; @@ -62,10 +62,10 @@ index bdf304a524..56667492ad 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 7e2d0c53f5..cf9706d9ef 100644 +index 814d28ab0d..447e5f3971 100644 --- a/toolkit/components/pdfjs/content/build/pdf.worker.mjs +++ b/toolkit/components/pdfjs/content/build/pdf.worker.mjs -@@ -469,7 +469,7 @@ function isLittleEndian() { +@@ -473,7 +473,7 @@ function isLittleEndian() { function isEvalSupported() { try { new Function(""); @@ -74,7 +74,7 @@ index 7e2d0c53f5..cf9706d9ef 100644 } catch { return false; } -@@ -479,7 +479,7 @@ class FeatureTest { +@@ -483,7 +483,7 @@ class FeatureTest { return shadow(this, "isLittleEndian", isLittleEndian()); } static get isEvalSupported() { @@ -83,7 +83,7 @@ index 7e2d0c53f5..cf9706d9ef 100644 } static get isOffscreenCanvasSupported() { return shadow(this, "isOffscreenCanvasSupported", typeof OffscreenCanvas !== "undefined"); -@@ -28711,10 +28711,10 @@ class GlobalImageCache { +@@ -28689,10 +28689,10 @@ class GlobalImageCache { class PDFFunctionFactory { constructor({ xref, @@ -96,7 +96,7 @@ index 7e2d0c53f5..cf9706d9ef 100644 } create(fn, parseArray = false) { let fnRef, parsedFn; -@@ -31054,18 +31054,18 @@ const DefaultPartialEvaluatorOptions = Object.freeze({ +@@ -31032,18 +31032,18 @@ const DefaultPartialEvaluatorOptions = Object.freeze({ maxImageSize: -1, disableFontFace: false, ignoreErrors: false, @@ -133,10 +133,10 @@ index 5e0a113820..e89114242e 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 0bf80af004..6d2da8f9ff 100644 +index 114de09cb1..f9fe3b812f 100644 --- a/toolkit/components/pdfjs/content/web/viewer-geckoview.mjs +++ b/toolkit/components/pdfjs/content/web/viewer-geckoview.mjs -@@ -837,7 +837,7 @@ const defaultOptions = { +@@ -841,7 +841,7 @@ const defaultOptions = { kind: OptionKind.API }, isEvalSupported: { diff --git a/patches/https_only.patch b/patches/https_only.patch index b7d1783..6037658 100644 --- a/patches/https_only.patch +++ b/patches/https_only.patch @@ -1,8 +1,8 @@ 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 9197b274db..7915e64ee8 100644 +index 8913d9f230..4170fd1555 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 -@@ -722,7 +722,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -728,7 +728,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { var shouldUseHttpsOnly by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_https_only), diff --git a/patches/install-addons-without-mozaddonmanager.patch b/patches/install-addons-without-mozaddonmanager.patch index 02ef1ba..00a51f2 100644 --- a/patches/install-addons-without-mozaddonmanager.patch +++ b/patches/install-addons-without-mozaddonmanager.patch @@ -86,10 +86,10 @@ index 680aa57c07..47c8f5d5a5 100644 { 'cid': '{7beb3ba8-6ec3-41b4-b67c-da89b8518922}', diff --git a/toolkit/mozapps/extensions/internal/XPIDatabase.sys.mjs b/toolkit/mozapps/extensions/internal/XPIDatabase.sys.mjs -index be695666e5..9938a716f6 100644 +index 042f9371de..27957784f6 100644 --- a/toolkit/mozapps/extensions/internal/XPIDatabase.sys.mjs +++ b/toolkit/mozapps/extensions/internal/XPIDatabase.sys.mjs -@@ -2254,6 +2254,7 @@ export const XPIDatabase = { +@@ -2256,6 +2256,7 @@ export const XPIDatabase = { * manager for the user to change later. */ importPermissions() { diff --git a/patches/install-ublock.patch b/patches/install-ublock.patch index 556cc35..f22e9aa 100644 --- a/patches/install-ublock.patch +++ b/patches/install-ublock.patch @@ -13,7 +13,7 @@ Signed-off-by: Akash Yadav 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..fd1dd84132 100644 +index 492c009ff9..d692aaa234 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 @@ class WebExtensionPromptFeature( @@ -41,7 +41,7 @@ index 82e44d1abc..fd1dd84132 100644 showPermissionDialog( addon = addon, promptRequest = promptRequest, -@@ -141,6 +152,14 @@ class WebExtensionPromptFeature( +@@ -142,6 +153,14 @@ class WebExtensionPromptFeature( addon: Addon, promptRequest: WebExtensionPromptRequest.AfterInstallation.Permissions.Optional, ) { diff --git a/patches/ironfox-home.patch b/patches/ironfox-home.patch index 19dc5ea..26ff535 100644 --- a/patches/ironfox-home.patch +++ b/patches/ironfox-home.patch @@ -1,8 +1,8 @@ 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 13db9f3c83..7964a7af07 100644 +index a88ff8d3ac..5110c0706f 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 -@@ -340,7 +340,7 @@ open class FenixApplication : LocaleAwareApplication(), Provider { +@@ -338,7 +338,7 @@ open class FenixApplication : LocaleAwareApplication(), Provider { // we can prevent with this. components.core.topSitesStorage.getTopSites( totalSites = components.settings.topSitesMaxLimit, @@ -11,19 +11,6 @@ index 13db9f3c83..7964a7af07 100644 null } else { TopSitesFrecencyConfig( -diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlView.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlView.kt -index 26c7a0a2ed..0e694ee05d 100644 ---- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlView.kt -+++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlView.kt -@@ -111,7 +111,7 @@ internal fun normalModeAdapterItems( - } - - if (shouldShowCustomizeHome) { -- items.add(AdapterItem.CustomizeHomeButton) -+// items.add(AdapterItem.CustomizeHomeButton) - } - - items.add(AdapterItem.BottomSpacer) diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/topsites/TopSitesConfigCreator.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/topsites/TopSitesConfigCreator.kt index 48b312d257..92b3b71f71 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/topsites/TopSitesConfigCreator.kt @@ -38,7 +25,7 @@ index 48b312d257..92b3b71f71 100644 } else { TopSitesFrecencyConfig( 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 9197b274db..f101f8fd08 100644 +index 8913d9f230..0c2d28f6fb 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 @@ -179,7 +179,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { @@ -50,7 +37,7 @@ index 9197b274db..f101f8fd08 100644 ) var numberOfAppLaunches by intPreference( -@@ -365,7 +365,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -371,7 +371,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { var showCollectionsPlaceholderOnHome by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_show_collections_placeholder_home), @@ -59,7 +46,7 @@ index 9197b274db..f101f8fd08 100644 ) val isCrashReportingEnabled: Boolean -@@ -1151,7 +1151,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1154,7 +1154,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { var defaultTopSitesAdded by booleanPreference( appContext.getPreferenceKey(R.string.default_top_sites_added), @@ -68,7 +55,7 @@ index 9197b274db..f101f8fd08 100644 ) var shouldShowSearchSuggestionsInPrivate by booleanPreference( -@@ -1662,7 +1662,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1665,7 +1665,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { var historyMetadataUIFeature by lazyFeatureFlagPreference( appContext.getPreferenceKey(R.string.pref_key_history_metadata_feature), @@ -77,7 +64,7 @@ index 9197b274db..f101f8fd08 100644 featureFlag = true, ) -@@ -1690,7 +1690,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1684,7 +1684,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { var showRecentTabsFeature by lazyFeatureFlagPreference( appContext.getPreferenceKey(R.string.pref_key_recent_tabs), featureFlag = true, @@ -86,7 +73,7 @@ index 9197b274db..f101f8fd08 100644 ) /** -@@ -1698,7 +1698,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1692,7 +1692,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { */ var showBookmarksHomeFeature by lazyFeatureFlagPreference( appContext.getPreferenceKey(R.string.pref_key_customization_bookmarks), diff --git a/patches/librewolf-rs-blocker.patch b/patches/librewolf-rs-blocker.patch index 15d4d77..0997980 100644 --- a/patches/librewolf-rs-blocker.patch +++ b/patches/librewolf-rs-blocker.patch @@ -1,5 +1,5 @@ diff --git a/services/settings/RemoteSettingsClient.sys.mjs b/services/settings/RemoteSettingsClient.sys.mjs -index dfb23ec49a..45ea3c2412 100644 +index fc7f6705da..a3fdd04f03 100644 --- a/services/settings/RemoteSettingsClient.sys.mjs +++ b/services/settings/RemoteSettingsClient.sys.mjs @@ -228,6 +228,11 @@ class AttachmentDownloader extends Downloader { @@ -11,10 +11,10 @@ index dfb23ec49a..45ea3c2412 100644 + `Download attempt to RS collection "${this.identifier}" was blocked.` + ); + } - try { - // Explicitly await here to ensure we catch a network error. - return await super.download(record, options); -@@ -625,6 +630,10 @@ export class RemoteSettingsClient extends EventEmitter { + await lazy.UptakeTelemetry.report( + TELEMETRY_COMPONENT, + lazy.UptakeTelemetry.STATUS.DOWNLOAD_START, +@@ -652,6 +657,10 @@ export class RemoteSettingsClient extends EventEmitter { return; } @@ -25,7 +25,7 @@ index dfb23ec49a..45ea3c2412 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( -@@ -992,6 +1001,14 @@ export class RemoteSettingsClient extends EventEmitter { +@@ -1031,6 +1040,14 @@ export class RemoteSettingsClient extends EventEmitter { * Import the JSON files from services/settings/dump into the local DB. */ async _importJSONDump() { diff --git a/patches/mach-disable-telemetry.patch b/patches/mach-disable-telemetry.patch index 40d3483..c9b8865 100644 --- a/patches/mach-disable-telemetry.patch +++ b/patches/mach-disable-telemetry.patch @@ -20,7 +20,7 @@ index b1a2513596..5c32785c99 100644 +_is_unmodified_mach_core_result = False +_is_unmodified_mach_core_thread = False diff --git a/python/mach/mach/telemetry.py b/python/mach/mach/telemetry.py -index a3fda9a59b..48a593ac36 100644 +index ab5c3d7ba4..76800926f0 100644 --- a/python/mach/mach/telemetry.py +++ b/python/mach/mach/telemetry.py @@ -88,14 +88,14 @@ def is_applicable_telemetry_environment(): diff --git a/patches/prevent-pdfjs-fingerprinting.patch b/patches/prevent-pdfjs-fingerprinting.patch index d2b8bbb..fcf77d0 100644 --- a/patches/prevent-pdfjs-fingerprinting.patch +++ b/patches/prevent-pdfjs-fingerprinting.patch @@ -1,5 +1,5 @@ diff --git a/dom/base/Navigator.cpp b/dom/base/Navigator.cpp -index fac2759535..b2412a10a5 100644 +index 3f60404936..dcab978457 100644 --- a/dom/base/Navigator.cpp +++ b/dom/base/Navigator.cpp @@ -510,7 +510,7 @@ nsPluginArray* Navigator::GetPlugins(ErrorResult& aRv) { diff --git a/patches/remote-debugging.patch b/patches/remote-debugging.patch index 97608e8..7713df3 100644 --- a/patches/remote-debugging.patch +++ b/patches/remote-debugging.patch @@ -12,10 +12,10 @@ index 325e5d2141..3d1596f181 100644 preference.context.settings().preferences.edit { putBoolean(preference.key, newValue) } requireComponents.core.engine.settings.remoteDebuggingEnabled = newValue 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 9197b274db..9c4d52f60b 100644 +index 8913d9f230..c78bdf93da 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 -@@ -375,10 +375,10 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -381,10 +381,10 @@ class Settings(private val appContext: Context) : PreferencesHolder { true, ) diff --git a/patches/remove-autoconfig-dependency.patch b/patches/remove-autoconfig-dependency.patch index d93e516..a433368 100644 --- a/patches/remove-autoconfig-dependency.patch +++ b/patches/remove-autoconfig-dependency.patch @@ -1,5 +1,5 @@ diff --git a/mobile/android/installer/package-manifest.in b/mobile/android/installer/package-manifest.in -index 9535aae823..7ecd8a1f3f 100644 +index d8519ad46d..9f3f65285b 100644 --- a/mobile/android/installer/package-manifest.in +++ b/mobile/android/installer/package-manifest.in @@ -125,7 +125,7 @@ diff --git a/patches/remove-webcompat-reporter.patch b/patches/remove-webcompat-reporter.patch index acbef04..a8259dd 100644 --- a/patches/remove-webcompat-reporter.patch +++ b/patches/remove-webcompat-reporter.patch @@ -1,111 +1,111 @@ diff --git a/mobile/android/android-components/.buildconfig.yml b/mobile/android/android-components/.buildconfig.yml -index 26e76a18d2..89d595d626 100644 +index 489c138b0d..ecc26e15f8 100644 --- a/mobile/android/android-components/.buildconfig.yml +++ b/mobile/android/android-components/.buildconfig.yml -@@ -1521,28 +1521,28 @@ projects: - - support-webextensions - - tooling-lint - - ui-icons -- feature-webcompat-reporter: +@@ -1543,28 +1543,28 @@ projects: + - components:support-webextensions + - components:tooling-lint + - components:ui-icons +- components:feature-webcompat-reporter: - description: Feature that enables users to report site issues to Mozilla's Web - Compatibility team. - path: components/feature/webcompat-reporter - publish: true - upstream_dependencies: -- - browser-errorpages -- - browser-state -- - concept-awesomebar -- - concept-base -- - concept-engine -- - concept-fetch -- - concept-storage -- - lib-publicsuffixlist -- - lib-state -- - support-base -- - support-ktx -- - support-test -- - support-utils -- - support-webextensions -- - tooling-lint -- - ui-icons -+# feature-webcompat-reporter: +- - components:browser-errorpages +- - components:browser-state +- - components:concept-awesomebar +- - components:concept-base +- - components:concept-engine +- - components:concept-fetch +- - components:concept-storage +- - components:lib-publicsuffixlist +- - components:lib-state +- - components:support-base +- - components:support-ktx +- - components:support-test +- - components:support-utils +- - components:support-webextensions +- - components:tooling-lint +- - components:ui-icons ++# components:feature-webcompat-reporter: +# description: Feature that enables users to report site issues to Mozilla's Web +# Compatibility team. +# path: components/feature/webcompat-reporter +# publish: true +# upstream_dependencies: -+# - browser-errorpages -+# - browser-state -+# - concept-awesomebar -+# - concept-base -+# - concept-engine -+# - concept-fetch -+# - concept-storage -+# - lib-publicsuffixlist -+# - lib-state -+# - support-base -+# - support-ktx -+# - support-test -+# - support-utils -+# - support-webextensions -+# - tooling-lint -+# - ui-icons - feature-webnotifications: ++# - components:browser-errorpages ++# - components:browser-state ++# - components:concept-awesomebar ++# - components:concept-base ++# - components:concept-engine ++# - components:concept-fetch ++# - components:concept-storage ++# - components:lib-publicsuffixlist ++# - components:lib-state ++# - components:support-base ++# - components:support-ktx ++# - components:support-test ++# - components:support-utils ++# - components:support-webextensions ++# - components:tooling-lint ++# - components:ui-icons + components:feature-webnotifications: description: Feature component for Web Notifications. path: components/feature/webnotifications -@@ -1744,7 +1744,7 @@ projects: - - feature-toolbar - - feature-top-sites - - feature-webcompat -- - feature-webcompat-reporter -+# - feature-webcompat-reporter - - feature-webnotifications - - lib-crash - - lib-dataprotect +@@ -1767,7 +1767,7 @@ projects: + - components:feature-toolbar + - components:feature-top-sites + - components:feature-webcompat +- - components:feature-webcompat-reporter ++# - components:feature-webcompat-reporter + - components:feature-webnotifications + - components:lib-crash + - components:lib-dataprotect diff --git a/mobile/android/android-components/samples/browser/build.gradle b/mobile/android/android-components/samples/browser/build.gradle -index bd70dd476b..e95f76ffe4 100644 +index 6ad158793d..3d4a033a0e 100644 --- a/mobile/android/android-components/samples/browser/build.gradle +++ b/mobile/android/android-components/samples/browser/build.gradle @@ -114,7 +114,7 @@ dependencies { - implementation project(':feature-findinpage') - implementation project(':feature-sitepermissions') - implementation project(':feature-webcompat') -- implementation project(':feature-webcompat-reporter') -+// implementation project(':feature-webcompat-reporter') - implementation project(':feature-webnotifications') - implementation project(':feature-addons') + implementation project(':components:feature-findinpage') + implementation project(':components:feature-sitepermissions') + implementation project(':components:feature-webcompat') +- implementation project(':components:feature-webcompat-reporter') ++// implementation project(':components:feature-webcompat-reporter') + implementation project(':components:feature-webnotifications') + implementation project(':components:feature-addons') diff --git a/mobile/android/fenix/.buildconfig.yml b/mobile/android/fenix/.buildconfig.yml -index b5aa2ce3a4..8837f09217 100644 +index 0620fba71e..2f6a78913f 100644 --- a/mobile/android/fenix/.buildconfig.yml +++ b/mobile/android/fenix/.buildconfig.yml @@ -59,7 +59,7 @@ projects: - - feature-top-sites - - feature-webauthn - - feature-webcompat -- - feature-webcompat-reporter -+# - feature-webcompat-reporter - - feature-webnotifications - - lib-crash - - lib-crash-sentry + - components:feature-top-sites + - components:feature-webauthn + - components:feature-webcompat +- - components:feature-webcompat-reporter ++# - components:feature-webcompat-reporter + - components:feature-webnotifications + - components:lib-crash + - components:lib-crash-sentry diff --git a/mobile/android/fenix/app/build.gradle b/mobile/android/fenix/app/build.gradle -index d9a6045423..16ac38e60b 100644 +index 5bcd9c730b..eb5e4b109a 100644 --- a/mobile/android/fenix/app/build.gradle +++ b/mobile/android/fenix/app/build.gradle @@ -618,7 +618,7 @@ dependencies { - implementation project(':feature-webauthn') - implementation project(':feature-webcompat') - implementation project(':feature-webnotifications') -- implementation project(':feature-webcompat-reporter') -+// implementation project(':feature-webcompat-reporter') + implementation project(':components:feature-webauthn') + implementation project(':components:feature-webcompat') + implementation project(':components:feature-webnotifications') +- implementation project(':components:feature-webcompat-reporter') ++// implementation project(':components:feature-webcompat-reporter') - implementation project(':service-pocket') - implementation project(':service-mars') + implementation project(':components:service-pocket') + implementation project(':components:service-mars') 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 1443661bb8..218f4f1518 100644 +index a6bfa3a688..998d97b326 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 -@@ -318,7 +318,7 @@ class MenuDialogFragment : BottomSheetDialogFragment() { +@@ -345,7 +345,7 @@ class MenuDialogFragment : BottomSheetDialogFragment() { ?.requestedTranslationPair?.toLanguage val isExtensionsProcessDisabled = browserStore.state.extensionsProcessDisabled val isWebCompatReporterSupported = @@ -128,10 +128,10 @@ index e7e19273f9..2e6139bd25 100644 // End of predicates // 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 13db9f3c83..094dd09a49 100644 +index a88ff8d3ac..ba902e3a42 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 -@@ -50,7 +50,7 @@ import mozilla.components.feature.search.ext.waitForSelectedOrDefaultSearchEngin +@@ -49,7 +49,7 @@ import mozilla.components.feature.search.ext.waitForSelectedOrDefaultSearchEngin import mozilla.components.feature.syncedtabs.commands.GlobalSyncedTabsCommandsProvider import mozilla.components.feature.top.sites.TopSitesFrecencyConfig import mozilla.components.feature.top.sites.TopSitesProviderConfig @@ -140,7 +140,7 @@ index 13db9f3c83..094dd09a49 100644 import mozilla.components.lib.crash.CrashReporter import mozilla.components.service.fxa.manager.SyncEnginesStorage import mozilla.components.service.sync.logins.LoginsApiException -@@ -699,7 +699,7 @@ open class FenixApplication : LocaleAwareApplication(), Provider { +@@ -701,7 +701,7 @@ open class FenixApplication : LocaleAwareApplication(), Provider { // TODO: Bug 1953359 - remove the code below in the next release. if (Config.channel.isNightlyOrDebug || Config.channel.isBeta) { logger.debug("Attempting to uninstall the WebCompat Reporter extension") diff --git a/patches/sanitize-on-exit.patch b/patches/sanitize-on-exit.patch index 17acecb..fd44f1a 100644 --- a/patches/sanitize-on-exit.patch +++ b/patches/sanitize-on-exit.patch @@ -1,8 +1,8 @@ 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 9197b274db..44daa442d2 100644 +index 8913d9f230..a2a9e14237 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 -@@ -1021,7 +1021,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1018,7 +1018,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { var shouldDeleteBrowsingDataOnQuit by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_delete_browsing_data_on_quit), @@ -11,7 +11,7 @@ index 9197b274db..44daa442d2 100644 ) var deleteOpenTabs by booleanPreference( -@@ -1101,8 +1101,17 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -1104,8 +1104,17 @@ class Settings(private val appContext: Context) : PreferencesHolder { return touchExplorationIsEnabled || switchServiceIsEnabled } diff --git a/patches/strict_etp.patch b/patches/strict_etp.patch index 53c2c87..4d1e0e6 100644 --- a/patches/strict_etp.patch +++ b/patches/strict_etp.patch @@ -1,8 +1,8 @@ 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 9197b274db..9ede7fe3f4 100644 +index 8913d9f230..5a31dd4873 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 -@@ -735,10 +735,10 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -741,10 +741,10 @@ class Settings(private val appContext: Context) : PreferencesHolder { default = false, ) @@ -17,7 +17,7 @@ index 9197b274db..9ede7fe3f4 100644 var shouldEnableGlobalPrivacyControl by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_privacy_enable_global_privacy_control), -@@ -845,20 +845,20 @@ class Settings(private val appContext: Context) : PreferencesHolder { +@@ -851,20 +851,20 @@ class Settings(private val appContext: Context) : PreferencesHolder { default = false, ) diff --git a/patches/stub-beacon.patch b/patches/stub-beacon.patch index e5e213c..e72ce84 100644 --- a/patches/stub-beacon.patch +++ b/patches/stub-beacon.patch @@ -1,8 +1,8 @@ diff --git a/dom/base/Navigator.cpp b/dom/base/Navigator.cpp -index fac2759535..c186eb4c44 100644 +index 3f60404936..8b4909a691 100644 --- a/dom/base/Navigator.cpp +++ b/dom/base/Navigator.cpp -@@ -1263,7 +1263,7 @@ bool Navigator::SendBeaconInternal(const nsAString& aUrl, +@@ -1257,7 +1257,7 @@ bool Navigator::SendBeaconInternal(const nsAString& aUrl, } else { securityFlags |= nsILoadInfo::SEC_ALLOW_CROSS_ORIGIN_INHERITS_SEC_CONTEXT; } diff --git a/patches/tab-strip.patch b/patches/tab-strip.patch index 8fa019b..c6566d5 100644 --- a/patches/tab-strip.patch +++ b/patches/tab-strip.patch @@ -1,8 +1,8 @@ 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 e53ac45f01..02dd96ad92 100644 +index ffa40b19a0..4aa70b57b2 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 -@@ -6,22 +6,22 @@ package org.mozilla.fenix.browser.tabstrip +@@ -6,24 +6,24 @@ package org.mozilla.fenix.browser.tabstrip import android.content.Context import mozilla.components.support.ktx.android.content.doesDeviceHaveHinge @@ -14,13 +14,16 @@ index e53ac45f01..02dd96ad92 100644 * Returns true if the tab strip is enabled. */ fun Context.isTabStripEnabled(): Boolean = -- isTabStripEligible() && tabStripExperimentEnabled() +- tabStripExperimentEnabled() && (isTabStripEligible() || tabStripExperimentForceEnabled()) + settings().isTabStripEnabled --private fun tabStripExperimentEnabled(): Boolean = -- FxNimbus.features.tabStrip.value().enabled -+//private fun tabStripExperimentEnabled(): Boolean = -+// FxNimbus.features.tabStrip.value().enabled +-private fun tabStripExperimentEnabled(): Boolean = FxNimbus.features.tabStrip.value().enabled ++//private fun tabStripExperimentEnabled(): Boolean = FxNimbus.features.tabStrip.value().enabled + +-private fun tabStripExperimentForceEnabled(): Boolean = +- FxNimbus.features.tabStrip.value().allowOnAllDevices ++//private fun tabStripExperimentForceEnabled(): Boolean = ++// FxNimbus.features.tabStrip.value().allowOnAllDevices /** * Returns true if the the device has the prerequisites to enable the tab strip. diff --git a/patches/unifiedpush.patch b/patches/unifiedpush.patch index 09fab37..216315b 100644 --- a/patches/unifiedpush.patch +++ b/patches/unifiedpush.patch @@ -1,8 +1,8 @@ diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml -index f012e43dc0..fc3b947485 100644 +index 16b631eb0c..7ba978b9cb 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml -@@ -107,6 +107,8 @@ sentry = "8.9.0" +@@ -108,6 +108,8 @@ sentry = "8.14.0" commons-exec = "1.3" tomlj = "1.1.0" @@ -11,7 +11,7 @@ index f012e43dc0..fc3b947485 100644 [libraries] kotlin-coroutines = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version.ref = "coroutines" } -@@ -230,6 +232,7 @@ thirdparty-sentry = { group = "io.sentry", name = "sentry-android", version.ref +@@ -240,6 +242,7 @@ thirdparty-sentry = { group = "io.sentry", name = "sentry-android", version.ref thirdparty-zxing = { group = "com.google.zxing", name = "core", version.ref = "zxing" } thirdparty-disklrucache = { group = "com.jakewharton", name = "disklrucache", version.ref = "disklrucache" } thirdparty-androidsvg = { group = "com.caverock", name = "androidsvg-aar", version.ref = "androidsvg" } @@ -20,31 +20,31 @@ index f012e43dc0..fc3b947485 100644 desugar-jdk-libs = { group = "com.android.tools", name = "desugar_jdk_libs", version.ref = "desugar-jdk-libs" } firebase-messaging = { group = "com.google.firebase", name = "firebase-messaging", version.ref = "firebase-messaging" } diff --git a/mobile/android/android-components/.buildconfig.yml b/mobile/android/android-components/.buildconfig.yml -index 26e76a18d2..1dcd401764 100644 +index 489c138b0d..a25f7ca7bc 100644 --- a/mobile/android/android-components/.buildconfig.yml +++ b/mobile/android/android-components/.buildconfig.yml -@@ -594,6 +594,7 @@ projects: - - support-utils - - tooling-lint - - ui-icons -+ - feature-unifiedpush - feature-addons: +@@ -602,6 +602,7 @@ projects: + - components:support-utils + - components:tooling-lint + - components:ui-icons ++ - components:feature-unifiedpush + components:feature-addons: description: A feature that provides for managing add-ons. path: components/feature/addons -@@ -2409,3 +2410,13 @@ projects: - - tooling-lint - - ui-colors - - ui-icons -+ feature-unifiedpush: +@@ -2413,3 +2414,13 @@ projects: + - components:tooling-lint + - components:ui-colors + - components:ui-icons ++ components:feature-unifiedpush: + description: Feature that implements push notifications with UnifiedPush. + path: components/feature/unifiedpush + publish: true + upstream_dependencies: -+ - concept-base -+ - concept-push -+ - support-base -+ - support-test -+ - tooling-lint ++ - components:concept-base ++ - components:concept-push ++ - components:support-base ++ - components:support-test ++ - components:tooling-lint diff --git a/mobile/android/android-components/components/concept/push/src/main/java/mozilla/components/concept/push/PushObserver.kt b/mobile/android/android-components/components/concept/push/src/main/java/mozilla/components/concept/push/PushObserver.kt new file mode 100644 index 000000000000..85e18ea0d9f0 @@ -230,14 +230,14 @@ index 000000000000..802364f0a9ab + abstract val disableRateLimit: Boolean +} diff --git a/mobile/android/android-components/components/feature/accounts-push/build.gradle b/mobile/android/android-components/components/feature/accounts-push/build.gradle -index 613e5aa1fdd4..4322461f50a2 100644 +index 12e4343bec..b939f32151 100644 --- a/mobile/android/android-components/components/feature/accounts-push/build.gradle +++ b/mobile/android/android-components/components/feature/accounts-push/build.gradle @@ -33,6 +33,7 @@ dependencies { - implementation project(':support-base') - implementation project(':concept-push') - implementation project(':feature-push') -+ implementation project(':feature-unifiedpush') + implementation project(':components:support-base') + implementation project(':components:concept-push') + implementation project(':components:feature-push') ++ implementation project(':components:feature-unifiedpush') implementation libs.androidx.work.runtime implementation libs.androidx.lifecycle.process @@ -369,7 +369,7 @@ index cd58a69246..dc35a50c10 100644 /** diff --git a/mobile/android/android-components/components/feature/accounts-push/src/main/java/mozilla/components/feature/accounts/push/cache/ScopeProperty.kt b/mobile/android/android-components/components/feature/accounts-push/src/main/java/mozilla/components/feature/accounts/push/cache/ScopeProperty.kt -index 30e403088831..532382a2fbbb 100644 +index 30e4030888..532382a2fb 100644 --- a/mobile/android/android-components/components/feature/accounts-push/src/main/java/mozilla/components/feature/accounts/push/cache/ScopeProperty.kt +++ b/mobile/android/android-components/components/feature/accounts-push/src/main/java/mozilla/components/feature/accounts/push/cache/ScopeProperty.kt @@ -4,7 +4,7 @@ @@ -382,7 +382,7 @@ index 30e403088831..532382a2fbbb 100644 /** * A [ScopeProperty] implementation generates and holds the [PushScope]. diff --git a/mobile/android/android-components/components/feature/push/src/main/java/mozilla/components/feature/push/AutoPushFeature.kt b/mobile/android/android-components/components/feature/push/src/main/java/mozilla/components/feature/push/AutoPushFeature.kt -index e4bf8170af..f22cd6f168 100644 +index e4bf8170af..9d743d574a 100644 --- a/mobile/android/android-components/components/feature/push/src/main/java/mozilla/components/feature/push/AutoPushFeature.kt +++ b/mobile/android/android-components/components/feature/push/src/main/java/mozilla/components/feature/push/AutoPushFeature.kt @@ -27,15 +27,17 @@ import mozilla.components.concept.push.PushError @@ -402,8 +402,8 @@ index e4bf8170af..f22cd6f168 100644 -typealias PushScope = String -typealias AppServerKey = String -+// typealias PushScope = String -+// typealias AppServerKey = String ++//typealias PushScope = String ++//typealias AppServerKey = String /** * A implementation of a [PushProcessor] that should live as a singleton by being installed @@ -648,7 +648,7 @@ index 000000000000..c492a3879873 + diff --git a/mobile/android/android-components/components/feature/unifiedpush/build.gradle b/mobile/android/android-components/components/feature/unifiedpush/build.gradle new file mode 100644 -index 000000000000..7358ed93a2a0 +index 0000000000..d74042e4fb --- /dev/null +++ b/mobile/android/android-components/components/feature/unifiedpush/build.gradle @@ -0,0 +1,52 @@ @@ -678,13 +678,13 @@ index 000000000000..7358ed93a2a0 + + +dependencies { -+ implementation project(':concept-push') ++ implementation project(':components:concept-push') + + implementation ComponentsDependencies.mozilla_appservices_push + + // Remove when the MessageBus is implemented somewhere else. -+ implementation project(':support-base') -+ implementation project(':ui-icons') ++ implementation project(':components:support-base') ++ implementation project(':components:ui-icons') + + implementation libs.kotlin.coroutines + implementation libs.androidx.work.runtime @@ -693,7 +693,7 @@ index 000000000000..7358ed93a2a0 + exclude group: "com.google.protobuf", module: "protobuf-java" + } + -+ testImplementation project(':support-test') ++ testImplementation project(':components:support-test') + + testImplementation libs.androidx.test.core + testImplementation libs.androidx.test.junit @@ -2195,35 +2195,35 @@ index 000000000000..3f67ea5ac1bf @@ -0,0 +1 @@ +sdk=35 diff --git a/mobile/android/fenix/.buildconfig.yml b/mobile/android/fenix/.buildconfig.yml -index b5aa2ce3a4..d863ee1bbf 100644 +index 0620fba71e..f6eae18675 100644 --- a/mobile/android/fenix/.buildconfig.yml +++ b/mobile/android/fenix/.buildconfig.yml -@@ -95,6 +95,7 @@ projects: - - ui-icons - - ui-tabcounter - - ui-widgets -+ - feature-unifiedpush +@@ -93,6 +93,7 @@ projects: + - components:ui-icons + - components:ui-tabcounter + - components:ui-widgets ++ - components:feature-unifiedpush variants: - apks: - abi: arm64-v8a diff --git a/mobile/android/fenix/app/build.gradle b/mobile/android/fenix/app/build.gradle -index d9a6045423..c8351a14bd 100644 +index 5bcd9c730b..27bc3c0912 100644 --- a/mobile/android/fenix/app/build.gradle +++ b/mobile/android/fenix/app/build.gradle -@@ -654,6 +654,8 @@ dependencies { - implementation project(':lib-dataprotect') - testImplementation project(':support-test-fakes') +@@ -653,6 +653,8 @@ dependencies { + implementation project(':components:lib-dataprotect') + testImplementation project(':components:support-test-fakes') -+ implementation project(':feature-unifiedpush') ++ implementation project(':components:feature-unifiedpush') + debugImplementation libs.leakcanary debugImplementation libs.androidx.compose.ui.tooling 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 13db9f3c83..526e8f1bf4 100644 +index a88ff8d3ac..f391c627d0 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 -@@ -39,7 +39,7 @@ import mozilla.components.browser.storage.sync.GlobalPlacesDependencyProvider +@@ -38,7 +38,7 @@ import mozilla.components.browser.storage.sync.GlobalPlacesDependencyProvider import mozilla.components.concept.base.crash.Breadcrumb import mozilla.components.concept.engine.webextension.WebExtension import mozilla.components.concept.engine.webextension.isUnsupported @@ -2232,7 +2232,7 @@ index 13db9f3c83..526e8f1bf4 100644 import mozilla.components.concept.storage.FrecencyThresholdOption import mozilla.components.feature.addons.migration.DefaultSupportedAddonsChecker import mozilla.components.feature.addons.update.GlobalAddonDependencyProvider -@@ -491,7 +491,7 @@ open class FenixApplication : LocaleAwareApplication(), Provider { +@@ -501,7 +501,7 @@ open class FenixApplication : LocaleAwareApplication(), Provider { logger.info("AutoPushFeature is configured, initializing it...") // Install the AutoPush singleton to receive messages. @@ -2242,10 +2242,10 @@ index 13db9f3c83..526e8f1bf4 100644 WebPushEngineIntegration(components.core.engine, it).start() diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/BackgroundServices.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/BackgroundServices.kt -index 1e64545a1220..689a28c1888e 100644 +index 028742f2b3..952f655b6f 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/BackgroundServices.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/BackgroundServices.kt -@@ -219,8 +219,8 @@ class BackgroundServices( +@@ -225,8 +225,8 @@ class BackgroundServices( accountManager.register(AccountManagerReadyObserver(accountManagerAvailableQueue)) // Enable push if it's configured. diff --git a/scripts/build.sh b/scripts/build.sh index 88151f3..f40f629 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -133,7 +133,7 @@ popd pushd "$android_components" # Publish concept-fetch (required by A-S) with auto-publication disabled, # otherwise automatically triggered publication of A-S will fail -gradle :concept-fetch:publishToMavenLocal +gradle :components:concept-fetch:publishToMavenLocal # Enable the auto-publication workflow now that concept-fetch is published echo "autoPublish.application-services.dir=$application_services" >>local.properties gradle publishToMavenLocal diff --git a/scripts/patches.yaml b/scripts/patches.yaml index 214140d..691ca8c 100644 --- a/scripts/patches.yaml +++ b/scripts/patches.yaml @@ -419,13 +419,6 @@ patches: effect: "Reduces attack surface and legacy code." category: "Security" - - file: "domain-highlighting-and-alignment.patch" - name: "Add domain highlighting and alignment" - description: "Adds domain highlighting and alignment in the toolbar." - reason: "Helps users more easily identify the actual domain in the URL bar, which improves phishing detection." - effect: "The registrable domain (eTLD+1) is highlighted, and the URL bar scrolls to the end of the domain name." - category: "Security" - - file: "disable-sslkeylogging.patch" name: "Disable SSLKEYLOGGING" description: "Disables the SSLKEYLOGGING feature in NSS (Mozilla's Network Security Services: https://firefox-source-docs.mozilla.org/security/nss/index.html)." diff --git a/scripts/prebuild.sh b/scripts/prebuild.sh index 3717b4a..1537cd3 100755 --- a/scripts/prebuild.sh +++ b/scripts/prebuild.sh @@ -197,7 +197,6 @@ sed -i -e '/SplashScreen/,+5d' app/src/main/res/values-v27/styles.xml mkdir -vp app/src/release/res/mipmap-anydpi-v26 sed -i \ -e 's/googleg_standard_color_18/ic_download/' \ - app/src/main/java/org/mozilla/fenix/components/menu/compose/ExtensionsSubmenu.kt \ app/src/main/java/org/mozilla/fenix/components/menu/compose/MenuItem.kt \ app/src/main/java/org/mozilla/fenix/compose/list/ListItem.kt diff --git a/scripts/versions.sh b/scripts/versions.sh index 2c2f285..3e7b80f 100644 --- a/scripts/versions.sh +++ b/scripts/versions.sh @@ -2,15 +2,15 @@ # shellcheck disable=SC2034 # Sources -FIREFOX_VERSION="140.0.4" -IRONFOX_VERSION="${FIREFOX_VERSION}.1" -FIREFOX_RELEASE_TAG="FIREFOX-ANDROID_${FIREFOX_VERSION//./_}_RELEASE" +FIREFOX_VERSION="141.0" +IRONFOX_VERSION="${FIREFOX_VERSION}" +FIREFOX_RELEASE_TAG="FIREFOX_${FIREFOX_VERSION//./_}_BUILD2" FIREFOX_RELEASE_PATH="releases/${FIREFOX_VERSION}" WASI_TAG="wasi-sdk-20" -GLEAN_TAG="v64.3.1" +GLEAN_TAG="v64.4.0" GMSCORE_TAG="v0.3.7.250932" PHOENIX_TAG="2025.07.11.1" -APPSERVICES_BRANCH="release-v140" +APPSERVICES_BRANCH="release-v141" # Tools BUNDLETOOL_TAG="1.18.0"