diff --git a/assets/patches.txt b/assets/patches.txt index 1723a21..dad51f2 100644 --- a/assets/patches.txt +++ b/assets/patches.txt @@ -13,6 +13,7 @@ patches/hide-passwordmgr.patch patches/librewolf-prefs.patch patches/mozilla_dirs.patch patches/msix.patch +patches/privacy-security-settings-hotfix.patch patches/remove_addons.patch patches/rust-gentoo-musl.patch patches/sed-patches/allow-searchengines-non-esr.patch diff --git a/patches/privacy-security-settings-hotfix.patch b/patches/privacy-security-settings-hotfix.patch new file mode 100644 index 0000000..2d768a1 --- /dev/null +++ b/patches/privacy-security-settings-hotfix.patch @@ -0,0 +1,72 @@ +# HG changeset patch +# User Malte Jürgens +# Date 1722462820 -7200 +# Wed Jul 31 23:53:40 2024 +0200 +# Node ID 457872813e06bcf474803cf0c9519809fbc5806a +# Parent 265f9fb218cd9395f36a16714b1f295f4a996b76 +Bug 1910312 - Unbreak privacy and security settings when MOZ_DATA_REPORTING is disabled r?#settings-reviewers! + +Disabling `MOZ_DATA_REPORTING` results in the `PREF_UPLOAD_ENABLED` pref not +being loaded with `Preferences.add`. This means +`Preferences.get(PREF_UPLOAD_ENABLED)` can possibly be `null`, which was +previously not handled and resulted in an error for the whole privacy.js file. + +So only call `dataCollectionCheckboxHandler` for the `privateAttribution` +checkbox if `MOZ_DATA_REPORTING` is enabled (otherwise the `privateAttribution` +checkbox also just doesn't exist). Also move the call into separate +`initPrivateAttributionCheckbox` function to be more consistent with previous +code. + +Differential Revision: https://phabricator.services.mozilla.com/D218265 + +diff --git a/browser/components/preferences/privacy.js b/browser/components/preferences/privacy.js +--- a/browser/components/preferences/privacy.js ++++ b/browser/components/preferences/privacy.js +@@ -339,7 +339,7 @@ function dataCollectionCheckboxHandler({ + !collectionEnabled || Services.prefs.prefIsLocked(pref) || isDisabled(); + } + +- Preferences.get(PREF_UPLOAD_ENABLED).on("change", updateCheckbox); ++ Preferences.get(PREF_UPLOAD_ENABLED)?.on("change", updateCheckbox); + updateCheckbox(); + } + +@@ -1267,17 +1267,8 @@ var gPrivacyPane = { + this.initOptOutStudyCheckbox(); + } + this.initAddonRecommendationsCheckbox(); ++ this.initPrivateAttributionCheckbox(); + } +- dataCollectionCheckboxHandler({ +- checkbox: document.getElementById("privateAttribution"), +- pref: PREF_PRIVATE_ATTRIBUTION_ENABLED, +- matchPref() { +- return AppConstants.MOZ_TELEMETRY_REPORTING; +- }, +- isDisabled() { +- return !AppConstants.MOZ_TELEMETRY_REPORTING; +- }, +- }); + + let signonBundle = document.getElementById("signonBundle"); + let pkiBundle = document.getElementById("pkiBundle"); +@@ -3568,6 +3559,19 @@ var gPrivacyPane = { + }); + }, + ++ initPrivateAttributionCheckbox() { ++ dataCollectionCheckboxHandler({ ++ checkbox: document.getElementById("privateAttribution"), ++ pref: PREF_PRIVATE_ATTRIBUTION_ENABLED, ++ matchPref() { ++ return AppConstants.MOZ_TELEMETRY_REPORTING; ++ }, ++ isDisabled() { ++ return !AppConstants.MOZ_TELEMETRY_REPORTING; ++ }, ++ }); ++ }, ++ + observe(aSubject, aTopic) { + switch (aTopic) { + case "sitedatamanager:updating-sites":