Bug 1505330 - Only disable explicitly locked preferences. r=Gijs

Differential Revision: https://phabricator.services.mozilla.com/D33505

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Michael Kaply 2019-06-04 15:02:13 +00:00
Родитель 2d731ea4c9
Коммит 75a57c0d1a
3 изменённых файлов: 29 добавлений и 6 удалений

Просмотреть файл

@ -296,19 +296,15 @@ var gConnectionsDialog = {
pref => Services.prefs.prefIsLocked(pref));
function setInputsDisabledState(isControlled) {
let disabled = isLocked || isControlled;
for (let element of gConnectionsDialog.getProxyControls()) {
element.disabled = disabled;
}
if (!isLocked) {
gConnectionsDialog.proxyTypeChanged();
element.disabled = isControlled;
}
gConnectionsDialog.proxyTypeChanged();
}
if (isLocked) {
// An extension can't control this setting if any pref is locked.
hideControllingExtension(PROXY_KEY);
setInputsDisabledState(false);
} else {
handleControllingExtension(PREF_SETTING_TYPE, PROXY_KEY)
.then(setInputsDisabledState);

Просмотреть файл

@ -46,6 +46,7 @@ skip-if = os != "win" # Windows-specific handler application selection dialog
[browser_connection.js]
[browser_connection_bug388287.js]
[browser_connection_bug1445991.js]
[browser_connection_bug1505330.js]
skip-if = (verify && debug && (os == 'linux' || os == 'mac'))
[browser_connection_dnsoverhttps.js]
[browser_contentblocking_categories.js]

Просмотреть файл

@ -0,0 +1,26 @@
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
// Test the disabled status of the autoconfig Reload button when the proxy type
// is autoconfig (network.proxy.type == 2).
add_task(async function testAutoconfigReloadButton() {
Services.prefs.lockPref("signon.autologin.proxy");
await openPreferencesViaOpenPreferencesAPI("general", { leaveOpen: true });
const connectionURL = "chrome://browser/content/preferences/connection.xul";
const promiseDialogLoaded = promiseLoadSubDialog(connectionURL);
gBrowser.contentDocument.getElementById("connectionSettings").click();
const dialog = await promiseDialogLoaded;
ok(!dialog.document.getElementById("networkProxyType").firstChild.disabled,
"Connection options should not be disabled");
ok(dialog.document.getElementById("autologinProxy").disabled,
"Proxy autologin should be disabled");
dialog.close();
Services.prefs.unlockPref("signon.autologin.proxy");
gBrowser.removeCurrentTab();
});