diff --git a/patches/a-c-disable-unsolicited-favicon-fetching.patch b/patches/a-c-disable-unsolicited-favicon-fetching.patch deleted file mode 100644 index a7ae26dc..00000000 --- a/patches/a-c-disable-unsolicited-favicon-fetching.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/mobile/android/android-components/components/browser/icons/src/main/java/mozilla/components/browser/icons/preparer/TippyTopIconPreparer.kt b/mobile/android/android-components/components/browser/icons/src/main/java/mozilla/components/browser/icons/preparer/TippyTopIconPreparer.kt -index 3763da85ad..ebcb11af85 100644 ---- a/mobile/android/android-components/components/browser/icons/src/main/java/mozilla/components/browser/icons/preparer/TippyTopIconPreparer.kt -+++ b/mobile/android/android-components/components/browser/icons/src/main/java/mozilla/components/browser/icons/preparer/TippyTopIconPreparer.kt -@@ -60,7 +60,7 @@ class TippyTopIconPreparer( - type = IconRequest.Resource.Type.TIPPY_TOP, - ) - -- request.copy(resources = request.resources + resource) -+ request - } else { - request - } diff --git a/patches/fenix-disable-mars.patch b/patches/fenix-disable-mars.patch deleted file mode 100644 index 886c18b9..00000000 --- a/patches/fenix-disable-mars.patch +++ /dev/null @@ -1,25 +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 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() { - } - - requirePreference(R.string.pref_key_mars_api_enabled).apply { -+ isVisible = false - isChecked = context.settings().marsAPIEnabled - 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 774d43efab..16a3d11246 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 -@@ -1852,7 +1852,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 }, -- featureFlag = true, -+ featureFlag = false, - ) - - /** diff --git a/patches/fenix-disable-network-connectivity-monitoring.patch b/patches/fenix-disable-network-connectivity-monitoring.patch index 967ad56c..abc752cb 100644 --- a/patches/fenix-disable-network-connectivity-monitoring.patch +++ b/patches/fenix-disable-network-connectivity-monitoring.patch @@ -11,19 +11,6 @@ index 7b60ad21a4..c2fc8c9b1d 100644 getNetworkCapabilities(network ?: activeNetwork)?.let { it.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) && it.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED) -diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/PhoneFeature.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/PhoneFeature.kt -index a24ff6e34e..9e7bda60fa 100644 ---- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/PhoneFeature.kt -+++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/PhoneFeature.kt -@@ -53,7 +53,7 @@ enum class PhoneFeature(val androidPermissionsList: Array) : Parcelable - AUTOPLAY_AUDIBLE -> - when (settings?.getAutoplayUserSetting() ?: AUTOPLAY_BLOCK_ALL) { - AUTOPLAY_ALLOW_ALL -> R.string.preference_option_autoplay_allowed2 -- AUTOPLAY_ALLOW_ON_WIFI -> R.string.preference_option_autoplay_allowed_wifi_only2 -+// AUTOPLAY_ALLOW_ON_WIFI -> R.string.preference_option_autoplay_allowed_wifi_only2 - AUTOPLAY_BLOCK_AUDIBLE -> R.string.preference_option_autoplay_block_audio2 - AUTOPLAY_BLOCK_ALL -> R.string.preference_option_autoplay_blocked3 - else -> R.string.preference_option_autoplay_blocked3 diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/sitepermissions/SitePermissionsManagePhoneFeatureFragment.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/sitepermissions/SitePermissionsManagePhoneFeatureFragment.kt index 5f5ceb60c0..b11f2165b7 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/sitepermissions/SitePermissionsManagePhoneFeatureFragment.kt @@ -36,16 +23,3 @@ index 5f5ceb60c0..b11f2165b7 100644 } else { 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 600faec5bd..24b582a0ed 100644 ---- a/mobile/android/fenix/app/src/main/AndroidManifest.xml -+++ b/mobile/android/fenix/app/src/main/AndroidManifest.xml -@@ -7,7 +7,7 @@ - xmlns:tools="http://schemas.android.com/tools"> - - -- -+ - - - -- -+ - - diff --git a/patches/fenix-remove-glean-service.patch b/patches/fenix-remove-glean-service.patch deleted file mode 100644 index e4f86ff0..00000000 --- a/patches/fenix-remove-glean-service.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/mobile/android/fenix/.buildconfig.yml b/mobile/android/fenix/.buildconfig.yml -index 0620fba71e..36fad137e1 100644 ---- a/mobile/android/fenix/.buildconfig.yml -+++ b/mobile/android/fenix/.buildconfig.yml -@@ -69,7 +69,7 @@ projects: - - components:lib-state - - components:service-digitalassetlinks - - components:service-firefox-accounts -- - components:service-glean -+# - components:service-glean - - components:service-location - - components:service-mars - - components:service-nimbus -diff --git a/mobile/android/fenix/app/build.gradle b/mobile/android/fenix/app/build.gradle -index 029784efad..8a978e887d 100644 ---- a/mobile/android/fenix/app/build.gradle -+++ b/mobile/android/fenix/app/build.gradle -@@ -628,7 +628,7 @@ dependencies { - implementation project(':components:service-sync-autofill') - implementation project(':components:service-sync-logins') - implementation project(':components:service-firefox-accounts') -- implementation project(':components:service-glean') -+// implementation project(':components:service-glean') - implementation libs.mozilla.glean - implementation project(':components:service-location') - implementation project(':components:service-nimbus') diff --git a/patches/fenix-remove-webcompat-reporter.patch b/patches/fenix-remove-webcompat-reporter.patch deleted file mode 100644 index e2b17816..00000000 --- a/patches/fenix-remove-webcompat-reporter.patch +++ /dev/null @@ -1,74 +0,0 @@ -diff --git a/mobile/android/fenix/.buildconfig.yml b/mobile/android/fenix/.buildconfig.yml -index 0620fba71e..2f6a78913f 100644 ---- a/mobile/android/fenix/.buildconfig.yml -+++ b/mobile/android/fenix/.buildconfig.yml -@@ -59,7 +59,7 @@ projects: - - 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 029784efad..5d74a0a507 100644 ---- a/mobile/android/fenix/app/build.gradle -+++ b/mobile/android/fenix/app/build.gradle -@@ -620,7 +620,7 @@ dependencies { - 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(':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 8f877cc083..5e4f5f80e0 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 -@@ -391,7 +391,7 @@ class MenuDialogFragment : BottomSheetDialogFragment() { - ?.requestedTranslationPair?.toLanguage - val isExtensionsProcessDisabled = browserStore.state.extensionsProcessDisabled - val isWebCompatReporterSupported = -- FxNimbus.features.menuRedesign.value().reportSiteIssue -+ false - - val isDesktopMode by store.observeAsState(initialValue = false) { state -> - state.isDesktopMode -diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt -index e7e19273f9..2e6139bd25 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 -@@ -216,7 +216,7 @@ open class DefaultToolbarMenu( - val url = store.state.selectedTab?.content?.url - val isAboutUrl = url?.isAboutUrl() ?: false - val isContentUrl = url?.isContentUrl() ?: false -- return !isAboutUrl && !isContentUrl -+ return false - } - // 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 b07cadf1e6..d17beed0a5 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 -@@ -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 --import mozilla.components.feature.webcompat.reporter.WebCompatReporterFeature -+//import mozilla.components.feature.webcompat.reporter.WebCompatReporterFeature - import mozilla.components.lib.crash.CrashReporter - import mozilla.components.service.fxa.manager.SyncEnginesStorage - import mozilla.components.service.sync.logins.LoginsApiException -@@ -689,7 +689,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") -- WebCompatReporterFeature.uninstall(components.core.engine) -+// WebCompatReporterFeature.uninstall(components.core.engine) - } - }, - onUpdatePermissionRequest = components.addonUpdater::onUpdatePermissionRequest, diff --git a/patches/fenix-hide-remote-debugging-and-reset-per-session.patch b/patches/fenix-reset-remote-debugging-per-session.patch similarity index 50% rename from patches/fenix-hide-remote-debugging-and-reset-per-session.patch rename to patches/fenix-reset-remote-debugging-per-session.patch index 05f8eb39..e1751980 100644 --- a/patches/fenix-hide-remote-debugging-and-reset-per-session.patch +++ b/patches/fenix-reset-remote-debugging-per-session.patch @@ -1,16 +1,3 @@ -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 03d80ed014..84688258c7 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 -@@ -542,7 +542,7 @@ class SettingsFragment : PreferenceFragmentCompat() { - } - } - -- preferenceRemoteDebugging?.isVisible = Build.VERSION.SDK_INT >= Build.VERSION_CODES.M -+ preferenceRemoteDebugging?.isVisible = false - preferenceRemoteDebugging?.setOnPreferenceChangeListener { preference, newValue -> - 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 3fa564af49..7116c555f7 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt diff --git a/patches/gecko-custom-ublock-origin-assets.patch b/patches/gecko-custom-ublock-origin-assets.patch index 4502b150..f09ceabd 100644 --- a/patches/gecko-custom-ublock-origin-assets.patch +++ b/patches/gecko-custom-ublock-origin-assets.patch @@ -1,16 +1,3 @@ -diff --git a/toolkit/components/extensions/NativeManifests.sys.mjs b/toolkit/components/extensions/NativeManifests.sys.mjs -index 59313e821f..f20a4d209d 100644 ---- a/toolkit/components/extensions/NativeManifests.sys.mjs -+++ b/toolkit/components/extensions/NativeManifests.sys.mjs -@@ -36,7 +36,7 @@ export var NativeManifests = { - let platform = AppConstants.platform; - if (platform == "win") { - this._lookup = this._winLookup; -- } else if (platform == "macosx" || platform == "linux") { -+ } else if (platform == "macosx" || platform == "linux" || platform == "android") { - let dirs = [ - Services.dirsvc.get("XREUserNativeManifests", Ci.nsIFile).path, - Services.dirsvc.get("XRESysNativeManifests", Ci.nsIFile).path, diff --git a/toolkit/components/extensions/parent/ext-storage.js b/toolkit/components/extensions/parent/ext-storage.js index 61eb0fb48e..ecdd2bae9a 100644 --- a/toolkit/components/extensions/parent/ext-storage.js diff --git a/patches/gecko-disable-sslkeylogging.patch b/patches/gecko-disable-sslkeylogging.patch deleted file mode 100644 index 1bc604ef..00000000 --- a/patches/gecko-disable-sslkeylogging.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/security/moz.build b/security/moz.build -index d2bd01526d..170d83df2a 100644 ---- a/security/moz.build -+++ b/security/moz.build -@@ -93,7 +93,7 @@ gyp_vars["nss_dist_obj_dir"] = "$PRODUCT_DIR/dist/bin" - gyp_vars["disable_tests"] = 1 - gyp_vars["disable_dbm"] = 1 - gyp_vars["disable_libpkix"] = 1 --gyp_vars["enable_sslkeylogfile"] = 1 -+gyp_vars["enable_sslkeylogfile"] = 0 - # Whether we're using system NSS or Rust nssckbi, we don't need - # to build C nssckbi - gyp_vars["disable_ckbi"] = 1 -diff --git a/security/nss/lib/ssl/Makefile b/security/nss/lib/ssl/Makefile -index 61abff3721..c8bac4c89d 100644 ---- a/security/nss/lib/ssl/Makefile -+++ b/security/nss/lib/ssl/Makefile -@@ -37,7 +37,7 @@ endif - - # Enable key logging by default in debug builds, but not opt builds. - # Logging still needs to be enabled at runtime through env vars. --NSS_ALLOW_SSLKEYLOGFILE ?= $(if $(BUILD_OPT),0,1) -+NSS_ALLOW_SSLKEYLOGFILE ?= 0 - ifeq (1,$(NSS_ALLOW_SSLKEYLOGFILE)) - DEFINES += -DNSS_ALLOW_SSLKEYLOGFILE=1 - endif diff --git a/patches/gecko-disable-telemetry.patch b/patches/gecko-disable-telemetry.patch deleted file mode 100644 index 04a4999d..00000000 --- a/patches/gecko-disable-telemetry.patch +++ /dev/null @@ -1,71 +0,0 @@ -diff --git a/docshell/base/nsAboutRedirector.cpp b/docshell/base/nsAboutRedirector.cpp -index df5658c723..659a2a589d 100644 ---- a/docshell/base/nsAboutRedirector.cpp -+++ b/docshell/base/nsAboutRedirector.cpp -@@ -201,8 +201,8 @@ static const RedirEntry kRedirMap[] = { - # endif - nsIAboutModule::ALLOW_SCRIPT}, - #endif -- {"telemetry", "chrome://global/content/aboutTelemetry.xhtml", -- nsIAboutModule::ALLOW_SCRIPT | nsIAboutModule::IS_SECURE_CHROME_UI}, -+// {"telemetry", "chrome://global/content/aboutTelemetry.xhtml", -+// nsIAboutModule::ALLOW_SCRIPT | nsIAboutModule::IS_SECURE_CHROME_UI}, - {"translations", "chrome://global/content/translations/translations.html", - nsIAboutModule::ALLOW_SCRIPT | - nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT | -diff --git a/docshell/build/components.conf b/docshell/build/components.conf -index 34e06ce332..906db3732c 100644 ---- a/docshell/build/components.conf -+++ b/docshell/build/components.conf -@@ -29,7 +29,7 @@ about_pages = [ - 'serviceworkers', - 'srcdoc', - 'support', -- 'telemetry', -+# 'telemetry', - 'translations', - 'url-classifier', - 'webrtc', -diff --git a/toolkit/components/telemetry/core/Telemetry.cpp b/toolkit/components/telemetry/core/Telemetry.cpp -index 511e3eb3a6..f1b82b8463 100644 ---- a/toolkit/components/telemetry/core/Telemetry.cpp -+++ b/toolkit/components/telemetry/core/Telemetry.cpp -@@ -914,7 +914,7 @@ already_AddRefed TelemetryImpl::CreateTelemetryInstance() { - #ifndef FUZZING - if (XRE_IsParentProcess() || XRE_IsContentProcess() || XRE_IsGPUProcess() || - XRE_IsRDDProcess() || XRE_IsSocketProcess() || XRE_IsUtilityProcess()) { -- useTelemetry = true; -+ useTelemetry = false; - } - #endif - #ifdef MOZ_BACKGROUNDTASKS -diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn -index 46d1cb5ed7..a569524eef 100644 ---- a/toolkit/content/jar.mn -+++ b/toolkit/content/jar.mn -@@ -37,9 +37,9 @@ toolkit.jar: - content/global/aboutGlean.html - content/global/aboutGlean.css - #endif -- content/global/aboutTelemetry.js -- content/global/aboutTelemetry.xhtml -- content/global/aboutTelemetry.css -+# content/global/aboutTelemetry.js -+# content/global/aboutTelemetry.xhtml -+# content/global/aboutTelemetry.css - content/global/aboutUrlClassifier.js - content/global/aboutUrlClassifier.xhtml - content/global/aboutUrlClassifier.css -diff --git a/toolkit/library/rust/gkrust-features.mozbuild b/toolkit/library/rust/gkrust-features.mozbuild -index a19af5bd9d..ba8f57bb70 100644 ---- a/toolkit/library/rust/gkrust-features.mozbuild -+++ b/toolkit/library/rust/gkrust-features.mozbuild -@@ -60,7 +60,7 @@ if CONFIG["MOZ_WEBRTC"]: - # We need to tell Glean it is being built with Gecko. - gkrust_features += ["glean_with_gecko"] - --if not CONFIG["MOZILLA_OFFICIAL"]: -+if not CONFIG["0"]: - gkrust_features += ["glean_disable_upload"] - - if CONFIG["MOZ_ENABLE_DBUS"]: diff --git a/patches/gecko-exclude-gmp-sources.patch b/patches/gecko-exclude-gmp-sources.patch deleted file mode 100644 index c4d7afcb..00000000 --- a/patches/gecko-exclude-gmp-sources.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn -index 46d1cb5ed7..9ba0855298 100644 ---- a/toolkit/content/jar.mn -+++ b/toolkit/content/jar.mn -@@ -174,9 +174,9 @@ toolkit.jar: - #ifdef XP_MACOSX - content/global/macWindowMenu.js - #endif -- content/global/gmp-sources/openh264.json (gmp-sources/openh264.json) -- content/global/gmp-sources/widevinecdm.json (gmp-sources/widevinecdm.json) -- content/global/gmp-sources/widevinecdm_l1.json (gmp-sources/widevinecdm_l1.json) -+# content/global/gmp-sources/openh264.json (gmp-sources/openh264.json) -+# content/global/gmp-sources/widevinecdm.json (gmp-sources/widevinecdm.json) -+# content/global/gmp-sources/widevinecdm_l1.json (gmp-sources/widevinecdm_l1.json) - - # Third party files - content/global/third_party/d3/d3.js (/third_party/js/d3/d3.js) diff --git a/patches/gecko-remove-abouttelemetry.patch b/patches/gecko-remove-abouttelemetry.patch new file mode 100644 index 00000000..5a37f3ca --- /dev/null +++ b/patches/gecko-remove-abouttelemetry.patch @@ -0,0 +1,15 @@ +diff --git a/docshell/base/nsAboutRedirector.cpp b/docshell/base/nsAboutRedirector.cpp +index df5658c723..659a2a589d 100644 +--- a/docshell/base/nsAboutRedirector.cpp ++++ b/docshell/base/nsAboutRedirector.cpp +@@ -201,8 +201,8 @@ static const RedirEntry kRedirMap[] = { + # endif + nsIAboutModule::ALLOW_SCRIPT}, + #endif +- {"telemetry", "chrome://global/content/aboutTelemetry.xhtml", +- nsIAboutModule::ALLOW_SCRIPT | nsIAboutModule::IS_SECURE_CHROME_UI}, ++// {"telemetry", "chrome://global/content/aboutTelemetry.xhtml", ++// nsIAboutModule::ALLOW_SCRIPT | nsIAboutModule::IS_SECURE_CHROME_UI}, + {"translations", "chrome://global/content/translations/translations.html", + nsIAboutModule::ALLOW_SCRIPT | + nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT | diff --git a/patches/gecko-remove-example-dependencies.patch b/patches/gecko-remove-example-dependencies.patch index 189d700b..858f521f 100644 --- a/patches/gecko-remove-example-dependencies.patch +++ b/patches/gecko-remove-example-dependencies.patch @@ -32,16 +32,3 @@ index 866f9455d2..77def5f19b 100644 ] return tasks -diff --git a/mobile/android/shared-settings.gradle b/mobile/android/shared-settings.gradle -index a6efbedbd2..dfbc3da6fc 100644 ---- a/mobile/android/shared-settings.gradle -+++ b/mobile/android/shared-settings.gradle -@@ -117,7 +117,7 @@ def buildconfig = yaml.load(buildConfigFile.newInputStream()) - buildconfig.projects.each { project -> - // If we're building A-C, set up all projects, otherwise exclude samples e.g., if we're building Fenix or Focus. - // The samples are not relevant for the Fenix and Focus builds. -- if (rootDir.toString().contains("android-components") || !project.key.startsWith("samples")) { -+ if (!project.key.startsWith("samples")) { - setupProject(project.key, project.value.path, project.value.description) - } - } diff --git a/patches/gecko-rs-dumps.patch b/patches/gecko-rs-dumps.patch deleted file mode 100644 index 23a507ba..00000000 --- a/patches/gecko-rs-dumps.patch +++ /dev/null @@ -1,45 +0,0 @@ -diff --git a/services/settings/dumps/blocklists/moz.build b/services/settings/dumps/blocklists/moz.build -index 485e888f6a..5d13b47c25 100644 ---- a/services/settings/dumps/blocklists/moz.build -+++ b/services/settings/dumps/blocklists/moz.build -@@ -16,7 +16,7 @@ FINAL_TARGET_FILES.defaults.settings.blocklists += [ - # after install. - # See https://bugzilla.mozilla.org/show_bug.cgi?id=1639050#c5 - --if not CONFIG["MOZ_BUILD_APP"].startswith("mobile/"): -+if not CONFIG["MOZ_BUILD_APP"].startswith("0"): - FINAL_TARGET_FILES.defaults.settings.blocklists += [ - "addons-bloomfilters.json", - ] -diff --git a/services/settings/dumps/main/moz.build b/services/settings/dumps/main/moz.build -index 7f89890eb3..617ad6ac59 100644 ---- a/services/settings/dumps/main/moz.build -+++ b/services/settings/dumps/main/moz.build -@@ -136,3 +136,14 @@ if CONFIG["MOZ_BUILD_APP"] == "browser": - "search-config-icons/fed4f021-ff3e-942a-010e-afa43fda2136", - "search-config-icons/fed4f021-ff3e-942a-010e-afa43fda2136.meta.json", - ] -+ -+FINAL_TARGET_FILES.defaults.settings.main += [ -+ "anti-tracking-url-decoration.json", -+ "cookie-banner-rules-list.json", -+ "hijack-blocklists.json", -+ "ironfox-fingerprinting-protection-overrides.json", -+ "translations-models.json", -+ "translations-wasm.json", -+ "url-classifier-skip-urls.json", -+ "url-parser-default-unknown-schemes-interventions.json", -+] -diff --git a/services/settings/dumps/security-state/moz.build b/services/settings/dumps/security-state/moz.build -index 6e92217dcb..f2520a178c 100644 ---- a/services/settings/dumps/security-state/moz.build -+++ b/services/settings/dumps/security-state/moz.build -@@ -8,7 +8,7 @@ FINAL_TARGET_FILES.defaults.settings["security-state"] += [ - ] - - # Not packaged on android/ios currently - not crucial data for first load. --if not CONFIG["MOZ_BUILD_APP"].startswith("mobile/"): -+if not CONFIG["MOZ_BUILD_APP"].startswith("0"): - FINAL_TARGET_FILES.defaults.settings["security-state"] += [ - "intermediates.json", - ] diff --git a/patches/geckoview-disable-network-connectivity-monitoring.patch b/patches/geckoview-disable-network-connectivity-monitoring.patch deleted file mode 100644 index 861a3d30..00000000 --- a/patches/geckoview-disable-network-connectivity-monitoring.patch +++ /dev/null @@ -1,35 +0,0 @@ -diff --git a/mobile/android/geckoview/src/main/AndroidManifest.xml b/mobile/android/geckoview/src/main/AndroidManifest.xml -index ac6e718f3c..24199dbadd 100644 ---- a/mobile/android/geckoview/src/main/AndroidManifest.xml -+++ b/mobile/android/geckoview/src/main/AndroidManifest.xml -@@ -6,7 +6,7 @@ - - -- -+ - - -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 3eaf228e93..fbfad996f6 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 -@@ -190,7 +190,7 @@ public final class GeckoRuntime implements Parcelable { - GeckoAppShell.resumeLocation(); - // Monitor network status and send change notifications to Gecko - // while active. -- GeckoNetworkManager.getInstance().start(GeckoAppShell.getApplicationContext()); -+// GeckoNetworkManager.getInstance().start(GeckoAppShell.getApplicationContext()); - - // Set settings that may have changed between last app opening - GeckoAppShell.setIs24HourFormat( -@@ -212,7 +212,7 @@ public final class GeckoRuntime implements Parcelable { - // Pause listening for locations when in background - GeckoAppShell.pauseLocation(); - // Stop monitoring network status while inactive. -- GeckoNetworkManager.getInstance().stop(); -+// GeckoNetworkManager.getInstance().stop(); - GeckoThread.onPause(); - Clipboard.onPause(); - } diff --git a/patches/geckoview-liberate.patch b/patches/geckoview-liberate.patch deleted file mode 100644 index b39186fc..00000000 --- a/patches/geckoview-liberate.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/mobile/android/geckoview/build.gradle b/mobile/android/geckoview/build.gradle -index a04e43ca39..57cae0e428 100644 ---- a/mobile/android/geckoview/build.gradle -+++ b/mobile/android/geckoview/build.gradle -@@ -219,7 +219,7 @@ dependencies { - implementation libs.androidx.collection - implementation libs.androidx.core - -- implementation libs.play.services.fido -+ implementation "org.microg.gms:play-services-fido:v0.0.0.250932" - implementation "org.yaml:snakeyaml:2.2" - - implementation libs.androidx.lifecycle.common diff --git a/scripts/patches.yaml b/scripts/patches.yaml index 433da03b..0ee46278 100644 --- a/scripts/patches.yaml +++ b/scripts/patches.yaml @@ -113,20 +113,6 @@ patches: effect: "Improves privacy and protects the freedom of users." category: "Dependency" - - file: "geckoview-liberate.patch" - name: "Remove Proprietary Libraries (GeckoView)" - description: "Replaces the proprietary Google Play FIDO library with its microG equivalent." - reason: "To remove unwanted proprietary libraries and the dependence on Google Play Services." - effect: "Improves privacy and protects the freedom of users." - category: "Dependency" - - - file: "gecko-exclude-gmp-sources.patch" - name: "Exclude GMP Sources" - description: "Removes Firefox's default sources for installing Gecko Media Plugins (GMP), such as OpenH264 and Widevine (the latter is proprietary) - https://wiki.mozilla.org/GeckoMediaPlugins." - reason: "To ensure that Gecko Media Plugins are never downloaded or installed." - effect: "Improves privacy and security, and protects the freedom of users." - category: "Dependency" - - file: "a-c-unifiedpush.patch" name: "UnifiedPush (Android Components)" description: "Adds support for UnifiedPush to Mozilla's Android Components." @@ -149,11 +135,11 @@ patches: effect: "Prevents unwanted collection and transmission of telemetry data." category: "Mozilla" - - file: "gecko-disable-telemetry.patch" - name: "Disable Telemetry (Gecko)" - description: "Disables data collection and submission mechanisms within Gecko." - reason: "To prevent any usage data, diagnostics, or technical metrics from being sent to Mozilla." - effect: "Prevents unwanted collection and transmission of telemetry data." + - file: "gecko-remove-abouttelemetery.patch" + name: "Remove `about:telemetry`" + description: "Removes the internal `about:telemetry` page." + reason: "To improve UX." + effect: "Prevents users from incorrectly believing telemetry is supported/enabled." category: "Mozilla" - file: "a-c-disable-crash-reporting.patch" @@ -184,13 +170,6 @@ patches: effect: "Prevents unwanted collection and transmission of telemetry data." category: "Mozilla" - - file: "fenix-remove-glean-service.patch" - name: "Remove the Glean Service (Fenix)" - description: "Removes the Glean Service from Firefox for Android, to prevent data collection and submission mechanisms." - reason: "To prevent any usage data, diagnostics, or technical metrics from being sent to Mozilla, and to reduce uwnanted dependencies." - effect: "Prevents unwanted collection and transmission of telemetry data." - category: "Mozilla" - - file: "fenix-disable-nimbus.patch" name: "Disable Nimbus Experimentation (Fenix)" description: "Prevents A/B testing and remote configuration of settings via Nimbus within Firefox for Android." @@ -282,13 +261,6 @@ patches: effect: "Simplifies the browser UI and prevents issue reports from being sent to Mozilla." category: "Mozilla" - - file: "fenix-remove-webcompat-reporter.patch" - name: "Remove Web Compatibility Reporter (Fenix)" - description: "Removes the Web Compatibility Reporter and associated menu items for reporting site issues to Mozilla from Firefox for Android." - reason: "To eliminate unwanted dependencies, to declutter the user interface, and to prevent wasting Mozilla's time." - effect: "Simplifies the browser UI and prevents issue reports from being sent to Mozilla." - category: "Mozilla" - - file: "fenix-disable-nags.patch" name: "Disable Nags" description: "Disables Contextual Feature Recommendations, prompts encouraging users to set the browser as the system default, and other promotional messaging." @@ -411,15 +383,8 @@ patches: category: "Privacy" - file: "fenix-disable-network-connectivity-monitoring.patch" - name: "Disable Network Connectivity Status Monitoring (Fenix)" - description: "Removes the `ACCESS_NETWORK_STATE` permission from Firefox for Android, and prevents Firefox from monitoring the status of the user's internet connection." - reason: "To prevent the browser from accessing network information (with the `ACCESS_NETWORK_STATE` permission)." - effect: "Reduces required permissions and limits data exposed to the browser." - category: "Privacy" - - - file: "geckoview-disable-network-connectivity-monitoring.patch" - name: "Disable Network Connectivity Status Monitoring (GeckoView)" - description: "Removes the `ACCESS_NETWORK_STATE` permission from GeckoView, and prevents GeckoView from monitoring the status of the user's internet connection." + name: "Disable Network Connectivity Status Monitoring" + description: "Prevents Firefox from monitoring the status of the user's internet connection." reason: "To prevent the browser from accessing network information (with the `ACCESS_NETWORK_STATE` permission)." effect: "Reduces required permissions and limits data exposed to the browser." category: "Privacy" @@ -431,13 +396,6 @@ patches: effect: "Protects users against tracking/fingerprinting." category: "Privacy" - - file: "a-c-disable-unsolicited-favicon-fetching.patch" - name: "Disable Unsolicited Favicon Fetching" - description: "To prevent the browser from fetching favicons for homepage shortcuts/pins on launch, without prior user interaction." - reason: "To prevent the browser from making unsolicited connections to pinned websites." - effect: "Favicons will still display on the homepage after navigating to the shortcut/pin - so this just improves privacy for users by preventing unauthorized connections to third parties." - category: "Privacy" - - file: "gecko-stub-beacon.patch" name: "Stub the Beacon API (navigator.sendBeacon)" description: "To prevent tracking and the submission of analytics, without aiding fingerprinting and causing undesired breakage." @@ -461,13 +419,6 @@ patches: effect: "Users are provided with a more secure browsing experience." category: "Security" - - file: "fenix-disable-shipped-domains.patch" - name: "Disable Shipped Domains" - description: "Disables Firefox's built-in list of domains used to autocomplete URLs." - reason: "To quote a Mozilla employee (https://bugzilla.mozilla.org/show_bug.cgi?id=1842106#c0): 'Android's current list of 400+ domain names for address bar suggestions was created way back in December 2015... This list hasn't been updated since 2015 and now includes expired and squatted domains that might serve ads or malware'." - effect: "Prevents suggesting squatted domains to users that serve ads and malware, and reduces annoyances/unwanted behavior." - category: "Security" - - file: "gecko-harden-pdfjs.patch" name: "Harden PDF.js" description: "Hardens Firefox's built-in PDF Viewer (PDF.js)." @@ -489,32 +440,18 @@ patches: effect: "Ensures browser settings aren't changed without explicit user consent." category: "Security" - - file: "fenix-hide-remote-debugging-and-reset-per-session.patch" - name: "Hide Remote Debugging UI" - description: "Hides the UI setting for Remote Debugging." + - file: "fenix-reset-remote-debugging-per-session.patch" + name: "Reset Remote Debugging Per-session" + description: "Forces Remote Debugging (`devtools.debugger.remote-enabled`) to reset to `false` per-session." reason: "To force remote debugging to reset per-session for security reasons." effect: "Prevents users from accidentally leaving remote debugging enabled." category: "Security" - - file: "gecko-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)." - reason: "To prevent the unauthorized decryption and exposure of secrets used in SSL/TLS traffic. For more details, see: https://bugzilla.mozilla.org/show_bug.cgi?id=1183318 and https://bugzilla.mozilla.org/show_bug.cgi?id=1915224." - effect: "Protects users against total compromise of any and all cryptographic security." - category: "Security" - - - file: "fenix-enable-secure-storage.patch" - name: "Enable Secure Storage" - description: "Enables the use of encrypted storage (via Android's Keystore system: https://developer.android.com/privacy-and-security/keystore) for Firefox account state." - reason: "To improve privacy and security for users, by leveraging Android's Keystore system for storing certain data." - effect: "Protects users against unauthorized use/compromise of their data." - category: "Security" - - - file: "fenix-increase-update-frequency.patch" - name: "Increase Update Frequency" - description: "Increases the rate at which Firefox checks for add-on updates, from every 12 hours to hourly, and the rate at which Firefox syncs with Remote Settings, from every 24 hours to hourly." + - file: "fenix-increase-rs-update-frequency.patch" + name: "Increase Remote Settings Update Frequency" + description: "Increases the rate at which Firefox syncs with Remote Settings, from every 24 hours to hourly." reason: "To improve security for users, by ensuring they are kept up to date as fast as possible." - effect: "Protects users against security vulnerabilities and other potential threats, by ensuring their extensions and Remote Settings are always up to date." + effect: "Protects users against security vulnerabilities and other potential threats, by ensuring their Remote Settings are always up to date." category: "Security" # User Control @@ -540,13 +477,6 @@ patches: effect: "Improves user experience, and blocking Autoplay reduces bandwidth usage." category: "User Experience" - - file: "gecko-rs-dumps.patch" - name: "Remote Settings Dumps" - description: "Includes more Remote Settings Dumps locally (like desktop Firefox) and allows us to add our own custom dumps." - reason: "Including more Remote Settings Dumps locally ensures that the content is always available for users on the first launch after installing IronFox, and it saves bandwidth by avoiding the need to initially download the entire dumps remotely. This patch also allows us to add our own custom Remote Settings dumps, so that we can further improve the user experience (ex. with our fingerprinting protection overrides)." - effect: "Ensures users are ready to browse and explore out of the box, and can take advantage of our added lists/features." - category: "User Experience" - - file: "gecko-ironfox-fingerprinting-protection-overrides.patch" name: "IronFox Fingerprinting Protection (FPP) Overrides" description: "Adds support for an internal list that disables specific fingerprinting protections as needed on a per-site basis." diff --git a/scripts/prebuild.sh b/scripts/prebuild.sh index d6a9e86e..68e1c41d 100755 --- a/scripts/prebuild.sh +++ b/scripts/prebuild.sh @@ -189,12 +189,26 @@ sed -i -e 's|customExtensionCollectionFeature = .*|customExtensionCollectionFeat # No-op Glean # https://searchfox.org/mozilla-central/rev/31123021/mobile/android/fenix/app/build.gradle#443 +sed -i 's|- components:service-glean|# - components:service-glean|g' .buildconfig.yml +sed -i "s|implementation project(':components:service-glean')|// implementation project(':components:service-glean')|g" app/build.gradle echo 'glean.custom.server.url="data;"' >>local.properties # No-op Nimbus sed -i -e 's|.experimentDelegate|// .experimentDelegate|' app/src/*/java/org/mozilla/fenix/*/GeckoProvider.kt sed -i -e 's|import mozilla.components.experiment.NimbusExperimentDelegate|// import mozilla.components.experiment.NimbusExperimentDelegate|' app/src/*/java/org/mozilla/fenix/*/GeckoProvider.kt +# Remove proprietary/tracking libraries +sed -i 's|- components:lib-crash-sentry|# - components:lib-crash-sentry|g' .buildconfig.yml +sed -i 's|- components:lib-push-firebase|# - components:lib-push-firebase|g' .buildconfig.yml +sed -i 's|implementation libs.thirdparty.sentry|// implementation libs.thirdparty.sentry|g' app/build.gradle +sed -i "s|implementation project(':components:lib-crash-sentry')|// implementation project(':components:lib-crash-sentry')|g" app/build.gradle +sed -i "s|implementation project(':components:lib-push-firebase')|// implementation project(':components:lib-push-firebase')|g" app/build.gradle +sed -i 's|implementation(libs.adjust)|// implementation(libs.adjust)|g' app/build.gradle +sed -i 's|implementation(libs.installreferrer)|// implementation(libs.installreferrer)|g' app/build.gradle +sed -i "s|implementation libs.play.review.ktx|implementation 'org.microg.gms:play-services-tasks:v0.0.0.250932'|g" app/build.gradle +sed -i 's|implementation libs.play|// implementation libs.play|g' app/build.gradle +sed -i -e 's|||' app/src/*/AndroidManifest.xml + # Let it be IronFox sed -i \ -e 's/Notifications help you stay safer with Firefox/Enable notifications/' \ @@ -367,6 +381,9 @@ rm -vf samples/browser/build.gradle rm -vf samples/crash/build.gradle rm -vf samples/glean/build.gradle +# Prevent unsolicited favicon fetching +sed -i -e 's|request.copy(resources = request.resources + resource)|request|' mobile/android/android-components/components/browser/icons/src/main/java/mozilla/components/browser/icons/preparer/TippyTopIconPreparer.kt + # Apply a-c overlay apply_overlay "$patches/a-c-overlay/" @@ -463,9 +480,34 @@ sed -i \ # Unbreak builds with --disable-pref-extensions sed -i -e 's|@BINPATH@/defaults/autoconfig/prefcalls.js|;@BINPATH@/defaults/autoconfig/prefcalls.js|g' mobile/android/installer/package-manifest.in +# Disable network connectivity status monitoring (Fenix) +## (Also removes the `NETWORK_ACCESS_STATE` permission) +## Also see `fenix-disable-network-connectivity-monitoring.patch` +sed -i -e 's|AUTOPLAY_ALLOW_ON_WIFI ->|// AUTOPLAY_ALLOW_ON_WIFI ->|' mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/PhoneFeature.kt +sed -i -e 's|import org.mozilla.fenix.settings.sitepermissions.AUTOPLAY_ALLOW_ON_WIFI|// import org.mozilla.fenix.settings.sitepermissions.AUTOPLAY_ALLOW_ON_WIFI|' mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/PhoneFeature.kt +sed -i -e 's|||' mobile/android/fenix/app/src/main/AndroidManifest.xml + +# Disable network connectivity status monitoring (GeckoView) +## (Also removes the `NETWORK_ACCESS_STATE` permission) +sed -i -e 's|GeckoNetworkManager.|// GeckoNetworkManager.|' mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntime.java +sed -i -e 's|import org.mozilla.gecko.GeckoNetworkManager|// import org.mozilla.gecko.GeckoNetworkManager|' mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntime.java +sed -i -e 's|||' mobile/android/geckoview/src/main/AndroidManifest.xml + # Disable Normandy (Experimentation) sed -i -e 's|"MOZ_NORMANDY", .*)|"MOZ_NORMANDY", False)|g' mobile/android/moz.configure +# Disable shipped domains +## (Firefox's built-in list of domains used to autocomplete URLs) +## To quote a Mozilla employee (https://bugzilla.mozilla.org/show_bug.cgi?id=1842106#c0): 'Android's current list of 400+ domain names for address bar suggestions was created way back in December 2015... This list hasn't been updated since 2015 and now includes expired and squatted domains that might serve ads or malware' +## Prevents suggesting squatted domains to users that serve ads and malware, and reduces annoyances/unwanted behavior. +sed -i -e 's|FxNimbus.features.suggestShippedDomains.value().enabled|false|' mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt + +# Disable SSLKEYLOGGING +## https://bugzilla.mozilla.org/show_bug.cgi?id=1183318 +## https://bugzilla.mozilla.org/show_bug.cgi?id=1915224 +sed -i -e 's|["enable_sslkeylogfile"] = .*|["enable_sslkeylogfile"] = 0|g' security/moz.build +sed -i -e 's|NSS_ALLOW_SSLKEYLOGFILE ?= .*|NSS_ALLOW_SSLKEYLOGFILE ?= 0|g' security/nss/lib/ssl/Makefile + # Disable telemetry sed -i -e 's|"MOZ_SERVICES_HEALTHREPORT", .*)|"MOZ_SERVICES_HEALTHREPORT", False)|g' mobile/android/moz.configure @@ -474,6 +516,30 @@ sed -i -e 's|"MOZ_APP_UA_NAME", ".*"|"MOZ_APP_UA_NAME", "Firefox"|g' mobile/andr # Enable encrypted storage (via Android's Keystore system: https://developer.android.com/privacy-and-security/keystore) for Firefox account state sed -i -e 's|secureStateAtRest: Boolean = .*|secureStateAtRest: Boolean = true,|g' mobile/android/android-components/components/concept/sync/src/*/java/mozilla/components/concept/sync/Devices.kt +sed -i -e 's|secureStateAtRest = .*|secureStateAtRest = true,|g' mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/BackgroundServices.kt + +# Hide Remote Debugging UI setting +## Also see `fenix-reset-remote-debugging-per-session.patch` +sed -i -e 's|preferenceRemoteDebugging?.isVisible = .*|preferenceRemoteDebugging?.isVisible = false|g' mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt + +# Include additional Remote Settings local dumps (+ add our own...) +sed -i -e 's|"mobile/"|"0"|g' services/settings/dumps/blocklists/moz.build +sed -i -e 's|"mobile/"|"0"|g' services/settings/dumps/security-state/moz.build +echo '' >>services/settings/dumps/main/moz.build +echo 'FINAL_TARGET_FILES.defaults.settings.main += [' >>services/settings/dumps/main/moz.build +echo ' "anti-tracking-url-decoration.json",' >>services/settings/dumps/main/moz.build +echo ' "cookie-banner-rules-list.json",' >>services/settings/dumps/main/moz.build +echo ' "hijack-blocklists.json",' >>services/settings/dumps/main/moz.build +echo ' "ironfox-fingerprinting-protection-overrides.json",' >>services/settings/dumps/main/moz.build +echo ' "translations-models.json",' >>services/settings/dumps/main/moz.build +echo ' "translations-wasm.json",' >>services/settings/dumps/main/moz.build +echo ' "url-classifier-skip-urls.json",' >>services/settings/dumps/main/moz.build +echo ' "url-parser-default-unknown-schemes-interventions.json",' >>services/settings/dumps/main/moz.build +echo ']' >>services/settings/dumps/main/moz.build + +# Increase add-on update frequency +## Increases the rate at which Firefox checks for add-on updates, from every 12 hours to hourly +sed -i -e 's|DefaultAddonUpdater(context, Frequency(.*,|DefaultAddonUpdater(context, Frequency(1,|g' mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Components.kt # No-op AMO collections/recommendations sed -i -e 's/DEFAULT_COLLECTION_NAME = ".*"/DEFAULT_COLLECTION_NAME = ""/' mobile/android/android-components/components/feature/addons/src/*/java/mozilla/components/feature/addons/amo/AMOAddonsProvider.kt @@ -511,7 +577,7 @@ sed -i -e 's/SPOCS_ENDPOINT_DEV_BASE_URL = ".*"/SPOCS_ENDPOINT_DEV_BASE_URL = "" sed -i -e 's/SPOCS_ENDPOINT_PROD_BASE_URL = ".*"/SPOCS_ENDPOINT_PROD_BASE_URL = ""/' mobile/android/android-components/components/service/pocket/src/*/java/mozilla/components/service/pocket/spocs/api/SpocsEndpointRaw.kt sed -i -e 's/POCKET_ENDPOINT_URL = ".*"/POCKET_ENDPOINT_URL = ""/' mobile/android/android-components/components/service/pocket/src/*/java/mozilla/components/service/pocket/stories/api/PocketEndpointRaw.kt -# No-op Search telemetry +# No-op search telemetry sed -i 's|search-telemetry-v2||g' mobile/android/fenix/app/src/*/java/org/mozilla/fenix/components/Core.kt # No-op telemetry @@ -524,11 +590,44 @@ sed -i -e '/use_core_mps:/s/true/false/' toolkit/components/glean/src/init/mod.r sed -i 's|localhost||g' toolkit/components/telemetry/pingsender/pingsender.cpp sed -i 's|localhost||g' toolkit/components/telemetry/pings/BackgroundTask_pingsender.sys.mjs sed -i -e 's/usageDeletionRequest.setEnabled(.*)/usageDeletionRequest.setEnabled(false)/' toolkit/components/telemetry/app/UsageReporting.sys.mjs +sed -i -e 's|useTelemetry = .*|useTelemetry = false;|g' toolkit/components/telemetry/core/Telemetry.cpp +echo '' >>toolkit/library/rust/gkrust-features.mozbuild +echo 'gkrust_features += ["glean_disable_upload"]' >>toolkit/library/rust/gkrust-features.mozbuild # Prevent DoH canary requests sed -i -e 's/GLOBAL_CANARY = ".*"/GLOBAL_CANARY = ""/' toolkit/components/doh/DoHHeuristics.sys.mjs sed -i -e 's/ZSCALER_CANARY = ".*"/ZSCALER_CANARY = ""/' toolkit/components/doh/DoHHeuristics.sys.mjs +# Remove `about:telemetry` +## Also see `gecko-remove-abouttelemetry.patch` +sed -i -e "s|'telemetry'|# &|" docshell/build/components.conf +sed -i -e 's|content/global/aboutTelemetry|# content/global/aboutTelemetry|' toolkit/content/jar.mn + +# Remove GMP sources +## Removes Firefox's default sources for installing Gecko Media Plugins (GMP), such as OpenH264 and Widevine (the latter is proprietary). +## https://wiki.mozilla.org/GeckoMediaPlugins +sed -i -e 's|content/global/gmp-sources|# content/global/gmp-sources|' toolkit/content/jar.mn + +# Remove unwanted/sample dependencies +## Also see `gecko-remove-example-dependencies.patch` +sed -i -e 's#if (rootDir.toString().contains("android-components") || !project.key.startsWith("samples"))#if (!project.key.startsWith("samples"))#' mobile/android/shared-settings.gradle + +# Remove Web Compatibility Reporter +## Also see `fenix-remove-webcompat-reporter.patch` +sed -i 's|- components:feature-webcompat-reporter|# - components:feature-webcompat-reporter|g' mobile/android/fenix/.buildconfig.yml +sed -i "s|implementation project(':components:feature-webcompat-reporter')|// implementation project(':components:feature-webcompat-reporter')|g" mobile/android/fenix/app/build.gradle +sed -i -e 's|return !isAboutUrl && !isContentUrl|return false|' mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt +sed -i -e 's|FxNimbus.features.menuRedesign.value().reportSiteIssue|false|' mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/MenuDialogFragment.kt +sed -i -e 's|import mozilla.components.feature.webcompat.reporter|// import mozilla.components.feature.webcompat.reporter|' mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FenixApplication.kt +sed -i -e 's|WebCompatReporterFeature.|// WebCompatReporterFeature.|' mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FenixApplication.kt + +# Replace Google Play FIDO with microG +sed -i 's|libs.play.services.fido|"org.microg.gms:play-services-fido:v0.0.0.250932"|g' mobile/android/geckoview/build.gradle + +# Unbreak our custom uBlock Origin config +## Also see `gecko-custom-ublock-origin-assets.patch` +sed -i -e 's#else if (platform == "macosx" || platform == "linux")#else if (platform == "macosx" || platform == "linux" || platform == "android")#' toolkit/components/extensions/NativeManifests.sys.mjs + # Nuke undesired Mozilla endpoints source "$rootdir/scripts/noop_mozilla_endpoints.sh"