commit f427f1b362ff2d33e68c1fb2252badc691b8ca7f Author: Sukhbir Singh sukhbir@torproject.org Date: Wed Nov 18 09:09:43 2015 -0500
Remove certificate settings patch merged upstream --- .../instantbird/certificate-settings-xul.patch | 1355 -------------------- projects/instantbird/config | 1 - 2 files changed, 1356 deletions(-)
diff --git a/projects/instantbird/certificate-settings-xul.patch b/projects/instantbird/certificate-settings-xul.patch deleted file mode 100644 index 7650cb8..0000000 --- a/projects/instantbird/certificate-settings-xul.patch +++ /dev/null @@ -1,1355 +0,0 @@ - -# HG changeset patch -# User Patrick Cloke clokep@gmail.com -# Date 1437737959 -7200 -# Node ID 0b348fa4d3448a8c341ba35f83ff51b8d00f6742 -# Parent 6962356b69b1fa7c71243cc934a8c67d9144ae7e -Bug 955738 - Port 'Bug 733632 - Remove TLS version UI (Options > Advanced > Encryption > Protocols)'. r=florian - -diff --git a/im/content/preferences/advanced.js b/im/content/preferences/advanced.js ---- a/im/content/preferences/advanced.js -+++ b/im/content/preferences/advanced.js -@@ -1,15 +1,20 @@ --# -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- -+# -*- indent-tabs-mode: nil; js-indent-level: 4 -*- - # This Source Code Form is subject to the terms of the Mozilla Public - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - - // Load DownloadUtils module for convertByteUnits - Components.utils.import("resource://gre/modules/DownloadUtils.jsm"); -+Components.utils.import("resource://gre/modules/ctypes.jsm"); -+Components.utils.import("resource://gre/modules/Services.jsm"); -+Components.utils.import("resource://gre/modules/LoadContextInfo.jsm"); -+Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); -+Components.utils.import("resource://gre/modules/BrowserUtils.jsm"); - - var gAdvancedPane = { - _inited: false, - - /** - * Brings the appropriate tab to the front and initializes various bits of UI. - */ - init: function () -@@ -23,35 +28,44 @@ var gAdvancedPane = { - } else { - var preference = document.getElementById("browser.preferences.advanced.selectedTabIndex"); - if (preference.value !== null) - advancedPrefs.selectedIndex = preference.value; - } - - this.updateConnectionGroupbox(); - #ifdef MOZ_UPDATER -- this.updateAppUpdateItems(); -- this.updateAutoItems(); -- this.updateModeItems(); -+ let onUnload = function () { -+ window.removeEventListener("unload", onUnload, false); -+ Services.prefs.removeObserver("app.update.", this); -+ }.bind(this); -+ window.addEventListener("unload", onUnload, false); -+ Services.prefs.addObserver("app.update.", this, false); -+ this.updateReadPrefs(); - #endif -+ -+ let bundlePrefs = document.getElementById("bundlePreferences"); -+ -+ // Notify observers that the UI is now ready -+ Services.obs.notifyObservers(window, "advanced-pane-loaded", null); - }, - - /** - * Stores the identity of the current tab in preferences so that the selected - * tab can be persisted between openings of the preferences window. - */ - tabSelectionChanged: function () - { - if (!this._inited) - return; - var advancedPrefs = document.getElementById("advancedPrefs"); - var preference = document.getElementById("browser.preferences.advanced.selectedTabIndex"); - preference.valueFromPreferences = advancedPrefs.selectedIndex; - }, -- -+ - // GENERAL TAB - - /* - * Preferences: - * - * accessibility.browsewithcaret - * - true enables keyboard navigation and selection within web pages using a - * visible caret, false uses normal keyboard navigation with no caret -@@ -110,31 +124,68 @@ var gAdvancedPane = { - var window = Services.wm.getMostRecentWindow("Browser:SearchManager"); - if (window) - window.focus(); - else { - openDialog("chrome://instantbird/content/engineManager.xul", - "_blank", "chrome,dialog,modal,centerscreen"); - } - }, -- -+ - showConfigEdit: function() - { - document.documentElement.openWindow("Preferences:ConfigManager", - "chrome://global/content/config.xul", - "", null); - }, - -+ /** -+ * security.OCSP.enabled is an integer value for legacy reasons. -+ * A value of 1 means OCSP is enabled. Any other value means it is disabled. -+ */ -+ readEnableOCSP: function () -+ { -+ var preference = document.getElementById("security.OCSP.enabled"); -+ // This is the case if the preference is the default value. -+ if (preference.value === undefined) { -+ return true; -+ } -+ return preference.value == 1; -+ }, -+ -+ /** -+ * See documentation for readEnableOCSP. -+ */ -+ writeEnableOCSP: function () -+ { -+ var checkbox = document.getElementById("enableOCSP"); -+ return checkbox.checked ? 1 : 0; -+ }, -+ -+ /** -+ * When the user toggles the layers.acceleration.disabled pref, -+ * sync its new value to the gfx.direct2d.disabled pref too. -+ */ -+ updateHardwareAcceleration: function() -+ { -+#ifdef XP_WIN -+ var fromPref = document.getElementById("layers.acceleration.disabled"); -+ var toPref = document.getElementById("gfx.direct2d.disabled"); -+ toPref.value = fromPref.value; -+#endif -+ }, -+ - // NETWORK TAB - - /* - * Preferences: - * - * browser.cache.disk.capacity - * - the size of the browser cache in KB -+ * - Only used if browser.cache.disk.smart_size.enabled is disabled - */ - - /** - * Displays a dialog in which proxy settings may be changed. - */ - showConnections: function () - { - document.documentElement.openSubDialog("chrome://instantbird/content/preferences/connection.xul", -@@ -185,92 +236,137 @@ var gAdvancedPane = { - * app.update.mode - * - an integer: - * 0 do not warn if an update will disable extensions or themes - * 1 warn if an update will disable extensions or themes - * 2 warn if an update will disable extensions or themes *or* if the - * update is a major update - */ - -+#ifdef MOZ_UPDATER - /** -- * Enables and disables various UI preferences as necessary to reflect locked, -- * disabled, and checked/unchecked states. -+ * Selects the item of the radiogroup, and sets the warnIncompatible checkbox -+ * based on the pref values and locked states. - * - * UI state matrix for update preference conditions -- * -- * UI Components: Preferences -- * 1 = Firefox checkbox i = app.update.enabled -- * 2 = When updates for Firefox are found label ii = app.update.auto -- * 3 = Automatic Radiogroup (Ask vs. Automatically) iii = app.update.mode -- * 4 = Warn before disabling extensions checkbox -- * -- * States: -- * Element p val locked Disabled -- * 1 i t/f f false -- * i t/f t true -- * ii t/f t/f false -- * iii 0/1/2 t/f false -- * 2,3 i t t/f false -- * i f t/f true -- * ii t/f f false -- * ii t/f t true -- * iii 0/1/2 t/f false -- * 4 i t t/f false -- * i f t/f true -- * ii t t/f false -- * ii f t/f true -- * iii 0/1/2 f false -- * iii 0/1/2 t true -- * -+ * -+ * UI Components: Preferences -+ * Radiogroup i = app.update.enabled -+ * Warn before disabling extensions checkbox ii = app.update.auto -+ * iii = app.update.mode -+ * -+ * Disabled states: -+ * Element pref value locked disabled -+ * radiogroup i t/f f false -+ * i t/f *t* *true* -+ * ii t/f f false -+ * ii t/f *t* *true* -+ * iii 0/1/2 t/f false -+ * warnIncompatible i t f false -+ * i t *t* *true* -+ * i *f* t/f *true* -+ * ii t f false -+ * ii t *t* *true* -+ * ii *f* t/f *true* -+ * iii 0/1/2 f false -+ * iii 0/1/2 *t* *true* - */ --#ifdef MOZ_UPDATER -- updateAppUpdateItems: function () -+ updateReadPrefs: function () - { -- var aus = -- Components.classes["@mozilla.org/updates/update-service;1"]. -- getService(Components.interfaces.nsIApplicationUpdateService); -+ var enabledPref = document.getElementById("app.update.enabled"); -+ var autoPref = document.getElementById("app.update.auto"); -+ var radiogroup = document.getElementById("updateRadioGroup"); - -- var enabledPref = document.getElementById("app.update.enabled"); -- var enableAppUpdate = document.getElementById("enableAppUpdate"); -+ if (!enabledPref.value) // Don't care for autoPref.value in this case. -+ radiogroup.value="manual"; // 3. Never check for updates. -+ else if (autoPref.value) // enabledPref.value && autoPref.value -+ radiogroup.value="auto"; // 1. Automatically install updates for Desktop only -+ else // enabledPref.value && !autoPref.value -+ radiogroup.value="checkOnly"; // 2. Check, but let me choose - -- enableAppUpdate.disabled = !aus.canCheckForUpdates || enabledPref.locked; -+ var canCheck = Components.classes["@mozilla.org/updates/update-service;1"]. -+ getService(Components.interfaces.nsIApplicationUpdateService). -+ canCheckForUpdates; -+ // canCheck is false if the enabledPref is false and locked, -+ // or the binary platform or OS version is not known. -+ // A locked pref is sufficient to disable the radiogroup. -+ radiogroup.disabled = !canCheck || enabledPref.locked || autoPref.locked; -+ -+ var modePref = document.getElementById("app.update.mode"); -+ var warnIncompatible = document.getElementById("warnIncompatible"); -+ // the warnIncompatible checkbox value is set by readAddonWarn -+ warnIncompatible.disabled = radiogroup.disabled || modePref.locked || -+ !enabledPref.value || !autoPref.value; -+ -+#ifdef MOZ_MAINTENANCE_SERVICE -+ // Check to see if the maintenance service is installed. -+ // If it is don't show the preference at all. -+ var installed; -+ try { -+ var wrk = Components.classes["@mozilla.org/windows-registry-key;1"] -+ .createInstance(Components.interfaces.nsIWindowsRegKey); -+ wrk.open(wrk.ROOT_KEY_LOCAL_MACHINE, -+ "SOFTWARE\Mozilla\MaintenanceService", -+ wrk.ACCESS_READ | wrk.WOW64_64); -+ installed = wrk.readIntValue("Installed"); -+ wrk.close(); -+ } catch(e) { -+ } -+ if (installed != 1) { -+ document.getElementById("useService").hidden = true; -+ } -+ try { -+ const DRIVE_FIXED = 3; -+ const LPCWSTR = ctypes.char16_t.ptr; -+ const UINT = ctypes.uint32_t; -+ let kernel32 = ctypes.open("kernel32"); -+ let GetDriveType = kernel32.declare("GetDriveTypeW", ctypes.default_abi, UINT, LPCWSTR); -+ var UpdatesDir = Components.classes["@mozilla.org/updates/update-service;1"]. -+ getService(Components.interfaces.nsIApplicationUpdateService); -+ let rootPath = UpdatesDir.getUpdatesDirectory(); -+ while (rootPath.parent != null) { -+ rootPath = rootPath.parent; -+ } -+ if (GetDriveType(rootPath.path) != DRIVE_FIXED) { -+ document.getElementById("useService").hidden = true; -+ } -+ kernel32.close(); -+ } catch(e) { -+ } -+#endif - }, - - /** -- * Enables/disables UI for "when updates are found" based on the values, -- * and "locked" states of associated preferences. -+ * Sets the pref values based on the selected item of the radiogroup, -+ * and sets the disabled state of the warnIncompatible checkbox accordingly. - */ -- updateAutoItems: function () -- { -- var enabledPref = document.getElementById("app.update.enabled"); -- var autoPref = document.getElementById("app.update.auto"); -- -- var updateModeLabel = document.getElementById("updateModeLabel"); -- var updateMode = document.getElementById("updateMode"); -- -- var disable = enabledPref.locked || !enabledPref.value || -- autoPref.locked; -- updateModeLabel.disabled = updateMode.disabled = disable; -- }, -- -- /** -- * Enables/disables the "warn if incompatible extensions/themes exist" UI -- * based on the values and "locked" states of various preferences. -- */ -- updateModeItems: function () -+ updateWritePrefs: function () - { - var enabledPref = document.getElementById("app.update.enabled"); - var autoPref = document.getElementById("app.update.auto"); - var modePref = document.getElementById("app.update.mode"); -- -+ var radiogroup = document.getElementById("updateRadioGroup"); -+ switch (radiogroup.value) { -+ case "auto": // 1. Automatically install updates for Desktop only -+ enabledPref.value = true; -+ autoPref.value = true; -+ break; -+ case "checkOnly": // 2. Check, but let me choose -+ enabledPref.value = true; -+ autoPref.value = false; -+ break; -+ case "manual": // 3. Never check for updates. -+ enabledPref.value = false; -+ autoPref.value = false; -+ } -+ - var warnIncompatible = document.getElementById("warnIncompatible"); -- -- var disable = enabledPref.locked || !enabledPref.value || autoPref.locked || -- !autoPref.value || modePref.locked; -- warnIncompatible.disabled = disable; -+ warnIncompatible.disabled = enabledPref.locked || !enabledPref.value || -+ autoPref.locked || !autoPref.value || -+ modePref.locked; - }, - - /** - * Stores the value of the app.update.mode preference, which is a tristate - * integer preference. We store the value here so that we can properly - * restore the preference value if the UI reflecting the preference value - * is in a state which can represent either of two integer values (as - * opposed to only one possible value in the other UI state). -@@ -279,28 +375,28 @@ var gAdvancedPane = { - - /** - * Reads the app.update.mode preference and converts its value into a - * true/false value for use in determining whether the "Warn me if this will - * disable extensions or themes" checkbox is checked. We also save the value - * of the preference so that the preference value can be properly restored if - * the user's preferences cannot adequately be expressed by a single checkbox. - * -- * app.update.modee Checkbox State Meaning -+ * app.update.mode Checkbox State Meaning - * 0 Unchecked Do not warn - * 1 Checked Warn if there are incompatibilities - * 2 Checked Warn if there are incompatibilities, - * or the update is major. - */ - readAddonWarn: function () - { - var preference = document.getElementById("app.update.mode"); -- var doNotWarn = preference.value != 0; -- gAdvancedPane._modePreference = doNotWarn ? preference.value : 1; -- return doNotWarn; -+ var warn = preference.value != 0; -+ gAdvancedPane._modePreference = warn ? preference.value : 1; -+ return warn; - }, - - /** - * Converts the state of the "Warn me if this will disable extensions or - * themes" checkbox into the integer preference which represents it, - * returning that value. - */ - writeAddonWarn: function () -@@ -315,37 +411,21 @@ var gAdvancedPane = { - showUpdates: function () - { - var prompter = Components.classes["@mozilla.org/updates/update-prompt;1"] - .createInstance(Components.interfaces.nsIUpdatePrompt); - prompter.showUpdateHistory(window); - }, - #endif - -- /** -- * The Extensions checkbox and button are disabled only if the enable Addon -- * update preference is locked. -- */ -- updateAddonUpdateUI: function () -- { -- var enabledPref = document.getElementById("extensions.update.enabled"); -- var enableAddonUpdate = document.getElementById("enableAddonUpdate"); -- -- enableAddonUpdate.disabled = enabledPref.locked; -- }, -- - // ENCRYPTION TAB - - /* - * Preferences: - * -- * security.enable_ssl3 -- * - true if SSL 3 encryption is enabled, false otherwise -- * security.enable_tls -- * - true if TLS encryption is enabled, false otherwise - * security.default_personal_cert - * - a string: - * "Select Automatically" select a certificate automatically when a site - * requests one - * "Ask Every Time" present a dialog to the user so he can select - * the certificate to use on a site which - * requests one - */ -@@ -356,71 +436,27 @@ var gAdvancedPane = { - showCertificates: function () - { - document.documentElement.openWindow("mozilla:certmanager", - "chrome://pippki/content/certManager.xul", - "", null); - }, - - /** -- * Displays a dialog in which OCSP preferences can be configured. -- */ -- showOCSP: function () -- { -- document.documentElement.openSubDialog("chrome://mozapps/content/preferences/ocsp.xul", -- "", null); -- }, -- -- /** - * Displays a dialog from which the user can manage his security devices. - */ - showSecurityDevices: function () - { - document.documentElement.openWindow("mozilla:devicemanager", - "chrome://pippki/content/device_manager.xul", - "", null); -- } --#ifdef HAVE_SHELL_SERVICE -- , -+ }, - -- // SYSTEM DEFAULTS -- -- /* -- * Preferences: -- * -- * browser.shell.checkDefault -- * - true if a default-browser check (and prompt to make it so if necessary) -- * occurs at startup, false otherwise -- */ -- -- /** -- * Checks whether the browser is currently registered with the operating -- * system as the default browser. If the browser is not currently the -- * default browser, the user is given the option of making it the default; -- * otherwise, the user is informed that this browser already is the browser. -- */ -- checkNow: function () -- { -- var shellSvc = Components.classes["@mozilla.org/browser/shell-service;1"] -- .getService(Components.interfaces.nsIShellService); -- var brandBundle = document.getElementById("bundleBrand"); -- var shellBundle = document.getElementById("bundleShell"); -- var brandShortName = brandBundle.getString("brandShortName"); -- var promptTitle = shellBundle.getString("setDefaultBrowserTitle"); -- var promptMessage; -- var psvc = Services.prompt; -- if (!shellSvc.isDefaultBrowser(false)) { -- promptMessage = shellBundle.getFormattedString("setDefaultBrowserMessage", -- [brandShortName]); -- var rv = psvc.confirmEx(window, promptTitle, promptMessage, -- psvc.STD_YES_NO_BUTTONS, -- null, null, null, null, { }); -- if (rv == 0) -- shellSvc.setDefaultBrowser(true, false); -+#ifdef MOZ_UPDATER -+ observe: function (aSubject, aTopic, aData) { -+ switch(aTopic) { -+ case "nsPref:changed": -+ this.updateReadPrefs(); -+ break; - } -- else { -- promptMessage = shellBundle.getFormattedString("alreadyDefaultBrowser", -- [brandShortName]); -- psvc.alert(window, promptTitle, promptMessage); -- } -- } -+ }, - #endif - }; -diff --git a/im/content/preferences/advanced.xul b/im/content/preferences/advanced.xul ---- a/im/content/preferences/advanced.xul -+++ b/im/content/preferences/advanced.xul -@@ -24,81 +24,85 @@ - name="browser.preferences.advanced.selectedTabIndex" - type="int"/> - - <!--XXX button prefs --> - - <!-- General tab --> - <preference id="accessibility.browsewithcaret" name="accessibility.browsewithcaret" type="bool"/> - <preference id="accessibility.typeaheadfind" name="accessibility.typeaheadfind" type="bool"/> -+ <preference id="accessibility.blockautorefresh" name="accessibility.blockautorefresh" type="bool"/> - - <preference id="general.autoScroll" name="general.autoScroll" type="bool"/> - <preference id="general.smoothScroll" name="general.smoothScroll" type="bool"/> -+ <preference id="layers.acceleration.disabled" name="layers.acceleration.disabled" type="bool" inverted="true" -+ onchange="gAdvancedPane.updateHardwareAcceleration()"/> -+#ifdef XP_WIN -+ <preference id="gfx.direct2d.disabled" name="gfx.direct2d.disabled" type="bool" inverted="true"/> -+#endif - <preference id="layout.spellcheckDefault" name="layout.spellcheckDefault" type="int"/> - --#ifdef HAVE_SHELL_SERVICE -- <preference id="browser.shell.checkDefaultBrowser" -- name="browser.shell.checkDefaultBrowser" -+ <!-- Network tab --> -+ <preference id="browser.cache.disk.capacity" name="browser.cache.disk.capacity" type="int"/> -+ <preference id="browser.offline-apps.notify" name="browser.offline-apps.notify" type="bool"/> -+ -+ <preference id="browser.cache.disk.smart_size.enabled" -+ name="browser.cache.disk.smart_size.enabled" -+ inverted="true" - type="bool"/> - -- <preference id="pref.general.disable_button.default_browser" -- name="pref.general.disable_button.default_browser" -- type="bool"/> --#endif -- -- <!-- Update tab --> -+ <!-- Update tab --> - #ifdef MOZ_UPDATER -- <preference id="app.update.enabled" name="app.update.enabled" type="bool" -- onchange="gAdvancedPane.updateAppUpdateItems(); -- gAdvancedPane.updateAutoItems(); -- gAdvancedPane.updateModeItems();"/> -- <preference id="app.update.auto" name="app.update.auto" type="bool" -- onchange="gAdvancedPane.updateAutoItems(); -- gAdvancedPane.updateModeItems();"/> -- <preference id="app.update.mode" name="app.update.mode" type="int" -- onchange="gAdvancedPane.updateModeItems();"/> -+ <preference id="app.update.enabled" name="app.update.enabled" type="bool"/> -+ <preference id="app.update.auto" name="app.update.auto" type="bool"/> -+ <preference id="app.update.mode" name="app.update.mode" type="int"/> - - <preference id="app.update.disable_button.showUpdateHistory" - name="app.update.disable_button.showUpdateHistory" - type="bool"/> -+ -+#ifdef MOZ_MAINTENANCE_SERVICE -+ <preference id="app.update.service.enabled" -+ name="app.update.service.enabled" -+ type="bool"/> -+#endif - #endif - -- <preference id="extensions.update.enabled" name="extensions.update.enabled" type="bool" -- onchange="gAdvancedPane.updateAddonUpdateUI();"/> - <preference id="browser.search.update" name="browser.search.update" type="bool"/> - -- <!-- Encryption tab --> -- <preference id="security.enable_ssl3" name="security.enable_ssl3" type="bool"/> -- <preference id="security.enable_tls" name="security.enable_tls" type="bool"/> -- -+ <!-- Certificates tab --> - <preference id="security.default_personal_cert" name="security.default_personal_cert" type="string"/> - - <preference id="security.disable_button.openCertManager" - name="security.disable_button.openCertManager" - type="bool"/> - <preference id="security.disable_button.openDeviceManager" - name="security.disable_button.openDeviceManager" - type="bool"/> -+ <preference id="security.OCSP.enabled" -+ name="security.OCSP.enabled" -+ type="int"/> - </preferences> -- -+ - #ifdef HAVE_SHELL_SERVICE - <stringbundle id="bundleShell" src="chrome://browser/locale/shellservice.properties"/> - <stringbundle id="bundleBrand" src="chrome://branding/locale/brand.properties"/> - #endif -+ <stringbundle id="bundlePreferences" src="chrome://instantbird/locale/preferences/preferences.properties"/> - - <script type="application/javascript" src="chrome://instantbird/content/preferences/advanced.js"/> - - <tabbox id="advancedPrefs" flex="1" - onselect="gAdvancedPane.tabSelectionChanged();"> - - <tabs id="tabsElement"> - <tab id="generalTab" label="&generalTab.label;"/> - <tab id="networkTab" label="&networkTab.label;"/> - <tab id="updateTab" label="&updateTab.label;"/> -- <tab id="encryptionTab" label="&encryptionTab.label;"/> -+ <tab id="encryptionTab" label="&certificateTab.label;"/> - </tabs> - - <tabpanels flex="1"> - - <!-- General --> - <tabpanel id="generalPanel" orient="vertical"> - - <!-- Accessibility --> -@@ -122,16 +126,20 @@ - <checkbox id="useAutoScroll" - label="&useAutoScroll.label;" - accesskey="&useAutoScroll.accesskey;" - preference="general.autoScroll"/> - <checkbox id="useSmoothScrolling" - label="&useSmoothScrolling.label;" - accesskey="&useSmoothScrolling.accesskey;" - preference="general.smoothScroll"/> -+ <checkbox id="allowHWAccel" -+ label="&allowHWAccel.label;" -+ accesskey="&allowHWAccel.accesskey;" -+ preference="layers.acceleration.disabled"/> - <checkbox id="checkSpelling" - label="&checkSpelling.label;" - accesskey="&checkSpelling.accesskey;" - onsyncfrompreference="return gAdvancedPane.readCheckSpelling();" - onsynctopreference="return gAdvancedPane.writeCheckSpelling();" - preference="layout.spellcheckDefault"/> - </groupbox> - -@@ -141,33 +149,16 @@ - - <description control="manageSearchEnginesButton" - flex="1">&searchEnginesDesc.label;</description> - <button id="manageSearchEnginesButton" label="&searchEngines.label;" - accesskey="&searchEngines.accesskey;" - oncommand="gAdvancedPane.showSearchEngineManager();"/> - </groupbox> - --#ifdef HAVE_SHELL_SERVICE -- <!-- System Defaults --> -- <groupbox id="systemDefaultsGroup" orient="horizontal"> -- <caption label="&systemDefaults.label;"/> -- -- <hbox id="checkDefaultBox" align="center" flex="1"> -- <checkbox id="alwaysCheckDefault" preference="browser.shell.checkDefaultBrowser" -- label="&alwaysCheckDefault.label;" accesskey="&alwaysCheckDefault.accesskey;" -- flex="1"/> -- <button id="checkDefaultButton" -- label="&checkNow.label;" accesskey="&checkNow.accesskey;" -- oncommand="gAdvancedPane.checkNow()" -- preference="pref.general.disable_button.default_browser"/> -- </hbox> -- </groupbox> --#endif -- - <!-- Advanced Configuration --> - <groupbox> - <caption label="&configEditDesc.label;"/> - <hbox pack="end"> - <button id="configEditor" label="&configEdit.label;" - accesskey="&configEdit.accesskey;" - oncommand="gAdvancedPane.showConfigEdit();"/> - </hbox> -@@ -201,134 +192,113 @@ - <hbox align="center" id="mozillaConnectionBox"> - <description id="mozConnLabelWithoutLibpurple" flex="1" control="connectionSettings">&connectionDesc.label;</description> - <description id="mozConnLabelWithLibpurple" flex="1" control="connectionSettings">&connectionOtherDesc.label;</description> - <button id="connectionSettings" icon="network" label="&connectionSettings.label;" - accesskey="&connectionSettings2.accesskey;" - oncommand="gAdvancedPane.showConnections();"/> - </hbox> - </groupbox> -+ -+ <!-- Porting Note: -+ - The Cache and Offline apps section (+ related strings and -+ - JavaScript methods) have been removed. --> - </tabpanel> - - <!-- Update --> -- <tabpanel id="updatePanel" orient="vertical" align="start"> -- <label control="autoUpdateGroup">&autoCheck.label;</label> -- <vbox class="indent" id="autoUpdateGroup" role="group"> -+ <tabpanel id="updatePanel" orient="vertical"> - #ifdef MOZ_UPDATER -- <checkbox id="enableAppUpdate" -- label="&enableAppUpdate.label;" -- accesskey="&enableAppUpdate.accesskey;" -- preference="app.update.enabled"/> -+ <groupbox id="updateApp"> -+ <caption label="&updateApp.label;"/> -+ <radiogroup id="updateRadioGroup" -+ oncommand="gAdvancedPane.updateWritePrefs();"> -+ <radio id="autoDesktop" -+ value="auto" -+ label="&updateAuto1.label;" -+ accesskey="&updateAuto1.accesskey;"/> -+ <hbox class="indent"> -+ <checkbox id="warnIncompatible" -+ label="&updateAutoAddonWarn.label;" -+ accesskey="&updateAutoAddonWarn.accesskey;" -+ preference="app.update.mode" -+ onsyncfrompreference="return gAdvancedPane.readAddonWarn();" -+ onsynctopreference="return gAdvancedPane.writeAddonWarn();"/> -+ </hbox> -+ <radio value="checkOnly" -+ label="&updateCheck.label;" -+ accesskey="&updateCheck.accesskey;"/> -+ <radio value="manual" -+ label="&updateManual.label;" -+ accesskey="&updateManual.accesskey;"/> -+ </radiogroup> -+ -+ <hbox> -+ <button id="showUpdateHistory" -+ label="&updateHistory.label;" -+ accesskey="&updateHistory.accesskey;" -+ preference="app.update.disable_button.showUpdateHistory" -+ oncommand="gAdvancedPane.showUpdates();"/> -+ </hbox> -+ -+#ifdef MOZ_MAINTENANCE_SERVICE -+ <checkbox id="useService" -+ label="&useService.label;" -+ accesskey="&useService.accesskey;" -+ preference="app.update.service.enabled"/> - #endif -- <checkbox id="enableAddonUpdate" -- label="&enableAddonsUpdate.label;" -- accesskey="&enableAddonsUpdate.accesskey;" -- preference="extensions.update.enabled"/> -+ </groupbox> -+#endif -+ <groupbox id="updateOthers"> -+ <caption label="&updateOthers.label;"/> - <checkbox id="enableSearchUpdate" - label="&enableSearchUpdate.label;" - accesskey="&enableSearchUpdate.accesskey;" - preference="browser.search.update"/> -- </vbox> -- --#ifdef MOZ_UPDATER -- <separator id="updateSeparator1"/> -- -- <label id="updateModeLabel" control="updateMode">&whenUpdatesFound.label;</label> -- <radiogroup id="updateMode" class="indent" -- preference="app.update.auto"> -- <radio id="ask" value="false" -- label="&askMe.label;" -- accesskey="&askMe.accesskey;"/> -- <radio id="automatic" value="true" -- label="&modeAutomatic.label;" -- accesskey="&modeAutomatic.accesskey;"/> -- <hbox class="indent"> -- <checkbox id="warnIncompatible" -- label="&modeAutoAddonWarn.label;" accesskey="&modeAutoAddonWarn.accesskey;" -- preference="app.update.mode" -- onsyncfrompreference="return gAdvancedPane.readAddonWarn();" -- onsynctopreference="return gAdvancedPane.writeAddonWarn();"/> -- </hbox> -- </radiogroup> -- -- <separator id="updateSeparator2"/> -- -- <hbox> -- <button id="showUpdateHistory" -- label="&updateHistory.label;" accesskey="&updateHistory.accesskey;" -- preference="app.update.disable_button.showUpdateHistory" -- oncommand="gAdvancedPane.showUpdates();"/> -- </hbox> --#endif -+ </groupbox> - </tabpanel> - -- <!-- Encryption --> -+ <!-- Certificates --> - <tabpanel id="encryptionPanel" orient="vertical"> - -- <!-- Protocols --> -- <groupbox id="protocolsGroup"> -- <caption label="&protocols.label;"/> -- -- <grid> -- <columns> -- <column flex="1"/> -- <column flex="1"/> -- </columns> -- <rows> -- <row> -- <hbox> -- <checkbox id="useSSL3" label="&useSSL3.label;" -- accesskey="&useSSL3.accesskey;" -- preference="security.enable_ssl3"/> -- </hbox> -- <hbox> -- <checkbox id="useTLS1" label="&useTLS1.label;" -- accesskey="&useTLS1.accesskey;" -- preference="security.enable_tls"/> -- </hbox> -- </row> -- </rows> -- </grid> -- </groupbox> -- -- <!-- Certificates --> -- <groupbox id="certificatesGroup"> -- <caption id="CertGroupCaption" label="&certificates.label;"/> -- - <description id="CertSelectionDesc" control="certSelection">&certSelection.description;</description> - - <!-- - The values on these radio buttons may look like l12y issues, but - they're not - this preference uses *those strings* as its values. - I KID YOU NOT. - --> - <radiogroup id="certSelection" orient="horizontal" preftype="string" - preference="security.default_personal_cert" -- aria-labelledby="CertGroupCaption CertSelectionDesc"> -- <radio label="&certs.auto;" accesskey="&certs.auto.accesskey;" -+ aria-labelledby="CertSelectionDesc"> -+ <radio label="&certs.auto;" accesskey="&certs.auto.accesskey;" - value="Select Automatically"/> -- <radio label="&certs.ask;" accesskey="&certs.ask.accesskey;" -+ <radio label="&certs.ask;" accesskey="&certs.ask.accesskey;" - value="Ask Every Time"/> - </radiogroup> - - <separator/> - -+ <checkbox id="enableOCSP" -+ label="&enableOCSP.label;" -+ accesskey="&enableOCSP.accesskey;" -+ onsyncfrompreference="return gAdvancedPane.readEnableOCSP();" -+ onsynctopreference="return gAdvancedPane.writeEnableOCSP();" -+ preference="security.OCSP.enabled"/> -+ -+ <separator/> -+ - <hbox> - <button id="viewCertificatesButton" -- label="&viewCerts.label;" accesskey="&viewCerts.accesskey;" -+ label="&viewCerts.label;" accesskey="&viewCerts.accesskey;" - oncommand="gAdvancedPane.showCertificates();" - preference="security.disable_button.openCertManager"/> -- <button id="verificationButton" -- label="&verify2.label;" accesskey="&verify2.accesskey;" -- oncommand="gAdvancedPane.showOCSP();"/> - <button id="viewSecurityDevicesButton" - label="&viewSecurityDevices.label;" accesskey="&viewSecurityDevices.accesskey;" - oncommand="gAdvancedPane.showSecurityDevices();" - preference="security.disable_button.openDeviceManager"/> - </hbox> -- </groupbox> - </tabpanel> - - </tabpanels> - </tabbox> - </prefpane> - - </overlay> -diff --git a/im/content/preferences/connection.js b/im/content/preferences/connection.js ---- a/im/content/preferences/connection.js -+++ b/im/content/preferences/connection.js -@@ -1,91 +1,117 @@ -+/* -*- indent-tabs-mode: nil; js-indent-level: 4 -*- */ - /* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - --Components.utils.import("resource:///modules/imServices.jsm"); -- - var gConnectionsDialog = { - beforeAccept: function () - { - var proxyTypePref = document.getElementById("network.proxy.type"); - if (proxyTypePref.value == 2) { - this.doAutoconfigURLFixup(); - return true; - } - - if (proxyTypePref.value != 1) - return true; - - var httpProxyURLPref = document.getElementById("network.proxy.http"); - var httpProxyPortPref = document.getElementById("network.proxy.http_port"); - var shareProxiesPref = document.getElementById("network.proxy.share_proxy_settings"); -+ -+ // If the port is 0 and the proxy server is specified, focus on the port and cancel submission. -+ for (let prefName of ["http","ssl","ftp","socks"]) { -+ let proxyPortPref = document.getElementById("network.proxy." + prefName + "_port"); -+ let proxyPref = document.getElementById("network.proxy." + prefName); -+ // Only worry about ports which are currently active. If the share option is on, then ignore -+ // all ports except the HTTP port -+ if (proxyPref.value != "" && proxyPortPref.value == 0 && -+ (prefName == "http" || !shareProxiesPref.value)) { -+ document.getElementById("networkProxy" + prefName.toUpperCase() + "_Port").focus(); -+ return false; -+ } -+ } -+ -+ // In the case of a shared proxy preference, backup the current values and update with the HTTP value - if (shareProxiesPref.value) { -- var proxyPrefs = ["ssl", "ftp", "socks", "gopher"]; -+ var proxyPrefs = ["ssl", "ftp", "socks"]; - for (var i = 0; i < proxyPrefs.length; ++i) { - var proxyServerURLPref = document.getElementById("network.proxy." + proxyPrefs[i]); - var proxyPortPref = document.getElementById("network.proxy." + proxyPrefs[i] + "_port"); - var backupServerURLPref = document.getElementById("network.proxy.backup." + proxyPrefs[i]); - var backupPortPref = document.getElementById("network.proxy.backup." + proxyPrefs[i] + "_port"); -- backupServerURLPref.value = proxyServerURLPref.value; -- backupPortPref.value = proxyPortPref.value; -+ backupServerURLPref.value = backupServerURLPref.value || proxyServerURLPref.value; -+ backupPortPref.value = backupPortPref.value || proxyPortPref.value; - proxyServerURLPref.value = httpProxyURLPref.value; - proxyPortPref.value = httpProxyPortPref.value; - } - } - -- var noProxiesPref = document.getElementById("network.proxy.no_proxies_on"); -- noProxiesPref.value = noProxiesPref.value.replace(/[;]/g,','); -+ this.sanitizeNoProxiesPref(); - - return true; - }, - - checkForSystemProxy: function () - { - if ("@mozilla.org/system-proxy-settings;1" in Components.classes) - document.getElementById("systemPref").removeAttribute("hidden"); - }, - - proxyTypeChanged: function () - { - var proxyTypePref = document.getElementById("network.proxy.type"); -- -+ - // Update http - var httpProxyURLPref = document.getElementById("network.proxy.http"); - httpProxyURLPref.disabled = proxyTypePref.value != 1; - var httpProxyPortPref = document.getElementById("network.proxy.http_port"); - httpProxyPortPref.disabled = proxyTypePref.value != 1; - - // Now update the other protocols - this.updateProtocolPrefs(); - - var shareProxiesPref = document.getElementById("network.proxy.share_proxy_settings"); - shareProxiesPref.disabled = proxyTypePref.value != 1; -- -+ var autologinProxyPref = document.getElementById("signon.autologin.proxy"); -+ autologinProxyPref.disabled = proxyTypePref.value == 0; - var noProxiesPref = document.getElementById("network.proxy.no_proxies_on"); - noProxiesPref.disabled = proxyTypePref.value != 1; -- -+ - var autoconfigURLPref = document.getElementById("network.proxy.autoconfig_url"); - autoconfigURLPref.disabled = proxyTypePref.value != 2; - - this.updateReloadButton(); - }, -- -+ -+ updateDNSPref: function () -+ { -+ var socksVersionPref = document.getElementById("network.proxy.socks_version"); -+ var socksDNSPref = document.getElementById("network.proxy.socks_remote_dns"); -+ var proxyTypePref = document.getElementById("network.proxy.type"); -+ var isDefinitelySocks4 = !socksVersionPref.disabled && socksVersionPref.value == 4; -+ socksDNSPref.disabled = (isDefinitelySocks4 || proxyTypePref.value == 0); -+ return undefined; -+ }, -+ - updateReloadButton: function () - { - // Disable the "Reload PAC" button if the selected proxy type is not PAC or - // if the current value of the PAC textbox does not match the value stored - // in prefs. Likewise, disable the reload button if PAC is not configured - // in prefs. - - var typedURL = document.getElementById("networkProxyAutoconfigURL").value; - var proxyTypeCur = document.getElementById("network.proxy.type").value; - -- var prefs = Services.prefs; -+ var prefs = -+ Components.classes["@mozilla.org/preferences-service;1"]. -+ getService(Components.interfaces.nsIPrefBranch); - var pacURL = prefs.getCharPref("network.proxy.autoconfig_url"); - var proxyType = prefs.getIntPref("network.proxy.type"); - - var disableReloadPref = - document.getElementById("pref.advanced.proxies.disable_button.reload"); - disableReloadPref.disabled = - (proxyTypeCur != 2 || proxyType != 2 || typedURL != pacURL); - }, -@@ -95,17 +121,17 @@ var gConnectionsDialog = { - this.proxyTypeChanged(); - return undefined; - }, - - updateProtocolPrefs: function () - { - var proxyTypePref = document.getElementById("network.proxy.type"); - var shareProxiesPref = document.getElementById("network.proxy.share_proxy_settings"); -- var proxyPrefs = ["ssl", "ftp", "socks", "gopher"]; -+ var proxyPrefs = ["ssl", "ftp", "socks"]; - for (var i = 0; i < proxyPrefs.length; ++i) { - var proxyServerURLPref = document.getElementById("network.proxy." + proxyPrefs[i]); - var proxyPortPref = document.getElementById("network.proxy." + proxyPrefs[i] + "_port"); - - // Restore previous per-proxy custom settings, if present. - if (!shareProxiesPref.value) { - var backupServerURLPref = document.getElementById("network.proxy.backup." + proxyPrefs[i]); - var backupPortPref = document.getElementById("network.proxy.backup." + proxyPrefs[i] + "_port"); -@@ -121,17 +147,17 @@ var gConnectionsDialog = { - - proxyServerURLPref.updateElements(); - proxyPortPref.updateElements(); - proxyServerURLPref.disabled = proxyTypePref.value != 1 || shareProxiesPref.value; - proxyPortPref.disabled = proxyServerURLPref.disabled; - } - var socksVersionPref = document.getElementById("network.proxy.socks_version"); - socksVersionPref.disabled = proxyTypePref.value != 1 || shareProxiesPref.value; -- -+ this.updateDNSPref(); - return undefined; - }, - - readProxyProtocolPref: function (aProtocol, aIsPort) - { - var shareProxiesPref = document.getElementById("network.proxy.share_proxy_settings"); - if (shareProxiesPref.value) { - var pref = document.getElementById("network.proxy.http" + (aIsPort ? "_port" : "")); -@@ -153,16 +179,26 @@ var gConnectionsDialog = { - var autoURL = document.getElementById("networkProxyAutoconfigURL"); - var autoURLPref = document.getElementById("network.proxy.autoconfig_url"); - var URIFixup = Components.classes["@mozilla.org/docshell/urifixup;1"] - .getService(Components.interfaces.nsIURIFixup); - try { - autoURLPref.value = autoURL.value = URIFixup.createFixupURI(autoURL.value, 0).spec; - } catch(ex) {} - }, -+ -+ sanitizeNoProxiesPref: function() -+ { -+ var noProxiesPref = document.getElementById("network.proxy.no_proxies_on"); -+ // replace substrings of ; and \n with commas if they're neither immediately -+ // preceded nor followed by a valid separator character -+ noProxiesPref.value = noProxiesPref.value.replace(/([^, \n;])[;\n]+(?![,\n;])/g, '$1,'); -+ // replace any remaining ; and \n since some may follow commas, etc. -+ noProxiesPref.value = noProxiesPref.value.replace(/[;\n]/g, ''); -+ }, - - readHTTPProxyServer: function () - { - var shareProxiesPref = document.getElementById("network.proxy.share_proxy_settings"); - if (shareProxiesPref.value) - this.updateProtocolPrefs(); - return undefined; - }, -diff --git a/im/content/preferences/connection.xul b/im/content/preferences/connection.xul ---- a/im/content/preferences/connection.xul -+++ b/im/content/preferences/connection.xul -@@ -7,62 +7,65 @@ - - <!DOCTYPE prefwindow SYSTEM "chrome://instantbird/locale/preferences/connection.dtd"> - - <?xml-stylesheet href="chrome://global/skin/"?> - - <prefwindow id="ConnectionsDialog" type="child" - xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" - title="&connectionsDialog.title;" -- dlgbuttons="accept,cancel" -+ dlgbuttons="accept,cancel,help" - onbeforeaccept="return gConnectionsDialog.beforeAccept();" - onload="gConnectionsDialog.checkForSystemProxy();" - #ifdef XP_MACOSX - style="width: &window.macWidth; !important;"> - #else - style="width: &window.width; !important;"> - #endif - -- <prefpane id="ConnectionsDialogPane"> -+ <prefpane id="ConnectionsDialogPane" -+ helpTopic="prefs-connection-settings"> - - <preferences> - <preference id="network.proxy.type" name="network.proxy.type" type="int" onchange="gConnectionsDialog.proxyTypeChanged();"/> - <preference id="network.proxy.http" name="network.proxy.http" type="string"/> - <preference id="network.proxy.http_port" name="network.proxy.http_port" type="int"/> - <preference id="network.proxy.ftp" name="network.proxy.ftp" type="string"/> - <preference id="network.proxy.ftp_port" name="network.proxy.ftp_port" type="int"/> - <preference id="network.proxy.ssl" name="network.proxy.ssl" type="string"/> - <preference id="network.proxy.ssl_port" name="network.proxy.ssl_port" type="int"/> - <preference id="network.proxy.socks" name="network.proxy.socks" type="string"/> - <preference id="network.proxy.socks_port" name="network.proxy.socks_port" type="int"/> -- <preference id="network.proxy.gopher" name="network.proxy.gopher" type="string"/> -- <preference id="network.proxy.gopher_port" name="network.proxy.gopher_port" type="int"/> -- <preference id="network.proxy.socks_version" name="network.proxy.socks_version" type="int"/> -+ <preference id="network.proxy.socks_version" name="network.proxy.socks_version" type="int" onchange="gConnectionsDialog.updateDNSPref();"/> -+ <preference id="network.proxy.socks_remote_dns" name="network.proxy.socks_remote_dns" type="bool"/> - <preference id="network.proxy.no_proxies_on" name="network.proxy.no_proxies_on" type="string"/> - <preference id="network.proxy.autoconfig_url" name="network.proxy.autoconfig_url" type="string"/> - <preference id="network.proxy.share_proxy_settings" - name="network.proxy.share_proxy_settings" - type="bool"/> -- -+ <preference id="signon.autologin.proxy" -+ name="signon.autologin.proxy" -+ type="bool"/> -+ - <preference id="pref.advanced.proxies.disable_button.reload" - name="pref.advanced.proxies.disable_button.reload" - type="bool"/> - - <preference id="network.proxy.backup.ftp" name="network.proxy.backup.ftp" type="string"/> - <preference id="network.proxy.backup.ftp_port" name="network.proxy.backup.ftp_port" type="int"/> - <preference id="network.proxy.backup.ssl" name="network.proxy.backup.ssl" type="string"/> - <preference id="network.proxy.backup.ssl_port" name="network.proxy.backup.ssl_port" type="int"/> - <preference id="network.proxy.backup.socks" name="network.proxy.backup.socks" type="string"/> - <preference id="network.proxy.backup.socks_port" name="network.proxy.backup.socks_port" type="int"/> -- <preference id="network.proxy.backup.gopher" name="network.proxy.backup.gopher" type="string"/> -- <preference id="network.proxy.backup.gopher_port" name="network.proxy.backup.gopher_port" type="int"/> - </preferences> - - <script type="application/javascript" src="chrome://instantbird/content/preferences/connection.js"/> - -+ <stringbundle id="preferencesBundle" src="chrome://instantbird/locale/preferences/preferences.properties"/> -+ - <groupbox> - <caption label="&proxyTitle.label;"/> - - <radiogroup id="networkProxyType" preference="network.proxy.type" - onsyncfrompreference="return gConnectionsDialog.readProxyType();"> - <radio value="0" label="&noProxyTypeRadio.label;" accesskey="&noProxyTypeRadio.accesskey;"/> - <radio value="4" label="&WPADTypeRadio.label;" accesskey="&WPADTypeRadio.accesskey;"/> - <radio value="5" label="&systemTypeRadio.label;" accesskey="&systemTypeRadio.accesskey;" id="systemPref" hidden="true"/> -@@ -114,65 +117,55 @@ - onsyncfrompreference="return gConnectionsDialog.readProxyProtocolPref('ftp', false);"/> - <label value="&port.label;" accesskey="&FTPport.accesskey;" control="networkProxyFTP_Port"/> - <textbox id="networkProxyFTP_Port" type="number" max="65535" size="5" preference="network.proxy.ftp_port" - onsyncfrompreference="return gConnectionsDialog.readProxyProtocolPref('ftp', true);"/> - </hbox> - </row> - <row align="center"> - <hbox pack="end"> -- <label value="&gopher.label;" accesskey="&gopher.accesskey;" control="networkProxyGopher"/> -- </hbox> -- <hbox align="center"> -- <textbox id="networkProxyGopher" flex="1" preference="network.proxy.gopher" -- onsyncfrompreference="return gConnectionsDialog.readProxyProtocolPref('gopher', false);"/> -- <label value="&port.label;" accesskey="&gopherPort.accesskey;" control="networkProxyGopher_Port"/> -- <textbox id="networkProxyGopher_Port" type="number" max="65535" size="5" preference="network.proxy.gopher_port" -- onsyncfrompreference="return gConnectionsDialog.readProxyProtocolPref('gopher', true);"/> -- </hbox> -- </row> -- <row align="center"> -- <hbox pack="end"> - <label value="&socks.label;" accesskey="&socks.accesskey;" control="networkProxySOCKS"/> - </hbox> - <hbox align="center"> - <textbox id="networkProxySOCKS" flex="1" preference="network.proxy.socks" - onsyncfrompreference="return gConnectionsDialog.readProxyProtocolPref('socks', false);"/> - <label value="&port.label;" accesskey="&SOCKSport.accesskey;" control="networkProxySOCKS_Port"/> - <textbox id="networkProxySOCKS_Port" type="number" max="65535" size="5" preference="network.proxy.socks_port" - onsyncfrompreference="return gConnectionsDialog.readProxyProtocolPref('socks', true);"/> - </hbox> - </row> - <row> - <spacer/> -+ <box pack="start"> - <radiogroup id="networkProxySOCKSVersion" orient="horizontal" - preference="network.proxy.socks_version"> - <radio id="networkProxySOCKSVersion4" value="4" label="&socks4.label;" accesskey="&socks4.accesskey;" /> - <radio id="networkProxySOCKSVersion5" value="5" label="&socks5.label;" accesskey="&socks5.accesskey;" /> - </radiogroup> -+ <checkbox id="networkProxySOCKSRemoteDNS" preference="network.proxy.socks_remote_dns" label="&socksRemoteDNS.label;" accesskey="&socksRemoteDNS.accesskey;" /> -+ </box> - </row> -- -- <row align="center"> -- <hbox align="center" pack="end"> -- <label value="&noproxy.label;" accesskey="&noproxy.accesskey;" control="networkProxyNone"/> -- </hbox> -- <textbox id="networkProxyNone" preference="network.proxy.no_proxies_on"/> -- </row> -- <row> -- <spacer/> -- <label value="&noproxyExplain.label;" control="networkProxyNone"/> -- </row> -+ <label value="&noproxy.label;" accesskey="&noproxy.accesskey;" control="networkProxyNone"/> -+ <textbox id="networkProxyNone" preference="network.proxy.no_proxies_on" multiline="true" rows="2"/> -+ <label value="&noproxyExplain.label;" control="networkProxyNone"/> - </rows> - </grid> - <radio value="2" label="&autoTypeRadio.label;" accesskey="&autoTypeRadio.accesskey;"/> - <hbox class="indent" flex="1" align="center"> - <textbox id="networkProxyAutoconfigURL" flex="1" preference="network.proxy.autoconfig_url" - oninput="gConnectionsDialog.updateReloadButton();"/> - <button id="autoReload" icon="refresh" - label="&reload.label;" accesskey="&reload.accesskey;" - oncommand="gConnectionsDialog.reloadPAC();" - preference="pref.advanced.proxies.disable_button.reload"/> - </hbox> - </radiogroup> - </groupbox> -+ <separator class="thin"/> -+ <checkbox id="autologinProxy" -+ label="&autologinproxy.label;" -+ accesskey="&autologinproxy.accesskey;" -+ preference="signon.autologin.proxy" -+ tooltiptext="&autologinproxy.tooltip;"/> -+ <separator/> - </prefpane> - </prefwindow> - -diff --git a/im/locales/en-US/chrome/instantbird/preferences/advanced.dtd b/im/locales/en-US/chrome/instantbird/preferences/advanced.dtd ---- a/im/locales/en-US/chrome/instantbird/preferences/advanced.dtd -+++ b/im/locales/en-US/chrome/instantbird/preferences/advanced.dtd -@@ -14,16 +14,18 @@ - <!ENTITY searchStartTyping.accesskey "x"> - - <!ENTITY conversations.label "Conversations"> - - <!ENTITY useAutoScroll.label "Use autoscrolling"> - <!ENTITY useAutoScroll.accesskey "a"> - <!ENTITY useSmoothScrolling.label "Use smooth scrolling"> - <!ENTITY useSmoothScrolling.accesskey "m"> -+<!ENTITY allowHWAccel.label "Use hardware acceleration when available"> -+<!ENTITY allowHWAccel.accesskey "r"> - <!ENTITY checkSpelling.label "Check my spelling as I type"> - <!ENTITY checkSpelling.accesskey "t"> - - <!ENTITY searchEnginesGroup.label "Search engines"> - <!ENTITY searchEnginesDesc.label "Change options for your search engines"> - <!ENTITY searchEngines.label "Manage Search Engines…"> - <!ENTITY searchEngines.accesskey "S"> - -@@ -40,44 +42,42 @@ - <!ENTITY connectionLibpurpleDesc.label "For libpurple-based accounts"> - <!ENTITY connectionOtherDesc.label "For everything else (updates, addons, …)"> - <!ENTITY connectionSettings.label "Settings…"> - <!ENTITY connectionSettings.accesskey "e"> - <!ENTITY connectionSettings2.accesskey "i"> - - <!ENTITY updateTab.label "Update"> - --<!ENTITY autoCheck.label "Automatically check for updates to:"> --<!ENTITY enableAppUpdate.label "&brandShortName;"> --<!ENTITY enableAppUpdate.accesskey "I"> --<!ENTITY enableAddonsUpdate.label "Installed Add-ons"> --<!ENTITY enableAddonsUpdate.accesskey "n"> --<!ENTITY enableSearchUpdate.label "Search Engines"> --<!ENTITY enableSearchUpdate.accesskey "h"> --<!ENTITY whenUpdatesFound.label "When updates to &brandShortName; are found:"> --<!ENTITY askMe.label "Ask me what I want to do"> --<!ENTITY askMe.accesskey "k"> --<!ENTITY modeAutomatic.label "Automatically download and install the update"> --<!ENTITY modeAutomatic.accesskey "d"> --<!ENTITY modeAutoAddonWarn.label "Warn me if this will disable any of my add-ons"> --<!ENTITY modeAutoAddonWarn.accesskey "W"> -+<!ENTITY updateApp.label "&brandShortName; updates:"> -+<!ENTITY updateAuto1.label "Automatically install updates (recommended: improved security)"> -+<!ENTITY updateAuto1.accesskey "A"> -+<!ENTITY updateCheck.label "Check for updates, but let me choose whether to install them"> -+<!ENTITY updateCheck.accesskey "C"> -+<!ENTITY updateManual.label "Never check for updates (not recommended: security risk)"> -+<!ENTITY updateManual.accesskey "N"> -+ -+<!ENTITY updateAutoAddonWarn.label "Warn me if this will disable any of my add-ons"> -+<!ENTITY updateAutoAddonWarn.accesskey "W"> -+ - <!ENTITY updateHistory.label "Show Update History"> - <!ENTITY updateHistory.accesskey "p"> - --<!ENTITY encryptionTab.label "Encryption"> -+<!ENTITY useService.label "Use a background service to install updates"> -+<!ENTITY useService.accesskey "b"> - --<!ENTITY protocols.label "Protocols"> --<!ENTITY useSSL3.label "Use SSL 3.0"> --<!ENTITY useSSL3.accesskey "3"> --<!ENTITY useTLS1.label "Use TLS 1.0"> --<!ENTITY useTLS1.accesskey "1"> --<!ENTITY certificates.label "Certificates"> -+<!ENTITY updateOthers.label "Automatically update:"> -+<!ENTITY enableSearchUpdate.label "Search Engines"> -+<!ENTITY enableSearchUpdate.accesskey "E"> -+ -+<!ENTITY certificateTab.label "Certificates"> -+<!ENTITY certSelection.label "Requests"> - <!ENTITY certSelection.description "When a server requests my personal certificate:"> - <!ENTITY certs.auto "Select one automatically"> --<!ENTITY certs.auto.accesskey "l"> -+<!ENTITY certs.auto.accesskey "S"> - <!ENTITY certs.ask "Ask me every time"> --<!ENTITY certs.ask.accesskey "i"> -+<!ENTITY certs.ask.accesskey "A"> -+<!ENTITY enableOCSP.label "Query OCSP responder servers to confirm the current validity of certificates"> -+<!ENTITY enableOCSP.accesskey "Q"> - <!ENTITY viewCerts.label "View Certificates"> --<!ENTITY viewCerts.accesskey "s"> --<!ENTITY verify2.label "Validation"> --<!ENTITY verify2.accesskey "V"> -+<!ENTITY viewCerts.accesskey "C"> - <!ENTITY viewSecurityDevices.label "Security Devices"> --<!ENTITY viewSecurityDevices.accesskey "y"> -+<!ENTITY viewSecurityDevices.accesskey "D"> -diff --git a/im/locales/en-US/chrome/instantbird/preferences/connection.dtd b/im/locales/en-US/chrome/instantbird/preferences/connection.dtd ---- a/im/locales/en-US/chrome/instantbird/preferences/connection.dtd -+++ b/im/locales/en-US/chrome/instantbird/preferences/connection.dtd -@@ -17,32 +17,33 @@ - <!ENTITY manualTypeRadio.label "Manual proxy configuration:"> - <!ENTITY manualTypeRadio.accesskey "m"> - <!ENTITY autoTypeRadio.label "Automatic proxy configuration URL:"> - <!ENTITY autoTypeRadio.accesskey "A"> - <!ENTITY reload.label "Reload"> - <!ENTITY reload.accesskey "e"> - <!ENTITY ftp.label "FTP Proxy:"> - <!ENTITY ftp.accesskey "F"> --<!ENTITY gopher.label "Gopher Proxy:"> --<!ENTITY gopher.accesskey "G"> - <!ENTITY http.label "HTTP Proxy:"> - <!ENTITY http.accesskey "x"> - <!ENTITY ssl.label "SSL Proxy:"> - <!ENTITY ssl.accesskey "L"> - <!ENTITY socks.label "SOCKS Host:"> - <!ENTITY socks.accesskey "C"> - <!ENTITY socks4.label "SOCKS v4"> - <!ENTITY socks4.accesskey "K"> - <!ENTITY socks5.label "SOCKS v5"> - <!ENTITY socks5.accesskey "v"> -+<!ENTITY socksRemoteDNS.label "Remote DNS"> -+<!ENTITY socksRemoteDNS.accesskey "d"> - <!ENTITY port.label "Port:"> - <!ENTITY HTTPport.accesskey "P"> - <!ENTITY SSLport.accesskey "o"> - <!ENTITY FTPport.accesskey "r"> --<!-- No accesskey for gopher (':' doesn't go well) - mpt's going to redesign the window --> --<!ENTITY gopherPort.accesskey ""> - <!ENTITY SOCKSport.accesskey "t"> - <!ENTITY noproxy.label "No Proxy for:"> - <!ENTITY noproxy.accesskey "n"> - <!ENTITY noproxyExplain.label "Example: .mozilla.org, .net.nz, 192.168.1.0/24"> - <!ENTITY shareproxy.label "Use this proxy server for all protocols"> - <!ENTITY shareproxy.accesskey "s"> -+<!ENTITY autologinproxy.label "Do not prompt for authentication if password is saved"> -+<!ENTITY autologinproxy.accesskey "i"> -+<!ENTITY autologinproxy.tooltip "This option silently authenticates you to proxies when you have saved credentials for them. You will be prompted if authentication fails."> - diff --git a/projects/instantbird/config b/projects/instantbird/config index 35bc214..868a3b8 100644 --- a/projects/instantbird/config +++ b/projects/instantbird/config @@ -76,7 +76,6 @@ input_files: - filename: version.patch - filename: search-context-menu.patch - filename: search-preferences-xul.patch - - filename: certificate-settings-xul.patch - filename: log-preferences-xul.patch - filename: ifdef-performance-toolkit-xpt.patch - filename: 8ea23862252b-remove__DATE__and__TIME__.nsspatch