From 2fec68a4597270e7fce1c0a4e3a328be4766a2d3 Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Sun, 4 Apr 2021 13:09:05 +0300
Subject: [PATCH 1/5] geolocation: Disable API and remove Google API URLs

The idea for Iceweasel is to reference only services which can be
self-hosted using 100% free software stack.

At the moment, upstream uses Google Geolocation API by default for
release builds. There's also a special configuration for Nightly and
early Beta builds to use Mozilla Location Services. Since I couldn't find
the source code of Google Geolocation API, let's assume it's nonfree.
So removed the URLs.

Mozilla Location Services need further evaluation. But as we don't ship
Nightly or Beta builds and strive to stick as close to upstream as
possible while keeping the SW stack 100% free, release builds don't have
any valid geolocation provider, so let's disable geolocation API by
default for now.
---
 modules/libpref/init/all.js              | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/modules/libpref/init/StaticPrefList.yaml b/modules/libpref/init/StaticPrefList.yaml
index 5632486c69..b977858e04 100644
--- a/modules/libpref/init/StaticPrefList.yaml
+++ b/modules/libpref/init/StaticPrefList.yaml
@@ -5616,7 +5616,7 @@
 # Is support for Navigator.geolocation enabled?
 - name: geo.enabled
   type: bool
-  value: true
+  value: false
   mirror: always
 
 # Time, in milliseconds, to wait for the location provider to spin up.
diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js
index af04cba691..514f750a23 100644
--- a/modules/libpref/init/all.js
+++ b/modules/libpref/init/all.js
@@ -3094,7 +3094,7 @@ pref("network.psl.onUpdate_notify", false);
 
 // All the Geolocation preferences are here.
 //
-pref("geo.provider.network.url", "https://www.googleapis.com/geolocation/v1/geolocate?key=%GOOGLE_LOCATION_SERVICE_API_KEY%");
+pref("geo.provider.network.url", "");
 
 // Timeout to wait before sending the location request.
 pref("geo.provider.network.timeToWaitBeforeSending", 5000);
-- 
2.41.0


From 413f141022f562beb53ed87370146a123872f35b Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Sun, 4 Apr 2021 13:49:05 +0300
Subject: [PATCH 2/5] Disable banners and remove URLs for mobile apps on
 about:protections page

---
 browser/app/profile/firefox.js | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
index a7d255df89..801816dc41 100644
--- a/browser/app/profile/firefox.js
+++ b/browser/app/profile/firefox.js
@@ -1955,7 +1955,7 @@ pref("browser.contentblocking.report.monitor.enabled", false);
 pref("browser.contentblocking.report.proxy.enabled", false);
 
 // Disable the mobile promotion by default.
-pref("browser.contentblocking.report.show_mobile_app", true);
+pref("browser.contentblocking.report.show_mobile_app", false);
 
 // Locales in which Send to Device emails are supported
 // The most recent list of supported locales can be found at https://github.com/mozilla/bedrock/blob/6a08c876f65924651554decc57b849c00874b4e7/bedrock/settings/base.py#L963
@@ -1989,7 +1989,7 @@ pref("browser.promo.cookiebanners.enabled", false);
 // Set to true for Fx113 (see bug 1808611)
 pref("browser.promo.cookiebanners.enabled", false);
 
-pref("browser.contentblocking.report.hide_vpn_banner", false);
+pref("browser.contentblocking.report.hide_vpn_banner", true);
 pref("browser.contentblocking.report.vpn_sub_id", "sub_HrfCZF7VPHzZkA");
 
 pref("browser.contentblocking.report.monitor.url", "https://monitor.firefox.com/?entrypoint=protection_report_monitor&utm_source=about-protections");
