Skip to content

Commit fdf89ab

Browse files
committed
Bug 1888451 - Disable history dropdown when SanitizeOnShutdown locks the pref. r=bvandersloot
Differential Revision: https://phabricator.services.mozilla.com/D299827
1 parent 6c4035f commit fdf89ab

3 files changed

Lines changed: 97 additions & 5 deletions

File tree

‎browser/components/enterprisepolicies/tests/browser/browser.toml‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,8 @@ support-files = [
120120

121121
["browser_policy_privatebrowsingmodeavailability_srd.js"]
122122

123+
["browser_policy_sanitize_on_shutdown.js"]
124+
123125
["browser_policy_search_engine.js"]
124126

125127
["browser_policy_searchbar.js"]
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
/* Any copyright is dedicated to the Public Domain.
2+
* http://creativecommons.org/publicdomain/zero/1.0/ */
3+
4+
"use strict";
5+
6+
async function checkPrivacyPreferences({
7+
historyMode,
8+
privateBrowsingAutoStart,
9+
alwaysClear,
10+
rememberHistory,
11+
rememberForms,
12+
}) {
13+
await BrowserTestUtils.withNewTab(
14+
"about:preferences#privacy",
15+
async browser => {
16+
let doc = browser.contentDocument;
17+
let checks = {
18+
historyMode,
19+
privateBrowsingAutoStart,
20+
alwaysClear,
21+
rememberHistory,
22+
rememberForms,
23+
};
24+
for (let [id, expected] of Object.entries(checks)) {
25+
if (expected === undefined) {
26+
continue;
27+
}
28+
is(doc.getElementById(id).disabled, expected, `#${id} disabled state`);
29+
}
30+
}
31+
);
32+
}
33+
34+
add_task(async function test_sanitizeOnShutdown_boolean_true() {
35+
await setupPolicyEngineWithJson({
36+
policies: {
37+
SanitizeOnShutdown: true,
38+
},
39+
});
40+
await checkPrivacyPreferences({
41+
historyMode: true,
42+
privateBrowsingAutoStart: true,
43+
alwaysClear: true,
44+
rememberHistory: false,
45+
rememberForms: false,
46+
});
47+
});
48+
49+
add_task(async function test_sanitizeOnShutdown_object_locked_true() {
50+
await setupPolicyEngineWithJson({
51+
policies: {
52+
SanitizeOnShutdown: {
53+
History: true,
54+
Locked: true,
55+
},
56+
},
57+
});
58+
await checkPrivacyPreferences({
59+
historyMode: true,
60+
privateBrowsingAutoStart: true,
61+
alwaysClear: true,
62+
rememberHistory: false,
63+
rememberForms: false,
64+
});
65+
});
66+
67+
add_task(async function test_sanitizeOnShutdown_object_locked_false() {
68+
await setupPolicyEngineWithJson({
69+
policies: {
70+
SanitizeOnShutdown: {
71+
History: true,
72+
Locked: false,
73+
},
74+
},
75+
});
76+
await checkPrivacyPreferences({
77+
historyMode: false,
78+
privateBrowsingAutoStart: false,
79+
alwaysClear: false,
80+
rememberHistory: false,
81+
rememberForms: false,
82+
});
83+
});

‎browser/components/preferences/config/privacy.mjs‎

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2882,9 +2882,13 @@ Preferences.addSetting({
28822882
});
28832883
}
28842884
},
2885-
disabled({ privateBrowsingAutoStart }) {
2886-
// Disable history dropdown if PBM autostart is locked on.
2887-
return privateBrowsingAutoStart.locked && privateBrowsingAutoStart.value;
2885+
disabled({ privateBrowsingAutoStart, sanitizeOnShutdown }) {
2886+
// Disable history dropdown if PBM autostart is locked on, or if
2887+
// SanitizeOnShutdown policy locks clear-on-shutdown on (forces "custom").
2888+
return (
2889+
(privateBrowsingAutoStart.locked && privateBrowsingAutoStart.value) ||
2890+
(sanitizeOnShutdown.locked && sanitizeOnShutdown.value)
2891+
);
28882892
},
28892893
getControlConfig(config, { privateBrowsingAutoStart }, setting) {
28902894
let l10nId = null;
@@ -2938,6 +2942,9 @@ Preferences.addSetting({
29382942
visible({ historyMode }) {
29392943
return PrivateBrowsingUtils.enabled && historyMode.value == "custom";
29402944
},
2945+
disabled({ historyMode }) {
2946+
return historyMode.disabled;
2947+
},
29412948
});
29422949
Preferences.addSetting({
29432950
id: "rememberHistory",
@@ -2968,8 +2975,8 @@ Preferences.addSetting({
29682975
visible({ historyMode }) {
29692976
return historyMode.value == "custom";
29702977
},
2971-
disabled({ privateBrowsingAutoStart }) {
2972-
return privateBrowsingAutoStart.value;
2978+
disabled({ privateBrowsingAutoStart, historyMode }) {
2979+
return privateBrowsingAutoStart.value || historyMode.disabled;
29732980
},
29742981
});
29752982

0 commit comments

Comments
 (0)