Commit e528cec2 authored by Mike Kaply's avatar Mike Kaply
Browse files

Bug 1692159 - Disable saved password preference if disabled by policy....

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

Differential Revision: https://phabricator.services.mozilla.com/D115655
parent 510cae01
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1365,6 +1365,7 @@ var Policies = {
  OfferToSaveLogins: {
    onBeforeUIStartup(manager, param) {
      setAndLockPref("signon.rememberSignons", param);
      setAndLockPref("services.passwordSavingEnabled", param);
    },
  },

+1 −0
Original line number Diff line number Diff line
@@ -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]
+23 −0
Original line number Diff line number Diff line
/* 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"
      );
    }
  );
});
+3 −1
Original line number Diff line number Diff line
@@ -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);