1
/* ***** BEGIN LICENSE BLOCK *****
2
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
4
* The contents of this file are subject to the Mozilla Public
5
* License Version 1.1 (the "MPL"); you may not use this file
6
* except in compliance with the MPL. You may obtain a copy of
7
* the MPL at http://www.mozilla.org/MPL/
9
* Software distributed under the MPL is distributed on an "AS
10
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
11
* implied. See the MPL for the specific language governing
12
* rights and limitations under the MPL.
14
* The Original Code is Enigmail.
16
* The Initial Developer of the Original Code is Patrick Brunschwig.
17
* Portions created by Patrick Brunschwig <patrick@mozilla-enigmail.org> are
18
* Copyright (C) 2005 Patrick Brunschwig. All Rights Reserved.
22
* Alternatively, the contents of this file may be used under the terms of
23
* either the GNU General Public License Version 2 or later (the "GPL"), or
24
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
25
* in which case the provisions of the GPL or the LGPL are applicable instead
26
* of those above. If you wish to allow use of your version of this file only
27
* under the terms of either the GPL or the LGPL, and not to allow others to
28
* use your version of this file under the terms of the MPL, indicate your
29
* decision by deleting the provisions above and replace them with the notice
30
* and other provisions required by the GPL or the LGPL. If you do not delete
31
* the provisions above, a recipient may use your version of this file under
32
* the terms of any one of the MPL, the GPL or the LGPL.
33
* ***** END LICENSE BLOCK ***** */
35
Components.utils.import("resource://enigmail/enigmailCommon.jsm");
36
Components.utils.import("resource://enigmail/keyManagement.jsm");
38
// const Ec is already defined in enigmailKeygen.js
40
var gEnigModifySettings;
43
var gPubkeyFile = {value: null};
44
var gSeckeyFile = {value: null};
45
var gCreateNewKey=false;
49
EnigInitCommon("enigmailSetupWizard");
52
gEnigModifySettings = {
56
quotedPrintable: true,
59
gEnigAccountMgr = Components.classes["@mozilla.org/messenger/account-manager;1"].getService(Components.interfaces.nsIMsgAccountManager);
61
fillIdentities('checkbox');
67
if (EnigConfirm(EnigGetString("keyAbort"), EnigGetString("keyMan.button.generateKeyAbort"), EnigGetString("keyMan.button.generateKeyContinue"))) {
68
enigmailKeygenCloseRequest();
76
return (EnigLongAlert(EnigGetString("setupWizard.reallyCancel"), null, EnigGetString("dlg.button.close"), EnigGetString("dlg.button.continue")) == 0);
81
function setLastPage() {
82
var wizard = document.getElementById("enigmailSetupWizard");
83
if (wizard.currentPage) {
84
wizard.setAttribute("lastViewedPage", wizard.currentPage.pageid);
98
var wizard = document.getElementById("enigmailSetupWizard");
99
if (wizard.currentPage) {
100
switch(wizard.currentPage.pageid) {
110
return checkPassphrase();
117
function setNextPage(pageId) {
118
var wizard = document.getElementById("enigmailSetupWizard");
119
wizard.currentPage.next = pageId;
122
function disableNext(disable) {
123
var wizard = document.getElementById("enigmailSetupWizard");
124
wizard.getButton("next").disabled = disable;
128
function countSelectedId() {
130
var node = document.getElementById("idSelection").firstChild;
135
node = node.nextSibling;
140
function browseKeyFile(referencedId, referencedVar) {
141
var filePath = EnigFilePicker(EnigGetString("importKeyFile"),
142
"", false, "*.asc", "",
143
[EnigGetString("gnupgFile"), "*.asc;*.gpg;*.pgp"]);
146
document.getElementById(referencedId).value = EnigGetFilePath(filePath);
147
referencedVar.value = filePath;
151
function importKeyFiles() {
152
if (document.getElementById("publicKeysFile").value.length == 0) {
153
EnigAlert(EnigString("setupWizard.specifyFile"));
160
var enigmailSvc = enigGetSvc();
161
if (! enigmailSvc) return false;
163
var errorMsgObj = {};
165
exitCode = enigmailSvc.importKeyFromFile(window, gPubkeyFile.value, errorMsgObj, keyListObj);
167
EnigAlert(EnigGetString("importKeysFailed")+"\n\n"+errorMsgObj.value);
170
importedKeys = keyListObj.value;
172
if (document.getElementById("privateKeysFile").value.length > 0) {
174
exitCode = enigmailSvc.importKeyFromFile(window, gSeckeyFile.value, errorMsgObj, keyListObj);
176
EnigAlert(EnigGetString("importKeysFailed")+"\n\n"+errorMsgObj.value);
179
importedKeys += keyListObj.value;
184
var keyList=importedKeys.split(/;/);
185
setKeyTrustNextKey(keyList, 0);
190
function setKeyTrustNextKey(keyList, index) {
191
Ec.DEBUG_LOG("enigmailSetupWizard.js: setKeyTrustNextKey("+index+")\n");
193
var aKey = keyList[index].split(/:/);
194
if (Number(aKey[1]) & 16) {
195
// imported key contains secret key
196
EnigmailKeyMgmt.setKeyTrust(window, aKey[0], 5,
197
function(exitCode, errorMsg) {
203
if (index < keyList.length) {
204
setKeyTrustNextKey(keyList, index);
213
if (index < keyList.length) {
214
setKeyTrustNextKey(keyList, index);
222
function displayKeyCreate() {
223
if (gLastDirection == 1) {
224
fillIdentities('menulist');
227
if (countSelectedId() == 1) {
228
var node = document.getElementById("idSelection").firstChild;
231
var identity = gEnigAccountMgr.getIdentity(node.getAttribute("account-id"));
232
var idName = identity.identityName;
234
var serverList = queryISupArray(
235
getServersForIdentity(gEnigAccountMgr, identity),
236
Components.interfaces.nsIMsgIncomingServer);
238
if (serverList.length > 0) {
239
var inServer = serverList[0];
241
idName += " - "+inServer.prettyName;
243
document.getElementById("userIdentityLabel").value = idName;
246
node = node.nextSibling;
248
document.getElementById("userIdentity").setAttribute("collapsed", "true");
249
document.getElementById("userIdentityLabel").removeAttribute("collapsed");
253
document.getElementById("userIdentityLabel").setAttribute("collapsed", "true");
254
document.getElementById("userIdentity").removeAttribute("collapsed");
259
function displayKeySel() {
260
var uidChildren = document.getElementById("uidSelectionChildren");
261
if (document.getElementById("createPgpKey").value=="0") {
270
function clearKeyListEntries(){
272
var treeChildren = document.getElementById("uidSelectionChildren");
273
while (treeChildren.firstChild) {
274
treeChildren.removeChild(treeChildren.firstChild);
278
function onSetStartNow(doStart) {
280
setNextPage("pgSelectId");
283
setNextPage("pgNoStart");
287
function onKeySelected() {
288
var wizard = document.getElementById("enigmailSetupWizard");
289
var uidSel = document.getElementById("uidSelection");
290
disableNext(uidSel.view.selection.count == 0);
293
function wizardSetFocus() {
294
document.getElementById("startNow").focus();
297
function loadKeys() {
298
var wizard = document.getElementById("enigmailSetupWizard");
300
var enigmailSvc = enigGetSvc();
305
clearKeyListEntries();
307
var exitCodeObj = {};
308
var statusFlagsObj = {};
309
var errorMsgObj = {};
310
var keyList = Ec.getSecretKeys(window);
311
if (keyList == null) {
316
if (keyList.length ==0) {
317
setNextPage("pgNoKeyFound");
321
var uidChildren = document.getElementById("uidSelectionChildren");
322
for (i=0; i < keyList.length; i++) {
323
var item = uidChildren.appendChild( document.createElement('treeitem') );
324
item.setAttribute("keyId", keyList[i].id);
325
var row = item.appendChild(document.createElement('treerow'));
326
var cell = row.appendChild( document.createElement('treecell') );
327
cell.setAttribute('label', keyList[i].name);
328
cell.setAttribute('observes', "bcKeyEnabled");
329
cell = row.appendChild( document.createElement('treecell') );
330
cell.setAttribute('label', "0x"+keyList[i].id.substr(-8,8));
331
cell.setAttribute('observes', "bcKeyEnabled");
332
cell = row.appendChild( document.createElement('treecell') );
333
cell.setAttribute('label', keyList[i].created);
334
cell.setAttribute('observes', "bcKeyEnabled");
340
function enigGetSvc() {
341
// Lazy initialization of enigmail JS component (for efficiency)
342
// variant of GetEnigmailSvc function
345
return gEnigmailSvc.initialized ? gEnigmailSvc : null;
349
gEnigmailSvc = ENIG_C[ENIG_ENIGMAIL_CONTRACTID].createInstance(ENIG_I.nsIEnigmail);
352
ERROR_LOG("enigmailWizard.js: Error in instantiating EnigmailService\n");
356
DEBUG_LOG("enigmailWizard.js: gEnigmailSvc = "+gEnigmailSvc+"\n");
358
while (!gEnigmailSvc.initialized) {
359
// Try to initialize enigmail
361
if (! gPrefEnigmail) {
362
EnigmailCommon.initPrefService();
363
gPrefEnigmail = EnigmailCommon.prefBranch;
367
// Initialize enigmail
368
gEnigmailSvc.initialize(window, EnigGetVersion(), gPrefEnigmail);
371
// Reset alert count to default value
372
gPrefEnigmail.clearUserPref("initAlert");
377
// Display initialization error alert
378
EnigAlert(EnigGetString("setupWizard.locateGpg"));
379
var gpgPath = wizardLocateGpg();
387
EnigSetPref("agentPath", EnigGetFilePath(gpgPath));
391
var configuredVersion = EnigGetPref("configuredVersion");
393
DEBUG_LOG("enigmailWizard.js: enigGetSvc: "+configuredVersion+"\n");
397
return gEnigmailSvc.initialized ? gEnigmailSvc : null;
400
function wizardLocateGpg() {
403
if (navigator.platform.search(/Win/i) == 0) {
406
var filePath = EnigFilePicker(EnigGetString("locateGpg"),
412
function checkPassphrase() {
414
var passphrase = enigmailCheckPassphrase();
415
if (passphrase == null) return false;
417
if (passphrase.length < 8) {
418
EnigAlert(EnigGetString("passphrase.min8keys"));
425
function wizardGenKey() {
426
var wizard = document.getElementById("enigmailSetupWizard");
427
var passphrase = document.getElementById("passphrase").value;
429
var curId = wizardGetSelectedIdentity();
431
var userName = curId.fullName;
432
var userEmail = curId.email;
434
var ipcRequest = null;
436
onStartRequest: function () {},
437
onStopRequest: function(status) {
438
wizardKeygenTerminate(status);
440
onDataAvailable: function(data) {
441
DEBUG_LOG("enigmailSetupWizard.js: genKey - onDataAvailable() "+data+"\n");
444
var keyCreatedIndex = gAllData.indexOf("[GNUPG:] KEY_CREATED");
445
if (keyCreatedIndex >0) {
446
gGeneratedKey = gAllData.substr(keyCreatedIndex);
447
gGeneratedKey = gGeneratedKey.replace(/(.*\[GNUPG:\] KEY_CREATED . )([a-fA-F0-9]+)([\n\r].*)*/, "$2");
448
gAllData = gAllData.replace(/\[GNUPG:\] KEY_CREATED . [a-fA-F0-9]+[\n\r]/, "");
450
gAllData = gAllData.replace(/[\r\n]*\[GNUPG:\] GOOD_PASSPHRASE/g, "").replace(/([\r\n]*\[GNUPG:\] PROGRESS primegen )(.)( \d+ \d+)/g, "$2");
451
var progMeter = document.getElementById("keygenProgress");
452
var progValue = Number(progMeter.value);
453
progValue += (1+(100-progValue)/200);
454
if (progValue >= 95) progValue=10;
455
progMeter.setAttribute("value", progValue);
458
wizard.getButton("next").disabled = true;
459
wizard.getButton("back").disabled = true;
462
gKeygenRequest = Ec.generateKey(window,
463
Ec.convertFromUnicode(userName),
472
Ec.DEBUG_LOG("enigmailSetupWizard.js: genKey - generateKey() failed with "+ex.toString()+"\n"+ex.stack+"\n");
475
if (!gKeygenRequest) {
476
EnigAlert(EnigGetString("keyGenFailed"));
477
wizard.getButton("back").disabled = false;
481
WRITE_LOG("enigmailKeygen.js: Start: gKeygenRequest = "+gKeygenRequest+"\n");
485
function wizardSelKey() {
487
var createKey=document.getElementById("createPgpKey");
488
if (createKey.value == "0") {
489
var uidSel = document.getElementById("uidSelection");
490
var currIndex = uidSel.view.selection.currentIndex;
491
var currItem = uidSel.view.getItemAtIndex(currIndex);
492
gGeneratedKey = currItem.getAttribute("keyId");
497
function queryISupArray(supportsArray, iid) {
502
for (i=0; i<supportsArray.Count(); i++) {
503
result.push(supportsArray.GetElementAt(i).QueryInterface(iid));
508
for (i=0; i<supportsArray.length; i++) {
509
result.push(supportsArray.queryElementAt(i, iid));
516
function countIdentities() {
517
var accountManager = Components.classes[ENIG_ACCOUNT_MANAGER_CONTRACTID].getService(Components.interfaces.nsIMsgAccountManager);
518
var idSupports = accountManager.allIdentities;
519
var identities = queryISupArray(idSupports,
520
Components.interfaces.nsIMsgIdentity);
521
return identities.length;
524
function checkIdentities() {
525
var wizard = document.getElementById("enigmailSetupWizard");
527
if (wizard.currentPage.next != "pgNoStart") {
528
if (countIdentities() <= 1) {
529
setNextPage("pgSign");
535
function fillIdentities(fillType)
537
DEBUG_LOG("enigmailSetupWizard.js: fillIdentities\n");
541
var identities = queryISupArray(gEnigAccountMgr.allIdentities,
542
Components.interfaces.nsIMsgIdentity);
544
if (fillType == "checkbox") {
545
parentElement = document.getElementById("idSelection");
548
parentElement = document.getElementById("userIdentityPopup");
550
// Find out default identity
551
var defIdentities = gEnigAccountMgr.defaultAccount.identities;
554
if (defIdentities.length >= 1) {
555
defIdentity = defIdentities.queryElementAt(0, Components.interfaces.nsIMsgIdentity);
557
defIdentity = identities[0];
562
if (defIdentities.Count() >= 1) {
563
defIdentity = defIdentities.QueryElementAt(0, Components.interfaces.nsIMsgIdentity);
565
defIdentity = identities[0];
569
if (document.getElementById("activateId").value == "0") {
570
// try to match with selected id
571
var node = document.getElementById("idSelection").firstChild;
574
var currId = gEnigAccountMgr.getIdentity(node.getAttribute("account-id"));
575
if (currId.key == defIdentity.key) {
579
node = node.nextSibling;
582
// default ID wasn't selected, take 1st selected ID
584
node = document.getElementById("idSelection").firstChild;
587
defIdentity = gEnigAccountMgr.getIdentity(node.getAttribute("account-id"));
590
node = node.nextSibling;
596
var child=parentElement.firstChild;
598
parentElement.removeChild(child);
599
child=parentElement.firstChild;
602
DEBUG_LOG("enigmailSetupWizard.js: fillIdentities: "+identities + "\n");
604
var disableId = document.getElementById("activateId").value == "1";
605
var selected = false;
606
for (var i=0; i<identities.length; i++) {
607
var identity = identities[i];
609
DEBUG_LOG("id.valid="+identity.valid+"\n");
610
if (!identity.valid || !identity.email)
613
var serverList = queryISupArray(
614
getServersForIdentity(gEnigAccountMgr, identity),
615
Components.interfaces.nsIMsgIncomingServer);
617
if (serverList.length > 0) {
618
var inServer = serverList[0];
620
var accountName = " - "+inServer.prettyName;
622
DEBUG_LOG("enigmailKeygen.js: accountName="+accountName+"\n");
623
DEBUG_LOG("enigmailKeygen.js: email="+identity.email+"\n");
625
if (fillType == "checkbox") {
626
var item = document.createElement('checkbox');
627
item.setAttribute('checked', "true");
628
item.setAttribute('disabled', disableId);
629
item.setAttribute('oncommand', "checkIdSelection()");
632
item = document.createElement('menuitem');
633
item.setAttribute('label', identity.identityName + accountName);
634
item.setAttribute('class', 'identity-popup-item');
636
item.setAttribute('label', identity.identityName + accountName);
637
item.setAttribute('accountname', accountName);
638
item.setAttribute('id', "acc-"+identity.key);
639
item.setAttribute('account-id', identity.key);
640
item.setAttribute('email', identity.email);
642
parentElement.appendChild(item);
644
if (fillType != "checkbox") {
645
// pre-select default ID
646
var idList = document.getElementById("userIdentity");
648
idList.selectedItem = item;
649
if (identity.key == defIdentity.key) {
650
idList.selectedItem = item;
658
function wizardGetSelectedIdentity()
660
var item = document.getElementById("userIdentity").selectedItem;
661
var identityKey = item.getAttribute('account-id');
663
return gEnigAccountMgr.getIdentity(identityKey);
666
function applyWizardSettings() {
667
DEBUG_LOG("enigmailSetupWizard.js: applyWizardSettings\n");
671
if (document.getElementById("activateId").value == "1") {
672
var idSupports = gEnigAccountMgr.allIdentities;
673
var identities = queryISupArray(idSupports,
674
Components.interfaces.nsIMsgIdentity);
675
for (var i=0; i<identities.length; i++) {
676
wizardApplyId(identities[i], gGeneratedKey);
680
var node = document.getElementById("idSelection").firstChild;
683
var identity = gEnigAccountMgr.getIdentity(node.getAttribute("account-id"));
684
wizardApplyId(identity, gGeneratedKey);
686
node = node.nextSibling;
690
applyMozSetting("imapOnDemand", "mail.server.default.mime_parts_on_demand", false);
691
applyMozSetting("flowedText" ,"mailnews.send_plaintext_flowed", false);
692
applyMozSetting("quotedPrintable", "mail.strictly_mime", false);
693
applyMozSetting("viewPlainText", "mailnews.display.html_as", 1);
694
applyMozSetting("viewPlainText", "mailnews.display.prefer_plaintext", true);
696
EnigSetPref("configuredVersion", EnigGetVersion());
700
function applyMozSetting(param, preference, newVal) {
701
if (gEnigModifySettings[param]) {
702
if (typeof(newVal)=="boolean") {
703
EnigmailCommon.prefRoot.setBoolPref(preference, newVal);
705
else if (typeof(newVal)=="number") {
706
EnigmailCommon.prefRoot.setIntPref(preference, newVal);
708
else if (typeof(newVal)=="string") {
709
EnigmailCommon.prefRoot.setCharPref(preference, newVal);
714
function wizardApplyId(identity, keyId) {
715
DEBUG_LOG("enigmailSetupWizard.js: wizardApplyId: identity.Key="+identity.key+"\n");
716
var accountManager = Components.classes[ENIG_ACCOUNT_MANAGER_CONTRACTID].getService(Components.interfaces.nsIMsgAccountManager);
717
var idServers = getServersForIdentity(accountManager, identity);
718
var servers = queryISupArray(idServers ,Components.interfaces.nsIMsgIncomingServer);
720
var newsServer = false;
721
for (var i=0; i<servers.length; i++) {
722
newsServer = (servers[i].localStoreType == "news");
725
identity.setBoolAttribute("enablePgp", true);
726
identity.setIntAttribute("pgpKeyMode", 1);
727
identity.setCharAttribute("pgpkeyId", "0x"+keyId.substr(-8,8));
728
identity.setIntAttribute("openPgpHeaderMode", 0);
730
var signMsg = (document.getElementById("signMsg").value== "1");
731
var encryptMsg = ((!newsServer) && (document.getElementById("encryptMsg").value== "1"));
733
identity.setBoolAttribute("pgpSignEncrypted", signMsg);
734
identity.setBoolAttribute("pgpSignPlain", signMsg);
735
identity.setIntAttribute("defaultEncryptionPolicy", (encryptMsg ? 1 : 0));
736
if ((document.getElementById("changeSettings").value == "1") &&
737
gEnigModifySettings["composeHTML"]) {
738
identity.setBoolAttribute("compose_html", false);
743
function wizardKeygenTerminate(exitCode) {
744
DEBUG_LOG("enigmailSetupWizard.js: wizardKeygenTerminate\n");
746
// Give focus to this window
749
gKeygenRequest = null;
751
if ((! gGeneratedKey) || gGeneratedKey == KEYGEN_CANCELLED) return;
753
var progMeter = document.getElementById("keygenProgress");
754
progMeter.setAttribute("value", 100);
756
var curId = wizardGetSelectedIdentity();
758
if (EnigConfirm(EnigGetString("keygenComplete", curId.email)+"\n\n"+EnigGetString("revokeCertRecommended"), EnigGetString("keyMan.button.generateCert"), EnigGetString("dlg.button.skip"))) {
759
EnigCreateRevokeCert(gGeneratedKey, curId.email, wizardKeygenCleanup);
762
wizardKeygenCleanup();
766
function wizardKeygenCleanup() {
767
DEBUG_LOG("enigmailSetupWizard.js: wizardKeygenCleanup\n");
768
enigmailKeygenCloseRequest();
769
var enigmailSvc = enigGetSvc();
770
enigmailSvc.invalidateUserIdList();
772
var wizard = document.getElementById("enigmailSetupWizard");
773
wizard.goTo("pgComplete");
777
function disableIdSel(doDisable) {
778
var idSelectionBox = document.getElementById("idSelection");
779
var node = idSelectionBox.firstChild;
781
node.setAttribute('disabled',doDisable);
782
node = node.nextSibling;
793
function checkIdSelection() {
794
var node = document.getElementById("idSelection").firstChild;
796
disableNext(countSelectedId() < 1);
799
function showPrefDetails() {
801
window.openDialog("chrome://enigmail/content/enigmailWizardPrefs.xul",
802
"", "chrome,modal,centerscreen", gEnigModifySettings);
807
function loadLastPage() {
808
var wizard = document.getElementById("enigmailSetupWizard");
809
wizard.canRewind=false;
810
wizard.getButton("cancel").disabled = true;
814
function setNewKey() {
815
setNextPage('pgKeyCreate');
817
gCreateNewKey = true;
818
document.getElementById("uidSelection").boxObject.element.setAttribute("disabled", "true");
821
function setUseKey() {
822
setNextPage('pgSummary');
823
gCreateNewKey = false;
824
document.getElementById("uidSelection").boxObject.element.removeAttribute("disabled");
828
function setImportKeys() {
829
setNextPage('pgKeyImport');
830
gCreateNewKey = false;
832
document.getElementById("uidSelection").boxObject.element.setAttribute("disabled", "true");
835
function displayActions() {
838
function appendDesc(what) {
840
var item = document.getElementById("applyDesc"+currItem);
841
item.value="\u2013 "+what;
842
item.removeAttribute("collapsed");
845
var createKey1=document.getElementById("createPgpKey");
846
var createKey2=document.getElementById("newPgpKey");
849
document.getElementById("pgSettings").next == "pgKeyCreate") {
850
setNextPage('pgKeygen');
851
appendDesc(EnigGetString("setupWizard.createKey"));
854
setNextPage('pgComplete');
855
appendDesc(EnigGetString("setupWizard.useKey", gGeneratedKey));
858
var descList=document.getElementById("appliedSettings");
860
if (countIdentities() >1) {
861
if (document.getElementById("activateId").value == "1") {
862
appendDesc(EnigGetString("setupWizard.applyAllId"));
866
var node = document.getElementById("idSelection").firstChild;
869
var identity = gEnigAccountMgr.getIdentity(node.getAttribute("account-id"));
870
idList+="<"+identity.email+"> ";
872
node = node.nextSibling;
874
appendDesc(EnigGetString("setupWizard.applySomeId", idList));
878
appendDesc(EnigGetString("setupWizard.applySingleId", idList));
881
if (document.getElementById("signMsg").value== "1") {
882
appendDesc(EnigGetString("setupWizard.signAll"));
885
appendDesc(EnigGetString("setupWizard.signNone"));
888
if (document.getElementById("encryptMsg").value== "1") {
889
appendDesc(EnigGetString("setupWizard.encryptAll"));
892
appendDesc(EnigGetString("setupWizard.encryptNone"));
895
if (document.getElementById("changeSettings").value == "1") {
896
if (gEnigModifySettings["imapOnDemand"] &&
897
gEnigModifySettings["flowedText"] &&
898
gEnigModifySettings["quotedPrintable"] &&
899
gEnigModifySettings["viewPlainText"] &&
900
gEnigModifySettings["composeHTML"]) {
901
appendDesc(EnigGetString("setupWizard.setAllPrefs"));
903
else if (gEnigModifySettings["imapOnDemand"] ||
904
gEnigModifySettings["flowedText"] ||
905
gEnigModifySettings["quotedPrintable"] ||
906
gEnigModifySettings["viewPlainText"] ||
907
gEnigModifySettings["composeHTML"]) {
908
appendDesc(EnigGetString("setupWizard.setSomePrefs"));
911
appendDesc(EnigGetString("setupWizard.setNoPrefs"));
915
appendDesc(EnigGetString("setupWizard.setNoPrefs"));
920
function getServersForIdentity(accMgr, identity) {
923
return accMgr.getServersForIdentity(identity);
927
return accMgr.GetServersForIdentity(identity);