commit c2c74067f0488ba9da72bbb84cb28ae8dd951669
parent 9b1b0e1f98cf5249f0135a693f4221d7ede58045
Author: Harsheet <hsohaney@mozilla.com>
Date: Thu, 23 Oct 2025 11:57:38 +0000
Bug 1995651 - Disable backup for users who have sanitizeOnShutdown turned on. r=fchasen
Differential Revision: https://phabricator.services.mozilla.com/D269500
Diffstat:
2 files changed, 53 insertions(+), 21 deletions(-)
diff --git a/browser/components/backup/BackupService.sys.mjs b/browser/components/backup/BackupService.sys.mjs
@@ -627,6 +627,13 @@ export class BackupService extends EventTarget {
};
}
+ if (Services.prefs.getBoolPref("privacy.sanitize.sanitizeOnShutdown")) {
+ return {
+ enabled: false,
+ reason: "Backup is disabled for users with sanitizeOnShutdown enabled.",
+ };
+ }
+
return { enabled: true };
}
@@ -653,6 +660,13 @@ export class BackupService extends EventTarget {
};
}
+ if (Services.prefs.getBoolPref("privacy.sanitize.sanitizeOnShutdown")) {
+ return {
+ enabled: false,
+ reason: "Backup is disabled for users with sanitizeOnShutdown enabled.",
+ };
+ }
+
return { enabled: true };
}
@@ -3668,6 +3682,10 @@ export class BackupService extends EventTarget {
BACKUP_RESTORE_ENABLED_PREF_NAME,
this.#notifyStatusObservers
);
+ Services.prefs.addObserver(
+ "privacy.sanitize.sanitizeOnShutdown",
+ this.#notifyStatusObservers
+ );
lazy.NimbusFeatures.backupService.onUpdate(this.#notifyStatusObservers);
}
@@ -3680,6 +3698,10 @@ export class BackupService extends EventTarget {
BACKUP_RESTORE_ENABLED_PREF_NAME,
this.#notifyStatusObservers
);
+ Services.prefs.removeObserver(
+ "privacy.sanitize.sanitizeOnShutdown",
+ this.#notifyStatusObservers
+ );
}
/**
diff --git a/browser/components/backup/tests/browser/browser_settings.js b/browser/components/backup/tests/browser/browser_settings.js
@@ -26,6 +26,8 @@ add_task(async function test_preferences_visibility() {
await BrowserTestUtils.withNewTab("about:preferences#sync", async browser => {
let backupSection =
browser.contentDocument.querySelector("#dataBackupGroup");
+
+ let settings = browser.contentDocument.querySelector("backup-settings");
Assert.ok(backupSection, "Found backup preferences section");
// Our mochitest-browser tests are configured to have the section visible
@@ -34,23 +36,34 @@ add_task(async function test_preferences_visibility() {
BrowserTestUtils.isVisible(backupSection),
"Backup section is visible"
);
- });
- await SpecialPowers.pushPrefEnv({
- set: [[BACKUP_ARCHIVE_ENABLED_PREF, false]],
- });
+ await SpecialPowers.pushPrefEnv({
+ set: [["privacy.sanitize.sanitizeOnShutdown", true]],
+ });
- await BrowserTestUtils.withNewTab("about:preferences#sync", async browser => {
- let backupSection =
- browser.contentDocument.querySelector("#dataBackupGroup");
- Assert.ok(backupSection, "Found backup preferences section");
+ Assert.ok(
+ !settings.restoreFromBackupEl,
+ "Backup Restore section is not available"
+ );
+
+ Assert.ok(
+ BrowserTestUtils.isHidden(backupSection),
+ "Backup section is now hidden"
+ );
+
+ await SpecialPowers.popPrefEnv();
+
+ await SpecialPowers.pushPrefEnv({
+ set: [[BACKUP_ARCHIVE_ENABLED_PREF, false]],
+ });
+
+ await settings.updateComplete;
Assert.ok(
BrowserTestUtils.isVisible(backupSection),
- "Backup section is still visible"
+ "Backup section is now visible"
);
- let settings = browser.contentDocument.querySelector("backup-settings");
let backupArchiveSection = settings.querySelector("#scheduled-backups");
Assert.ok(!backupArchiveSection, "Backup archive section is not available");
@@ -59,27 +72,24 @@ add_task(async function test_preferences_visibility() {
settings.restoreFromBackupEl,
"Backup restore section is available"
);
- });
- await SpecialPowers.pushPrefEnv({
- set: [[BACKUP_RESTORE_ENABLED_PREF, false]],
- });
- await BrowserTestUtils.withNewTab("about:preferences#sync", async browser => {
- let settings = browser.contentDocument.querySelector("backup-settings");
+
+ await SpecialPowers.pushPrefEnv({
+ set: [[BACKUP_RESTORE_ENABLED_PREF, false]],
+ });
+
Assert.ok(
!settings.restoreFromBackupEl,
"Backup Restore section is not available"
);
- let backupSection =
- browser.contentDocument.querySelector("#dataBackupGroup");
Assert.ok(
BrowserTestUtils.isHidden(backupSection),
"Backup section is now hidden"
);
- });
- await SpecialPowers.popPrefEnv();
- await SpecialPowers.popPrefEnv();
+ await SpecialPowers.popPrefEnv();
+ await SpecialPowers.popPrefEnv();
+ });
});
/**