Bug 1692159 - Disable saved password preference if disabled by policy. r=mixedpuppy,preferences-reviewers

Differential Revision: https://phabricator.services.mozilla.com/D115655
This commit is contained in:
Mike Kaply 2021-05-24 17:30:33 +00:00
parent 510cae01ca
commit e528cec2a2
4 changed files with 28 additions and 1 deletions

View File

@ -1365,6 +1365,7 @@ var Policies = {
OfferToSaveLogins: {
onBeforeUIStartup(manager, param) {
setAndLockPref("signon.rememberSignons", param);
setAndLockPref("services.passwordSavingEnabled", param);
},
},

View File

@ -47,6 +47,7 @@ skip-if = (verify && debug && (os == 'mac'))
[browser_policy_masterpassword.js]
[browser_policy_masterpassword_aboutlogins.js]
[browser_policy_masterpassword_doorhanger.js]
[browser_policy_offertosavelogins.js]
[browser_policy_override_postupdatepage.js]
[browser_policy_pageinfo_permissions.js]
[browser_policy_passwordmanager.js]

View File

@ -0,0 +1,23 @@
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
add_task(async function test_policy_offertosavelogins() {
await setupPolicyEngineWithJson({
policies: {
OfferToSaveLogins: false,
},
});
await BrowserTestUtils.withNewTab(
"about:preferences#privacy",
async browser => {
is(
browser.contentDocument.getElementById("savePasswords").disabled,
true,
"Save passwords is disabled"
);
}
);
});

View File

@ -288,7 +288,9 @@ async function initListenersForPrefChange(type, prefId, controlledElement) {
let managementObserver = async () => {
let managementControlled = await handleControllingExtension(type, prefId);
controlledElement.disabled = managementControlled;
// Enterprise policy may have locked the pref, so we need to preserve that
controlledElement.disabled =
managementControlled || Services.prefs.prefIsLocked(prefId);
};
managementObserver();
Management.on(`extension-setting-changed:${prefId}`, managementObserver);