@@ -2000,12 +2000,12 @@ pref("browser.contentblocking.report.monitor.home_page_url", "https://monitor.fi
 pref("browser.contentblocking.report.manage_devices.url", "https://accounts.firefox.com/settings/clients");
 pref("browser.contentblocking.report.endpoint_url", "https://monitor.firefox.com/user/breach-stats?includeResolved=true");
 pref("browser.contentblocking.report.proxy_extension.url", "https://fpn.firefox.com/browser?utm_source=firefox-desktop&utm_medium=referral&utm_campaign=about-protections&utm_content=about-protections");
-pref("browser.contentblocking.report.mobile-ios.url", "https://apps.apple.com/app/firefox-private-safe-browser/id989804926");
-pref("browser.contentblocking.report.mobile-android.url", "https://play.google.com/store/apps/details?id=org.mozilla.firefox&referrer=utm_source%3Dprotection_report%26utm_content%3Dmobile_promotion");
-pref("browser.contentblocking.report.vpn.url", "https://vpn.mozilla.org/?utm_source=firefox-browser&utm_medium=firefox-browser&utm_campaign=about-protections-card");
-pref("browser.contentblocking.report.vpn-promo.url", "https://vpn.mozilla.org/?utm_source=firefox-browser&utm_medium=firefox-browser&utm_campaign=about-protections-top-promo");
-pref("browser.contentblocking.report.vpn-android.url", "https://play.google.com/store/apps/details?id=org.mozilla.firefox.vpn&referrer=utm_source%3Dfirefox-browser%26utm_medium%3Dfirefox-browser%26utm_campaign%3Dabout-protections-mobile-vpn%26anid%3D--");
-pref("browser.contentblocking.report.vpn-ios.url", "https://apps.apple.com/us/app/firefox-private-network-vpn/id1489407738");
+pref("browser.contentblocking.report.mobile-ios.url", "");
+pref("browser.contentblocking.report.mobile-android.url", "");
+pref("browser.contentblocking.report.vpn.url", "");
+pref("browser.contentblocking.report.vpn-promo.url", "");
+pref("browser.contentblocking.report.vpn-android.url", "");
+pref("browser.contentblocking.report.vpn-ios.url", "");
 
 // Protection Report's SUMO urls
 pref("browser.contentblocking.report.lockwise.how_it_works.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/password-manager-report");
-- 
2.41.0


From 275785d94093d5c2dd46739484a2744642df357f Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Tue, 17 Jan 2023 21:59:51 +0100
Subject: [PATCH 3/5] FSDG: Remove some references to AMO

* addons.mozilla.org (AMO) is a third-party repository, not compatible
  with the FSDG, because it is not committed to only including free
  software, see [1]. The work to remove the references to it from
  Iceweasel right now is far from being complete.
* Remove URLs to services.addons.mozilla.org as one of these URLs is
  used to fetch recommendations from AMO after the click on Extensions
  button from the toolbar.
* Disable abuse reporting functionality as it uses the API on the same
  hostname. Sanity check during build preparation should verify this
  hostname is not available in the sources, and make it clear the patch
  needs reworking when that check fails.
* Remove AMO URL to fetch langpacks. These are for Firefox, and Parabola
  has Iceweasel langpacks anyway.
* Remove some AMO URLs from mobile.js. There's no Android version of
  Iceweasel AFAIK, but these are some steps towards total removal of
  references to AMO.
* Remove some AMO related preferences from vendor.js.in and patch them
  directly in the sources, to avoid the rotting and to get notified
  quickly when Mozilla introduces any changes to them in the future.

[1] https://labs.parabola.nu/issues/2409#note-4
---
 browser/app/profile/firefox.js        | 12 ++++++------
 mobile/android/app/geckoview-prefs.js |  8 ++++----
 modules/libpref/init/all.js           |  8 ++++----
 3 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
index 801816dc41..9c2562ff23 100644
--- a/browser/app/profile/firefox.js
+++ b/browser/app/profile/firefox.js
@@ -33,12 +33,12 @@ pref("extensions.postDownloadThirdPartyPrompt", true);
 
 // Preferences for AMO integration
 pref("extensions.getAddons.cache.enabled", true);
-pref("extensions.getAddons.get.url", "https://services.addons.mozilla.org/api/v4/addons/search/?guid=%IDS%&lang=%LOCALE%");
-pref("extensions.getAddons.search.browseURL", "https://addons.mozilla.org/%LOCALE%/firefox/search?q=%TERMS%&platform=%OS%&appver=%VERSION%");
-pref("extensions.getAddons.link.url", "https://addons.mozilla.org/%LOCALE%/firefox/");
-pref("extensions.getAddons.langpacks.url", "https://services.addons.mozilla.org/api/v4/addons/language-tools/?app=firefox&type=language&appversion=%VERSION%");
-pref("extensions.getAddons.discovery.api_url", "https://services.addons.mozilla.org/api/v4/discovery/?lang=%LOCALE%&edition=%DISTRIBUTION%");
-pref("extensions.getAddons.browserMappings.url", "https://services.addons.mozilla.org/api/v5/addons/browser-mappings/?browser=%BROWSER%");
+pref("extensions.getAddons.get.url", "");
+pref("extensions.getAddons.search.browseURL", "https://gnuzilla.gnu.org/mozzarella/search.php?q=%TERMS%");
+pref("extensions.getAddons.link.url", "https://gnuzilla.gnu.org/mozzarella/");
+pref("extensions.getAddons.langpacks.url", "");
+pref("extensions.getAddons.discovery.api_url", "");
+pref("extensions.getAddons.browserMappings.url", "");
 
 // The URL for the privacy policy related to recommended extensions.
 pref("extensions.recommendations.privacyPolicyUrl", "https://www.mozilla.org/privacy/firefox/?utm_source=firefox-browser&utm_medium=firefox-browser&utm_content=privacy-policy-link#addons");
diff --git a/mobile/android/app/geckoview-prefs.js b/mobile/android/app/geckoview-prefs.js
index c1983abc2b..35c24e5d43 100644
--- a/mobile/android/app/geckoview-prefs.js
+++ b/mobile/android/app/geckoview-prefs.js
@@ -228,11 +228,11 @@ pref("extensions.experiments.enabled", false);
 // Support credit cards in GV autocomplete API (bug 1691819)
 pref("extensions.formautofill.addresses.capture.enabled", true);
 
-pref("extensions.getAddons.browseAddons", "https://addons.mozilla.org/%LOCALE%/android/collections/4757633/mob/?page=1&collection_sort=-popularity");
+pref("extensions.getAddons.browseAddons", "");
 pref("extensions.getAddons.cache.enabled", true);
-pref("extensions.getAddons.get.url", "https://services.addons.mozilla.org/api/v4/addons/search/?guid=%IDS%&lang=%LOCALE%");
-pref("extensions.getAddons.langpacks.url", "https://services.addons.mozilla.org/api/v4/addons/language-tools/?app=android&type=language&appversion=%VERSION%");
-pref("extensions.getAddons.search.browseURL", "https://addons.mozilla.org/%LOCALE%/android/search?q=%TERMS%&platform=%OS%&appver=%VERSION%");
+pref("extensions.getAddons.get.url", "");
+pref("extensions.getAddons.langpacks.url", "");
+pref("extensions.getAddons.search.browseURL", "");
 
 // Don't let XPIProvider install distribution add-ons; we do our own thing on mobile
 pref("extensions.installDistroAddons", false);
diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js
index 514f750a23..abbf229223 100644
--- a/modules/libpref/init/all.js
+++ b/modules/libpref/init/all.js
@@ -1851,11 +1851,11 @@ pref("services.common.uptake.sampleRate", 1);   // 1%
 pref("extensions.abuseReport.enabled", false);
 // Whether abuse report originated from AMO should use the Firefox integrated dialog.
 pref("extensions.abuseReport.amWebAPI.enabled", false);
-pref("extensions.abuseReport.url", "https://services.addons.mozilla.org/api/v4/abuse/report/addon/");
-pref("extensions.abuseReport.amoDetailsURL", "https://services.addons.mozilla.org/api/v4/addons/addon/");
+pref("extensions.abuseReport.url", "");
+pref("extensions.abuseReport.amoDetailsURL", "");
 // Whether Firefox integrated abuse reporting feature should be opening the new abuse report form hosted on AMO.
 pref("extensions.abuseReport.amoFormEnabled", false);
-pref("extensions.abuseReport.amoFormURL", "https://addons.mozilla.org/%LOCALE%/%APP%/feedback/addon/%addonID%/");
+pref("extensions.abuseReport.amoFormURL", "");
 
 // Blocklist preferences
 pref("extensions.blocklist.enabled", true);
@@ -3158,7 +3158,7 @@ pref("extensions.webextensions.ExtensionStorageIDB.enabled", true);
 // Whether to allow the inline options browser in HTML about:addons page.
 pref("extensions.htmlaboutaddons.inline-options.enabled", true);
 // Show recommendations on the extension and theme list views.
-pref("extensions.htmlaboutaddons.recommendations.enabled", true);
+pref("extensions.htmlaboutaddons.recommendations.enabled", false);
 
 // The URL for the privacy policy related to recommended add-ons.
 pref("extensions.recommendations.privacyPolicyUrl", "");
diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
index 1f1b1cbd3e..7ea9d82cdf 100644
--- a/browser/app/profile/firefox.js
+++ b/browser/app/profile/firefox.js
@@ -22,9 +22,9 @@
 pref("browser.hiddenWindowChromeURL", "chrome://browser/content/hiddenWindowMac.xhtml");
 
 // Set add-ons abuse report related prefs specific to Firefox Desktop.
-pref("extensions.abuseReport.enabled", true);
-pref("extensions.abuseReport.amWebAPI.enabled", true);
-pref("extensions.abuseReport.amoFormEnabled", true);
+pref("extensions.abuseReport.enabled", false);
+pref("extensions.abuseReport.amWebAPI.enabled", false);
+pref("extensions.abuseReport.amoFormEnabled", false);
 
 // Enables some extra Extension System Logging (can reduce performance)
 pref("extensions.logging.enabled", false);
-- 
2.41.0


From 7c742c2c0e0bd817fd646d0b83a0265c67d6c5fb Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Sun, 4 Jun 2023 13:16:40 +0200
Subject: [PATCH 4/5] FSDG: Disable Contile and autoupdate of system addons

1. Contile (see change context lines) is used to fetch sponsored top
   sites, which are not controlled by Parabola and are likely to not
be committed to include only free software.
2. While system addons shipped in the source code seem to be free
   software, I'm not sure if the update endpoint also returns only free
software, given that Mozilla is not committed to include only free
software in their repositories.

As these URLs can be considered as repositories not committed to include
only free software, remove them from the source code.
---
 browser/app/profile/firefox.js | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
index 9c2562ff23..7577fbe008 100644
--- a/browser/app/profile/firefox.js
+++ b/browser/app/profile/firefox.js
@@ -48,8 +48,8 @@ pref("extensions.recommendations.themeRecommendationUrl", "https://color.firefox
 pref("extensions.update.autoUpdateDefault", true);
 
 // Check AUS for system add-on updates.
-pref("extensions.systemAddon.update.url", "https://aus5.mozilla.org/update/3/SystemAddons/%VERSION%/%BUILD_ID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/update.xml");
-pref("extensions.systemAddon.update.enabled", true);
+pref("extensions.systemAddon.update.url", "");
+pref("extensions.systemAddon.update.enabled", false);
 
 // Disable add-ons that are not installed by the user in all scopes by default.
 // See the SCOPE constants in AddonManager.jsm for values to use here.
@@ -1603,8 +1603,8 @@ pref("prompts.defaultModalType", 3);
 
 pref("browser.topsites.useRemoteSetting", true);
 // Fetch sponsored Top Sites from Mozilla Tiles Service (Contile)
-pref("browser.topsites.contile.enabled", true);
-pref("browser.topsites.contile.endpoint", "https://contile.services.mozilla.com/v1/tiles");
+pref("browser.topsites.contile.enabled", false);
+pref("browser.topsites.contile.endpoint", "");
 
 // Whether to enable the Share-of-Voice feature for Sponsored Topsites via Contile.
 pref("browser.topsites.contile.sov.enabled", true);
-- 
2.41.0


From 40f5b56ba68e3f256fa3672a77efd0c1951d7e00 Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Tue, 26 Sep 2023 21:27:34 +0200
Subject: [PATCH 5/5] FSDG: Disable Firefox Translations for now

Although fully local translation is a great achievement, I'd hesitate to keep it 
enabled for now, because of the following concerns:

1. According to the FSDG [1]:

 > All information for practical use in a free distribution must be available in 
source form.
 
 Translation models are downloaded as Remote Settings attachments, see their 
paths on the attachment server, for example in [2] in the source tree. The 
hostname of that server is returned by Remote Settings server, access to which 
is disabled by 9001-FSDG-sync-remote-settings-with-local-dump.patch and 
PKGBUILD. So in my understanding, to comply with the FSDG, the distro has to 
make sources of those models available. It looks like those can be found using 
info from [4], but even then...
 
2. According to FSDG [3]:

 > a free system distribution cannot include free software that can only be 
built by using nonfree software.
 
 It depends on whether those models can be considered software (or "information 
for practical use" in case the FSDG is not totally precise when talking only 
about software here). While the models are freely licensed [4], their README 
mentions the first training pipeline [5] that lists CUDA and CUDNN in the 
requirements. Both are nonfree and blocklisted in Parabola. Further research is 
needed on possibility to make the models with 100% free software stack.

3. Because calls to Remote Settings server are disabled, as mentioned above, the 
models won't be downloaded anyway, and Firefox Translations feature will be 
broken, so keeping it enabled would lead to poor user experience. An alternative 
would be to use something like [6], but that requires additional research and 
probably has the same issues with the toolchain for the models.
 
[1] https://www.gnu.org/distros/free-system-distribution-guidelines.html#license-rules
[2] services/settings/dumps/main/translations-models.json
[3] https://www.gnu.org/distros/free-system-distribution-guidelines.html#complete-distros
[4] WARNING! GitHub webpage is likely to run nonfree software in user's web browser, so at least disable JavaScript when opening: https://github.com/mozilla/firefox-translations-models
[5] WARNING! GitHub webpage is likely to run nonfree software in user's web browser, so at least disable JavaScript when opening: https://github.com/mozilla/firefox-translations-training
[6] https://addons.mozilla.org/en-US/firefox/addon/translatelocally-for-firefox/

---
 browser/app/profile/firefox.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
index f58075204d..a2ffbec390 100644
--- a/browser/app/profile/firefox.js
+++ b/browser/app/profile/firefox.js
@@ -1882,7 +1882,7 @@ pref("browser.translation.neverForLanguages", "");
 
 // Enable Firefox translations powered by the Bergamot translations
 // engine https://browser.mt/.
-pref("browser.translations.enable", true);
+pref("browser.translations.enable", false);

 // Enable the new Firefox Translations Settings UI Design
 pref("browser.translations.newSettingsUI.enable", false);
-- 
2.42.0


From e0f27816208ff4371f9de3e2a9190f1a26a4a2f8 Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Fri, 17 Nov 2023 20:52:18 +0100
Subject: [PATCH] FSDG: Put a fuse, to blow up when upstream switches to
 search-config-v2

process-json-files.py will probably need rework.
---
 modules/libpref/init/all.js | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js
index 86bfe71247..af91481d2d 100644
--- a/modules/libpref/init/all.js
+++ b/modules/libpref/init/all.js
@@ -3462,6 +3462,8 @@ pref("browser.search.removeEngineInfobar.enabled", true);
 // Enables a new search configuration style with no functional changes for the
 // user. This is solely intended as a rollout button - it will go away once the
 // new configuration has been rolled out.
+//
+// Extra comment, so the patch fails to apply as soon as the line below is changed upstream.
 pref("browser.search.newSearchConfig.enabled", false);
 
 // GMPInstallManager prefs
-- 
2.42.1
