commit 0f1d01af3ab0572f4ffc25bb67c1b03afc9591f5 Author: Sukhbir Singh sukhbir@torproject.org Date: Fri May 13 18:26:10 2016 -0400
Secure NNTP settings on account creation (#7847) --- chrome.manifest | 1 + chrome/content/nntpwizard.js | 90 +++++++++++++++++++++++++++++++++++++++++++ chrome/content/nntpwizard.xul | 10 +++++ 3 files changed, 101 insertions(+)
diff --git a/chrome.manifest b/chrome.manifest index 431b4c9..33b0a10 100644 --- a/chrome.manifest +++ b/chrome.manifest @@ -4,6 +4,7 @@ overlay chrome://messenger/content/messenger.xul chrome://castironthunderbirdclu overlay chrome://messenger/content/messengercompose/messengercompose.xul chrome://castironthunderbirdclub/content/composeoverlay.xul overlay chrome://messenger/content/accountcreation/emailWizard.xul chrome://castironthunderbirdclub/content/emailwizard.xul overlay chrome://messenger-newsblog/content/feedAccountWizard.xul chrome://castironthunderbirdclub/content/feedwizard.xul +overlay chrome://messenger/content/AccountWizard.xul chrome://castironthunderbirdclub/content/nntpwizard.xul
component {ebd85413-18c8-4265-a708-a8890ec8d1ed} components/torbirdy.js contract @torproject.org/torbirdy;1 {ebd85413-18c8-4265-a708-a8890ec8d1ed} diff --git a/chrome/content/nntpwizard.js b/chrome/content/nntpwizard.js new file mode 100644 index 0000000..90051bb --- /dev/null +++ b/chrome/content/nntpwizard.js @@ -0,0 +1,90 @@ +Components.utils.import("resource://gre/modules/Preferences.jsm"); + +if (!org) var org = {}; +if (!org.torbirdy) org.torbirdy = {}; + +if (!org.torbirdy.nntpwizard) org.torbirdy.nntpwizard = new function() { + var pub = {}; + + pub.fixNntpPort = function(account) { + let key = account.incomingServer.key; + + let pref_spec = [ + // Set the port to 563 and connection security to SSL/TLS (NNTPS). + ['mail.server.%serverkey%.port', 563], + ['mail.server.%serverkey%.socketType', 3] + ]; + + for each (var [pref_template, value] in pref_spec) { + let pref = pref_template.replace("%serverkey%", key); + Preferences.set(pref, value); + } + }; + + // This is from mailnews/base/prefs/content/AccountWizard.xul : FinishAccount(). + FinishAccount = function() { + try { + var pageData = GetPageData(); + + var accountData= gCurrentAccountData; + + if (!accountData) + { + accountData = new Object; + // Time to set the smtpRequiresUsername attribute + if (!serverIsNntp(pageData)) + accountData.smtpRequiresUsername = true; + } + + // we may need local folders before account is "Finished" + // if it's a pop3 account which defers to Local Folders. + verifyLocalFoldersAccount(); + + PageDataToAccountData(pageData, accountData); + + FixupAccountDataForIsp(accountData); + + // we might be simply finishing another account + if (!gCurrentAccount) + gCurrentAccount = createAccount(accountData); + + // transfer all attributes from the accountdata + finishAccount(gCurrentAccount, accountData); + + setupCopiesAndFoldersServer(gCurrentAccount, getCurrentServerIsDeferred(pageData), accountData); + + if (gCurrentAccount.incomingServer.canBeDefaultServer) + EnableCheckMailAtStartUpIfNeeded(gCurrentAccount); + + if (!document.getElementById("downloadMsgs").hidden) { + // skip the default biff, we will load messages manually if needed + window.opener.gLoadStartFolder = false; + if (document.getElementById("downloadMsgs").checked) { + window.opener.gNewAccountToLoad = gCurrentAccount; // load messages for new POP account + } + } + + pub.fixNntpPort(gCurrentAccount); + + // in case we crash, force us a save of the prefs file NOW + try { + MailServices.accounts.saveAccountInfo(); + } + catch (ex) { + dump("Error saving account info: " + ex + "\n"); + } + window.close(); + if(top.okCallback) + { + var state = true; + //dump("finish callback"); + top.okCallback(state); + } + } + catch(ex) { + dump("FinishAccount failed, " + ex +"\n"); + } + }; + + return pub; +}; diff --git a/chrome/content/nntpwizard.xul b/chrome/content/nntpwizard.xul new file mode 100644 index 0000000..c9ccea1 --- /dev/null +++ b/chrome/content/nntpwizard.xul @@ -0,0 +1,10 @@ +<?xml version="1.0"?> + +<?xml-stylesheet href="chrome://messenger/skin/accountWizard.css" type="text/css"?> + +<wizard id="castironthunderbirdclub-nntpwizard-overlay" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%22%3E + + <script type="application/javascript" src="chrome://castironthunderbirdclub/content/nntpwizard.js" /> + +</wizard>
tor-commits@lists.torproject.org