Bug 1445991 - ensure prefs inited before autoconfig reload button updated; r=Gijs

Reorder the construction of Preference objects so network.proxy.autoconfig_url gets constructed before network.proxy.type, which will ensure that networkProxyAutoconfigURL is set to the value of network.proxy.autoconfig_url before network.proxy.type construction triggers the call to updateReloadButton.

MozReview-Commit-ID: BQL0RlvnCOo

--HG--
extra : rebase_source : c7d38192e87a5f69ef796d2c6d4dd3cc9f839bb3
This commit is contained in:
Myk Melez 2018-03-15 17:49:22 -07:00
Родитель a7ee94fcca
Коммит 7af81fab58
3 изменённых файлов: 34 добавлений и 1 удалений

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

@ -8,6 +8,10 @@
/* import-globals-from in-content/extensionControlled.js */
Preferences.addAll([
// Add network.proxy.autoconfig_url before network.proxy.type so they're
// both initialized when network.proxy.type initialization triggers a call to
// gConnectionsDialog.updateReloadButton().
{ id: "network.proxy.autoconfig_url", type: "string" },
{ id: "network.proxy.type", type: "int" },
{ id: "network.proxy.http", type: "string" },
{ id: "network.proxy.http_port", type: "int" },
@ -20,7 +24,6 @@ Preferences.addAll([
{ id: "network.proxy.socks_version", type: "int" },
{ id: "network.proxy.socks_remote_dns", type: "bool" },
{ id: "network.proxy.no_proxies_on", type: "string" },
{ id: "network.proxy.autoconfig_url", type: "string" },
{ id: "network.proxy.share_proxy_settings", type: "bool" },
{ id: "signon.autologin.proxy", type: "bool" },
{ id: "pref.advanced.proxies.disable_button.reload", type: "bool" },

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

@ -42,6 +42,7 @@ skip-if = os != "win" || (os == "win" && os_version == "6.1")
[browser_checkspelling.js]
[browser_connection.js]
[browser_connection_bug388287.js]
[browser_connection_bug1445991.js]
[browser_cookies_exceptions.js]
[browser_defaultbrowser_alwayscheck.js]
[browser_healthreport.js]

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

@ -0,0 +1,29 @@
/* 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() {
await SpecialPowers.pushPrefEnv({
set: [
["network.proxy.type", 2],
["network.proxy.autoconfig_url", "file:///nonexistent.pac"],
],
});
await openPreferencesViaOpenPreferencesAPI("general", { leaveOpen: true });
const connectionURL = "chrome://browser/content/preferences/connection.xul";
const promiseDialogLoaded = promiseLoadSubDialog(connectionURL);
// eslint-disable-next-line mozilla/no-cpows-in-tests
gBrowser.contentDocument.getElementById("connectionSettings").click();
const dialog = await promiseDialogLoaded;
ok(!dialog.document.getElementById("autoReload").disabled,
"Reload button is enabled when proxy type is autoconfig");
dialog.close();
gBrowser.removeCurrentTab();
});