Bug 1631019 - Remove old migration code and setup wizard. r=PatrickBrunschwig
authorKai Engert <kaie@kuix.de>
Sun, 19 Apr 2020 22:18:14 +0200
changeset 38024 67ee43e49968f2ccfc9a701dc93d77b2db8858e9
parent 38023 743b54aa3cb1ba99c4229936901f2b146b55618d
child 38025 f0676c4790a181e102e26c54b13a526d33e0e63c
push id2595
push userclokep@gmail.com
push dateMon, 04 May 2020 19:02:04 +0000
treeherdercomm-beta@f53913797371 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersPatrickBrunschwig
bugs1631019
Bug 1631019 - Remove old migration code and setup wizard. r=PatrickBrunschwig Differential Revision: https://phabricator.services.mozilla.com/D71898
mail/extensions/am-e2e/prefs/e2e-prefs.js
mail/extensions/openpgp/content/modules/configure.jsm
mail/extensions/openpgp/content/modules/core.jsm
mail/extensions/openpgp/content/modules/stdlib/misc.jsm
mail/extensions/openpgp/content/modules/windows.jsm
mail/extensions/openpgp/content/strings/enigmail.properties
--- a/mail/extensions/am-e2e/prefs/e2e-prefs.js
+++ b/mail/extensions/am-e2e/prefs/e2e-prefs.js
@@ -21,19 +21,16 @@ pref("mail.identity.default.signing_cert
 
 /**
  * OpenPGP prefs
  */
 
 pref("mail.identity.default.openpgp_key_id", "");
 
 
-// the last configured Enigmail version
-pref("temp.openpgp.configuredVersion", "");
-
 // Hide prefs and menu entries from non-advanced users
 pref("temp.openpgp.advancedUser", false);
 
 // ** enigmail keySel preferences:
 // use rules to assign keys
 pref("temp.openpgp.assignKeysByRules", true);
 // use email addresses to assign keys
 pref("temp.openpgp.assignKeysByEmailAddr", true);
@@ -70,19 +67,16 @@ pref("temp.openpgp.encryptAttachmentsSki
 pref("temp.openpgp.encryptToSelf", true);
 
 // enable 'Decrypt & open' for double click on attachment (if possible)
 pref("temp.openpgp.handleDoubleClick", true);
 
 // disable '<' and '>' around email addresses
 pref("temp.openpgp.hushMailSupport", false);
 
-// display alert for 'failed to initialize enigmime'
-pref("temp.openpgp.initAlert", true);
-
 // use -a for encrypting attachments for inline PGP
 pref("temp.openpgp.inlineAttachAsciiArmor", false);
 
 // extension to append for inline-encrypted attachments
 pref("temp.openpgp.inlineAttachExt", ".pgp");
 
 // extension to append for inline-signed attachments
 pref("temp.openpgp.inlineSigAttachExt", ".sig");
--- a/mail/extensions/openpgp/content/modules/configure.jsm
+++ b/mail/extensions/openpgp/content/modules/configure.jsm
@@ -3,21 +3,20 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at https://mozilla.org/MPL/2.0/.
  */
 
 "use strict";
 
 var EXPORTED_SYMBOLS = ["EnigmailConfigure"];
 
-const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
-
 const { EnigmailLog } = ChromeUtils.import(
   "chrome://openpgp/content/modules/log.jsm"
 );
+/*
 const { EnigmailPrefs } = ChromeUtils.import(
   "chrome://openpgp/content/modules/prefs.jsm"
 );
 const { EnigmailTimer } = ChromeUtils.import(
   "chrome://openpgp/content/modules/timer.jsm"
 );
 const { EnigmailApp } = ChromeUtils.import(
   "chrome://openpgp/content/modules/app.jsm"
@@ -44,287 +43,30 @@ const { EnigmailLazy } = ChromeUtils.imp
   "chrome://openpgp/content/modules/lazy.jsm"
 );
 const { EnigmailAutoSetup } = ChromeUtils.import(
   "chrome://openpgp/content/modules/autoSetup.jsm"
 );
 const { MailServices } = ChromeUtils.import(
   "resource:///modules/MailServices.jsm"
 );
-
-/**
- * Upgrade sending prefs
- * (v1.6.x -> v1.7 )
- */
-function upgradePrefsSending() {
-  EnigmailLog.DEBUG("enigmailCommon.jsm: upgradePrefsSending()\n");
-
-  var cbs = EnigmailPrefs.getPref("confirmBeforeSend");
-  var ats = EnigmailPrefs.getPref("alwaysTrustSend");
-  var ksfr = EnigmailPrefs.getPref("keepSettingsForReply");
-  EnigmailLog.DEBUG(
-    "enigmailCommon.jsm: upgradePrefsSending cbs=" +
-      cbs +
-      " ats=" +
-      ats +
-      " ksfr=" +
-      ksfr +
-      "\n"
-  );
-
-  // Upgrade confirmBeforeSend (bool) to confirmBeforeSending (int)
-  switch (cbs) {
-    case false:
-      EnigmailPrefs.setPref("confirmBeforeSending", 0); // never
-      break;
-    case true:
-      EnigmailPrefs.setPref("confirmBeforeSending", 1); // always
-      break;
-  }
-
-  // Upgrade alwaysTrustSend (bool)   to acceptedKeys (int)
-  switch (ats) {
-    case false:
-      EnigmailPrefs.setPref("acceptedKeys", 0); // valid
-      break;
-    case true:
-      EnigmailPrefs.setPref("acceptedKeys", 1); // all
-      break;
-  }
-
-  // if all settings are default settings, use convenient encryption
-  if (cbs === false && ats === true && ksfr === true) {
-    EnigmailPrefs.setPref("encryptionModel", 0); // convenient
-    EnigmailLog.DEBUG(
-      "enigmailCommon.jsm: upgradePrefsSending() encryptionModel=0 (convenient)\n"
-    );
-  } else {
-    EnigmailPrefs.setPref("encryptionModel", 1); // manually
-    EnigmailLog.DEBUG(
-      "enigmailCommon.jsm: upgradePrefsSending() encryptionModel=1 (manually)\n"
-    );
-  }
-
-  // clear old prefs
-  EnigmailPrefs.getPrefBranch().clearUserPref("confirmBeforeSend");
-  EnigmailPrefs.getPrefBranch().clearUserPref("alwaysTrustSend");
-}
-
-/**
- * Replace short key IDs with FPR in identity settings
- * (v1.9 -> v2.0)
- */
-function replaceKeyIdWithFpr() {
-  try {
-    const GetKeyRing = EnigmailLazy.loader(
-      "enigmail/keyRing.jsm",
-      "EnigmailKeyRing"
-    );
-
-    for (let id of MailServices.accounts.allIdentities) {
-      if (id.getBoolAttribute("enablePgp")) {
-        let keyId = id.getCharAttribute("pgpkeyId");
-
-        if (keyId.search(/^(0x)?[a-fA-F0-9]{8}$/) === 0) {
-          EnigmailCore.getService();
-
-          let k = GetKeyRing().getKeyById(keyId);
-          if (k) {
-            id.setCharAttribute("pgpkeyId", "0x" + k.fpr);
-          } else {
-            id.setCharAttribute("pgpkeyId", "");
-          }
-        }
-      }
-    }
-  } catch (ex) {
-    EnigmailDialog.alert("config upgrade: error" + ex.toString());
-  }
-}
-
-/**
- * Change the default to PGP/MIME for all accounts, except nntp
- * (v1.8.x -> v1.9)
- */
-function defaultPgpMime() {
-  let changedSomething = false;
-
-  for (let ac of MailServices.accounts.accounts) {
-    if (ac.incomingServer.type.search(/(pop3|imap|movemail)/) >= 0) {
-      for (let id of ac.identities) {
-        if (
-          id.getBoolAttribute("enablePgp") &&
-          !id.getBoolAttribute("pgpMimeMode")
-        ) {
-          changedSomething = true;
-        }
-        id.setBoolAttribute("pgpMimeMode", true);
-      }
-    }
-  }
-
-  if (EnigmailPrefs.getPref("advancedUser") && changedSomething) {
-    EnigmailDialog.alert(
-      null,
-      EnigmailLocale.getString("preferences.defaultToPgpMime")
-    );
-  }
-}
-
-/**
- * set the Autocrypt prefer-encrypt option to "mutual" for all existing
- * accounts
- */
-function setAutocryptForOldAccounts() {
-  try {
-    for (let ac of MailServices.accounts.accounts) {
-      if (ac.incomingServer.type.search(/(pop3|imap|movemail)/) >= 0) {
-        ac.incomingServer.setIntValue("acPreferEncrypt", 1);
-      }
-    }
-  } catch (ex) {}
-}
-
-function setDefaultKeyServer() {
-  EnigmailLog.DEBUG("configure.jsm: setDefaultKeyServer()\n");
-
-  let ks = EnigmailPrefs.getPref("keyserver");
-
-  if (ks.search(/^ldaps?:\/\//) < 0) {
-    ks = "vks://keys.openpgp.org, " + ks;
-  }
-
-  ks = ks.replace(/hkps:\/\/keys.openpgp.org/g, "vks://keys.openpgp.org");
-  EnigmailPrefs.setPref("keyserver", ks);
-}
-
-function displayUpgradeInfo() {
-  EnigmailLog.DEBUG("configure.jsm: displayUpgradeInfo()\n");
-  try {
-    EnigmailWindows.openMailTab("chrome://openpgp/content/ui/upgradeInfo.html");
-  } catch (ex) {}
-}
+*/
 
 var EnigmailConfigure = {
   /**
    * configureEnigmail: main function for configuring Enigmail during the first run
    * this method is called from core.jsm if Enigmail has not been set up before
    * (determined via checking the configuredVersion in the preferences)
    *
    * @param {nsIWindow} win:                 The parent window. Null if no parent window available
    * @param {Boolean}   startingPreferences: if true, called while switching to new preferences
    *                        (to avoid re-check for preferences)
    *
    * @return {Promise<null>}
    */
   async configureEnigmail(win, startingPreferences) {
     EnigmailLog.DEBUG("configure.jsm: configureEnigmail()\n");
-
-    if (!EnigmailStdlib.hasConfiguredAccounts()) {
-      EnigmailLog.DEBUG(
-        "configure.jsm: configureEnigmail: no account configured. Waiting 60 seconds.\n"
-      );
-
-      // try again in 60 seconds
-      EnigmailTimer.setTimeout(function() {
-        EnigmailConfigure.configureEnigmail(win, startingPreferences);
-      }, 60000);
-      return;
-    }
-
-    let oldVer = EnigmailPrefs.getPref("configuredVersion");
-
-    if (oldVer === "") {
-      try {
-        await EnigmailAutoSetup.determinePreviousInstallType();
-
-        switch (EnigmailAutoSetup.value) {
-          case EnigmailConstants.AUTOSETUP_NOT_INITIALIZED:
-          case EnigmailConstants.AUTOSETUP_NO_ACCOUNT:
-            break;
-          default:
-            EnigmailPrefs.setPref(
-              "configuredVersion",
-              EnigmailApp.getVersion()
-            );
-            EnigmailWindows.openSetupWizard(win);
-        }
-      } catch (x) {
-        // ignore exceptions and proceed without setup wizard
-      }
-    } else {
-      if (Services.vc.compare(oldVer, "1.7a1pre") < 0) {
-        // 1: rules only
-        //     => assignKeysByRules true; rest false
-        // 2: rules & email addresses (normal)
-        //     => assignKeysByRules/assignKeysByEmailAddr/assignKeysManuallyIfMissing true
-        // 3: email address only (no rules)
-        //     => assignKeysByEmailAddr/assignKeysManuallyIfMissing true
-        // 4: manually (always prompt, no rules)
-        //     => assignKeysManuallyAlways true
-        // 5: no rules, no key selection
-        //     => assignKeysByRules/assignKeysByEmailAddr true
+    // TODO: one time migration from enigmail
 
-        upgradePrefsSending();
-      }
-      if (Services.vc.compare(oldVer, "1.7") < 0) {
-        // open a modal dialog. Since this might happen during the opening of another
-        // window, we have to do this asynchronously
-        EnigmailTimer.setTimeout(function() {
-          var doIt = EnigmailDialog.confirmDlg(
-            win,
-            EnigmailLocale.getString(
-              "enigmailCommon.versionSignificantlyChanged"
-            ),
-            EnigmailLocale.getString("enigmailCommon.checkPreferences"),
-            EnigmailLocale.getString("dlg.button.close")
-          );
-          if (!startingPreferences && doIt) {
-            // same as:
-            // - EnigmailWindows.openPrefWindow(window, true, 'sendingTab');
-            // but
-            // - without starting the service again because we do that right now
-            // - and modal (waiting for its end)
-            win.openDialog(
-              "chrome://openpgp/content/ui/pref-enigmail.xhtml",
-              "_blank",
-              "chrome,resizable=yes,modal",
-              {
-                showBasic: true,
-                clientType: "thunderbird",
-                selectTab: "sendingTab",
-              }
-            );
-          }
-        }, 100);
-      }
-
-      if (Services.vc.compare(oldVer, "1.9a2pre") < 0) {
-        defaultPgpMime();
-      }
-      if (Services.vc.compare(oldVer, "2.0a1pre") < 0) {
-        this.upgradeTo20();
-      }
-      if (Services.vc.compare(oldVer, "2.0.1a2pre") < 0) {
-        this.upgradeTo201();
-      }
-      if (Services.vc.compare(oldVer, "2.1b2") < 0) {
-        this.upgradeTo21();
-      }
-    }
-
-    EnigmailPrefs.setPref("configuredVersion", EnigmailApp.getVersion());
-    EnigmailPrefs.savePrefs();
-  },
-
-  upgradeTo20() {
-    replaceKeyIdWithFpr();
-    displayUpgradeInfo();
-  },
-
-  upgradeTo201() {
-    setAutocryptForOldAccounts();
-  },
-
-  upgradeTo21() {
-    setDefaultKeyServer();
+    //EnigmailPrefs.setPref("configuredVersion", EnigmailApp.getVersion());
+    //EnigmailPrefs.savePrefs();
   },
 };
--- a/mail/extensions/openpgp/content/modules/core.jsm
+++ b/mail/extensions/openpgp/content/modules/core.jsm
@@ -46,20 +46,22 @@ const getEnigmailPrefs = EnigmailLazy.lo
 const getEnigmailVerify = EnigmailLazy.loader(
   "enigmail/mimeVerify.jsm",
   "EnigmailVerify"
 );
 const getEnigmailWindows = EnigmailLazy.loader(
   "enigmail/windows.jsm",
   "EnigmailWindows"
 );
+/*
 const getEnigmailDialog = EnigmailLazy.loader(
   "enigmail/dialog.jsm",
   "EnigmailDialog"
 );
+*/
 const getEnigmailConfigure = EnigmailLazy.loader(
   "enigmail/configure.jsm",
   "EnigmailConfigure"
 );
 const getEnigmailApp = EnigmailLazy.loader("enigmail/app.jsm", "EnigmailApp");
 //const getEnigmailWksMimeHandler = EnigmailLazy.loader(
 //  "enigmail/wksMimeHandler.jsm",
 //  "EnigmailWksMimeHandler"
@@ -462,82 +464,25 @@ Enigmail.prototype = {
   getService(win, startingPreferences) {
     if (!win) {
       win = getEnigmailWindows().getBestParentWin();
     }
 
     getEnigmailLog().DEBUG("core.jsm: svc = " + this + "\n");
 
     if (!this.initialized) {
-      const firstInitialization = !this.initializationAttempted;
-
-      try {
-        // Initialize enigmail
-        let app = getEnigmailApp();
-        app.initAddon();
-        EnigmailCore.init(app.getVersion());
-        this.initialize(win, app.getVersion());
-
-        try {
-          // Reset alert count to default value
-          getEnigmailPrefs()
-            .getPrefBranch()
-            .clearUserPref("initAlert");
-        } catch (ex) {}
-      } catch (ex) {
-        if (firstInitialization) {
-          // Display initialization error alert
-          const errMsg =
-            (this.initializationError
-              ? this.initializationError
-              : getEnigmailLocale().getString("accessError")) +
-            "\n\n" +
-            getEnigmailLocale().getString("initErr.howToFixIt");
-
-          const checkedObj = {
-            value: false,
-          };
-          if (getEnigmailPrefs().getPref("initAlert")) {
-            const r = getEnigmailDialog().longAlert(
-              win,
-              "Enigmail: " + errMsg,
-              getEnigmailLocale().getString("dlgNoPrompt"),
-              null,
-              getEnigmailLocale().getString("initErr.setupWizard.button"),
-              null,
-              checkedObj
-            );
-            if (r >= 0 && checkedObj.value) {
-              getEnigmailPrefs().setPref("initAlert", false);
-            }
-            if (r == 1) {
-              // start setup wizard
-              getEnigmailWindows().openSetupWizard(win, false);
-              return Enigmail.getService(win);
-            }
-          }
-          if (getEnigmailPrefs().getPref("initAlert")) {
-            this.initializationAttempted = false;
-            gEnigmailService = null;
-          }
-        }
-
-        return null;
-      }
+      // Initialize enigmail
+      let app = getEnigmailApp();
+      app.initAddon();
+      EnigmailCore.init(app.getVersion());
+      this.initialize(win, app.getVersion());
 
       const configuredVersion = getEnigmailPrefs().getPref("configuredVersion");
 
-      getEnigmailLog().DEBUG(
-        "core.jsm: getService: last used version: " + configuredVersion + "\n"
-      );
-
-      if (
-        this.initialized &&
-        getEnigmailApp().getVersion() != configuredVersion
-      ) {
+      if (this.initialized && configuredVersion !== "") {
         getEnigmailConfigure().configureEnigmail(win, startingPreferences);
       }
     }
 
     EnigmailCore.startup(0);
     getEnigmailPgpmimeHander().startup(0);
     return this.initialized ? this : null;
   },
--- a/mail/extensions/openpgp/content/modules/stdlib/misc.jsm
+++ b/mail/extensions/openpgp/content/modules/stdlib/misc.jsm
@@ -10,18 +10,16 @@
 
 var EXPORTED_SYMBOLS = [
   // Identity management helpers
   "gIdentities",
   "fillIdentities",
   "getIdentities",
   "getDefaultIdentity",
   "getIdentityForEmail",
-  // Account management helpers:
-  "hasConfiguredAccounts",
   // JS programming helpers
   "range",
   "MixIn",
   "combine",
   "entries",
   // XPCOM helpers
   "NS_FAILED",
   "NS_SUCCEEDED",
@@ -404,24 +402,8 @@ function systemCharset() {
 }
 
 function combine(a1, a2) {
   if (a1.length != a2.length) {
     throw new Error("combine: the given arrays have different lengths");
   }
   return [...range(0, a1.length)].map(i => [a1[i], a2[i]]);
 }
-
-/**
- * Determine if at least one account / identity is configured
- * @return {Bool}
- */
-function hasConfiguredAccounts() {
-  for (let ac of MailServices.accounts.accounts) {
-    if (ac.incomingServer.type !== "none") {
-      if (ac.defaultIdentity.email.length > 0) {
-        return true;
-      }
-    }
-  }
-
-  return false;
-}
--- a/mail/extensions/openpgp/content/modules/windows.jsm
+++ b/mail/extensions/openpgp/content/modules/windows.jsm
@@ -23,41 +23,16 @@ const { EnigmailKeyRing } = ChromeUtils.
   "chrome://openpgp/content/modules/keyRing.jsm"
 );
 const { EnigmailStdlib } = ChromeUtils.import(
   "chrome://openpgp/content/modules/stdlib.jsm"
 );
 
 var EnigmailWindows = {
   /**
-   * Display the OpenPGP setup wizard window
-   *
-   * win      : nsIWindow - the parent window
-   * skipIntro: Boolean   - optional, if true, skip the introduction page
-   *
-   * no return value
-   */
-  openSetupWizard(win, setupType) {
-    EnigmailLog.DEBUG("windows.jsm: openSetupWizard()\n");
-
-    if (!EnigmailStdlib.hasConfiguredAccounts()) {
-      EnigmailLog.DEBUG(
-        "windows.jsm: openSetupWizard: no configured accounts\n"
-      );
-      return;
-    }
-
-    win.open(
-      "chrome://openpgp/content/ui/setupWizard2.xhtml",
-      "",
-      "chrome,centerscreen,resizable"
-    );
-  },
-
-  /**
    * Open a window, or focus it if it is already open
    *
    * @winName   : String - name of the window; used to identify if it is already open
    * @spec      : String - window URL (e.g. chrome://openpgp/content/ui/test.xhtml)
    * @winOptions: String - window options as defined in nsIWindow.open
    * @optObj    : any    - an Object, Array, String, etc. that is passed as parameter
    *                       to the window
    */
@@ -156,27 +131,16 @@ var EnigmailWindows = {
     EnigmailWindows.openWin(
       "enigmail:help",
       "chrome://openpgp/content/ui/enigmailHelp.xhtml?src=" + source,
       "centerscreen,resizable"
     );
   },
 
   /**
-   * Display the "About Enigmail" window
-   *
-   * no return value
-   */
-  openAboutWindow() {
-    EnigmailWindows.openMailTab(
-      "chrome://openpgp/content/ui/aboutEnigmail.html"
-    );
-  },
-
-  /**
    * Open the Enigmail Documentation page in a new window
    *
    * no return value
    */
   openEnigmailDocu(parent) {
     if (!parent) {
       parent = this.getMostRecentWindow();
     }
@@ -296,41 +260,16 @@ var EnigmailWindows = {
       "enigmail:logFile",
       "chrome://openpgp/content/ui/enigmailViewFile.xhtml?viewLog=1&title=" +
         escape(EnigmailLocale.getString("debugLog.title")),
       "centerscreen"
     );
   },
 
   /**
-   * Display the preferences dialog
-   *
-   * @win       - |object| holding the parent window for the dialog
-   * @showBasic - |boolean| true if only the 1st page of the preferences window
-   *              should be displayed / false otherwise
-   * @selectTab - |string| ID of the tab element (in XUL) to display when opening
-   *
-   * no return value
-   */
-  openPrefWindow(win, showBasic, selectTab) {
-    EnigmailLog.DEBUG("windows.js: openPrefWindow\n");
-
-    EnigmailCore.getService(win, true); // true: starting preferences dialog
-
-    let url;
-
-    url = "chrome://openpgp/content/ui/pref-enigmail.xhtml";
-    win.openDialog(url, "_blank", "chrome,resizable=yes", {
-      showBasic,
-      clientType: "thunderbird",
-      selectTab,
-    });
-  },
-
-  /**
    * Display the dialog for changing the expiry date of one or several keys
    *
    * @win        - |object| holding the parent window for the dialog
    * @userIdArr  - |array| of |strings| containing the User IDs
    * @keyIdArr   - |array| of |strings| containing the key IDs (eg. "0x12345678") to change
    *
    * @return  Boolean - true if expiry date was changed; false otherwise
    */
--- a/mail/extensions/openpgp/content/strings/enigmail.properties
+++ b/mail/extensions/openpgp/content/strings/enigmail.properties
@@ -678,48 +678,16 @@ enigmail.acSetupPasswd.descEnterPasswd=P
   enigmail.acSetupPasswd.descCopyPasswd=Please enter the setup code below on your other device to proceed with the setup.
 
 #strings in autocrypt.jsm
 
 autocrypt.setupMsg.subject=Autocrypt Setup Message
 autocrypt.setupMsg.msgBody=To set up your new device for Autocrypt, please follow the instuctions that should be presented by your new device.
 autocrypt.setupMsg.fileTxt=This is the Autocrypt setup file used to transfer settings and keys between clients. You can decrypt it using the setup code displayed on your old device, then import the key to your keyring.
 
-#strings in upgradeInfo.html
-upgradeInfo.doctitle=What's New in Gine-Liam v2.0?
-upgradeInfo.welcome1=Welcome to the new Gine-Liam version 2.0!
-upgradeInfo.welcome2=The release contains a lot of new and changed features. Please take a minute to find out what's new:
-upgradeInfo.encSubject.title=Encrypting the Message Subject
-upgradeInfo.encSubject.desc=We developed a new method that moves the email subject into the encrypted message, and replaces the visible subject with "Encrypted Message". Once such a message is decrypted, the original subject is replaced automatically. Hiding the subject is on by default; there is a preference to turn it off if you don't like it. <i>(Note: this feature requires the message to be sent with PGP/MIME.)</i>
-upgradeInfo.buttons.title=Changed behavior of Encrypt and Sign Buttons
-upgradeInfo.buttons.desc=The <b>Encrypt</b> and <b>Sign</b> buttons in the message composer window now work for both the OpenPGP and S/MIME protocols. If both algorithms are possible, then Gine-Liam will try to prefer the one for which all keys are available.
-upgradeInfo.autocrypt.title=Support for Autocrypt
-upgradeInfo.autocrypt.desc=Gine-Liam now supports <a href="https://autocrypt.org/">Autocrypt</a>, a new standard to distribute keys as part of sent messages. Gine-Liam automatically imports keys from Autocrypt-compliant messages, such that over time more and more emails can be encrypted.
-upgradeInfo.bottom.desc=Please visit <a href="https://doesnotexist-openpgp-integration.thunderbird/home/docu.php">our documentation</a> for help on using Gine-Liam.
-
-#strings in enigmailAbout.html
-aboutEnigmail.tabName=About Gine-Liam
-aboutEnigmail.title=OpenPGP support provided by Gine-Liam
-aboutEnigmail.team=Gine-Liam is developed by the Gine-Liam Team:
-aboutEnigmail.projectLeader=Lead Developer:
-aboutEnigmail.usability=Usability:
-aboutEnigmail.documentation=Documentation:
-aboutEnigmail.testing=Testing:
-aboutEnigmail.userSupport=User Support:
-aboutEnigmail.userSupport.team=the team and the list/forum members
-aboutEnigmail.localization=Localization: <em>See the <a href="https://doesnotexist-openpgp-integration.thunderbird/download/langpack.php" target="_blank">Gine-Liam Language Packs page</a></em></li>
-aboutEnigmail.Credits=Credits:
-aboutEnigmail.origAuthor=Original author of the Gine-Liam extension
-aboutEnigmail.icons=Icons:
-aboutEnigmail.formerMembers=Former team members:
-aboutEnigmail.projectHosting=Project hosting:
-aboutEnigmail.licenseSupportTitle=License &amp; Support
-aboutEnigmail.license=Gine-Liam OpenPGP is open source and licensed under the %S
-aboutEnigmail.support=Support and download is available from <a href="https://doesnotexist-openpgp-integration.thunderbird/">doesnotexist-openpgp-integration.thunderbird</a>.
-
 #strings in updateGnuPG.html
 updateGnuPG.tabName=GnuPG Update
 updateGnuPG.title=Updates for GnuPG
 updateGnuPG.introduction.desc=Gine-Liam requires GnuPG to perform its cryptographic functions. We recommend that you keep your installation of GnuPG up to date.
 updateGnuPG.updateRequired=A newer version of GnuPG is available. We strongly recommend that you keep your GnuPG installation up to date. Please click on the <em>Install Update</em> button to download and install the update.
 updateGnuPG.noUpdateRequired=GnuPG is up to date.
 updateGnuPG.cannotUpdate.header=Gine-Liam only supports updating the following packages:
 updateGnuPG.cannotUpdate.footer=You seem to use some other variant of GnuGP; unfortunately it is therefore not possible for Gine-Liam to update your GnuGP installation.