[tor-commits] [tor-messenger-build/master] Remove certificate settings patch merged upstream

sukhbir at torproject.org sukhbir at torproject.org
Wed Nov 18 14:09:53 UTC 2015


commit f427f1b362ff2d33e68c1fb2252badc691b8ca7f
Author: Sukhbir Singh <sukhbir at 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 at 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



More information about the tor-commits mailing list