From 302bf1b523012e11b60425d6eee1221ebc2724eb Mon Sep 17 00:00:00 2001 From: "Matt A. Tobin" Date: Sun, 3 Nov 2019 00:17:46 -0400 Subject: Issue #1258 - Part 1: Import mailnews, ldap, and mork from comm-esr52.9.1 --- mailnews/compose/content/askSendFormat.js | 58 + mailnews/compose/content/askSendFormat.xul | 46 + .../compose/content/mailComposeEditorOverlay.xul | 157 + .../compose/content/menulistCompactBindings.xml | 22 + mailnews/compose/content/sendProgress.js | 171 + mailnews/compose/content/sendProgress.xul | 50 + mailnews/compose/moz.build | 10 + mailnews/compose/public/moz.build | 35 + mailnews/compose/public/nsIMsgAttachment.idl | 124 + .../compose/public/nsIMsgAttachmentHandler.idl | 45 + mailnews/compose/public/nsIMsgCompFields.idl | 97 + mailnews/compose/public/nsIMsgCompUtils.idl | 14 + mailnews/compose/public/nsIMsgCompose.idl | 307 + mailnews/compose/public/nsIMsgComposeParams.idl | 81 + .../compose/public/nsIMsgComposeProgressParams.idl | 16 + mailnews/compose/public/nsIMsgComposeSecure.idl | 25 + mailnews/compose/public/nsIMsgComposeService.idl | 147 + mailnews/compose/public/nsIMsgQuote.idl | 35 + .../public/nsIMsgQuotingOutputStreamListener.idl | 16 + mailnews/compose/public/nsIMsgSend.idl | 405 ++ mailnews/compose/public/nsIMsgSendLater.idl | 66 + .../compose/public/nsIMsgSendLaterListener.idl | 86 + mailnews/compose/public/nsIMsgSendListener.idl | 57 + mailnews/compose/public/nsIMsgSendReport.idl | 47 + mailnews/compose/public/nsISmtpServer.idl | 131 + mailnews/compose/public/nsISmtpService.idl | 134 + mailnews/compose/public/nsISmtpUrl.idl | 110 + mailnews/compose/public/nsIURLFetcher.idl | 38 + mailnews/compose/public/nsMsgAttachmentData.h | 115 + mailnews/compose/public/nsMsgCompCID.h | 247 + mailnews/compose/src/moz.build | 55 + mailnews/compose/src/nsComposeStrings.cpp | 116 + mailnews/compose/src/nsComposeStrings.h | 77 + mailnews/compose/src/nsMsgAppleCodes.h | 106 + mailnews/compose/src/nsMsgAppleDouble.h | 207 + mailnews/compose/src/nsMsgAppleDoubleEncode.cpp | 266 + mailnews/compose/src/nsMsgAppleEncode.cpp | 703 +++ mailnews/compose/src/nsMsgAttachment.cpp | 262 + mailnews/compose/src/nsMsgAttachment.h | 41 + mailnews/compose/src/nsMsgAttachmentHandler.cpp | 1383 +++++ mailnews/compose/src/nsMsgAttachmentHandler.h | 194 + mailnews/compose/src/nsMsgCompFields.cpp | 693 +++ mailnews/compose/src/nsMsgCompFields.h | 172 + mailnews/compose/src/nsMsgCompUtils.cpp | 1803 ++++++ mailnews/compose/src/nsMsgCompUtils.h | 143 + mailnews/compose/src/nsMsgCompose.cpp | 6052 ++++++++++++++++++++ mailnews/compose/src/nsMsgCompose.h | 246 + .../compose/src/nsMsgComposeContentHandler.cpp | 125 + mailnews/compose/src/nsMsgComposeContentHandler.h | 20 + mailnews/compose/src/nsMsgComposeParams.cpp | 170 + mailnews/compose/src/nsMsgComposeParams.h | 30 + .../compose/src/nsMsgComposeProgressParams.cpp | 46 + mailnews/compose/src/nsMsgComposeProgressParams.h | 20 + mailnews/compose/src/nsMsgComposeService.cpp | 1479 +++++ mailnews/compose/src/nsMsgComposeService.h | 68 + mailnews/compose/src/nsMsgCopy.cpp | 553 ++ mailnews/compose/src/nsMsgCopy.h | 120 + mailnews/compose/src/nsMsgPrompts.cpp | 115 + mailnews/compose/src/nsMsgPrompts.h | 22 + mailnews/compose/src/nsMsgQuote.cpp | 233 + mailnews/compose/src/nsMsgQuote.h | 52 + mailnews/compose/src/nsMsgSend.cpp | 5218 +++++++++++++++++ mailnews/compose/src/nsMsgSend.h | 405 ++ mailnews/compose/src/nsMsgSendLater.cpp | 1552 +++++ mailnews/compose/src/nsMsgSendLater.h | 144 + mailnews/compose/src/nsMsgSendPart.cpp | 779 +++ mailnews/compose/src/nsMsgSendPart.h | 101 + mailnews/compose/src/nsMsgSendReport.cpp | 437 ++ mailnews/compose/src/nsMsgSendReport.h | 46 + mailnews/compose/src/nsSMTPProtocolHandler.js | 62 + .../compose/src/nsSMTPProtocolHandler.manifest | 4 + mailnews/compose/src/nsSmtpProtocol.cpp | 2249 ++++++++ mailnews/compose/src/nsSmtpProtocol.h | 225 + mailnews/compose/src/nsSmtpServer.cpp | 629 ++ mailnews/compose/src/nsSmtpServer.h | 40 + mailnews/compose/src/nsSmtpService.cpp | 772 +++ mailnews/compose/src/nsSmtpService.h | 63 + mailnews/compose/src/nsSmtpUrl.cpp | 778 +++ mailnews/compose/src/nsSmtpUrl.h | 100 + mailnews/compose/src/nsURLFetcher.cpp | 526 ++ mailnews/compose/src/nsURLFetcher.h | 101 + 81 files changed, 32695 insertions(+) create mode 100644 mailnews/compose/content/askSendFormat.js create mode 100644 mailnews/compose/content/askSendFormat.xul create mode 100644 mailnews/compose/content/mailComposeEditorOverlay.xul create mode 100644 mailnews/compose/content/menulistCompactBindings.xml create mode 100644 mailnews/compose/content/sendProgress.js create mode 100644 mailnews/compose/content/sendProgress.xul create mode 100644 mailnews/compose/moz.build create mode 100644 mailnews/compose/public/moz.build create mode 100644 mailnews/compose/public/nsIMsgAttachment.idl create mode 100644 mailnews/compose/public/nsIMsgAttachmentHandler.idl create mode 100644 mailnews/compose/public/nsIMsgCompFields.idl create mode 100644 mailnews/compose/public/nsIMsgCompUtils.idl create mode 100644 mailnews/compose/public/nsIMsgCompose.idl create mode 100644 mailnews/compose/public/nsIMsgComposeParams.idl create mode 100644 mailnews/compose/public/nsIMsgComposeProgressParams.idl create mode 100644 mailnews/compose/public/nsIMsgComposeSecure.idl create mode 100644 mailnews/compose/public/nsIMsgComposeService.idl create mode 100644 mailnews/compose/public/nsIMsgQuote.idl create mode 100644 mailnews/compose/public/nsIMsgQuotingOutputStreamListener.idl create mode 100644 mailnews/compose/public/nsIMsgSend.idl create mode 100644 mailnews/compose/public/nsIMsgSendLater.idl create mode 100644 mailnews/compose/public/nsIMsgSendLaterListener.idl create mode 100644 mailnews/compose/public/nsIMsgSendListener.idl create mode 100644 mailnews/compose/public/nsIMsgSendReport.idl create mode 100644 mailnews/compose/public/nsISmtpServer.idl create mode 100644 mailnews/compose/public/nsISmtpService.idl create mode 100644 mailnews/compose/public/nsISmtpUrl.idl create mode 100644 mailnews/compose/public/nsIURLFetcher.idl create mode 100644 mailnews/compose/public/nsMsgAttachmentData.h create mode 100644 mailnews/compose/public/nsMsgCompCID.h create mode 100644 mailnews/compose/src/moz.build create mode 100644 mailnews/compose/src/nsComposeStrings.cpp create mode 100644 mailnews/compose/src/nsComposeStrings.h create mode 100644 mailnews/compose/src/nsMsgAppleCodes.h create mode 100644 mailnews/compose/src/nsMsgAppleDouble.h create mode 100644 mailnews/compose/src/nsMsgAppleDoubleEncode.cpp create mode 100644 mailnews/compose/src/nsMsgAppleEncode.cpp create mode 100644 mailnews/compose/src/nsMsgAttachment.cpp create mode 100644 mailnews/compose/src/nsMsgAttachment.h create mode 100644 mailnews/compose/src/nsMsgAttachmentHandler.cpp create mode 100644 mailnews/compose/src/nsMsgAttachmentHandler.h create mode 100644 mailnews/compose/src/nsMsgCompFields.cpp create mode 100644 mailnews/compose/src/nsMsgCompFields.h create mode 100644 mailnews/compose/src/nsMsgCompUtils.cpp create mode 100644 mailnews/compose/src/nsMsgCompUtils.h create mode 100644 mailnews/compose/src/nsMsgCompose.cpp create mode 100644 mailnews/compose/src/nsMsgCompose.h create mode 100644 mailnews/compose/src/nsMsgComposeContentHandler.cpp create mode 100644 mailnews/compose/src/nsMsgComposeContentHandler.h create mode 100644 mailnews/compose/src/nsMsgComposeParams.cpp create mode 100644 mailnews/compose/src/nsMsgComposeParams.h create mode 100644 mailnews/compose/src/nsMsgComposeProgressParams.cpp create mode 100644 mailnews/compose/src/nsMsgComposeProgressParams.h create mode 100644 mailnews/compose/src/nsMsgComposeService.cpp create mode 100644 mailnews/compose/src/nsMsgComposeService.h create mode 100644 mailnews/compose/src/nsMsgCopy.cpp create mode 100644 mailnews/compose/src/nsMsgCopy.h create mode 100644 mailnews/compose/src/nsMsgPrompts.cpp create mode 100644 mailnews/compose/src/nsMsgPrompts.h create mode 100644 mailnews/compose/src/nsMsgQuote.cpp create mode 100644 mailnews/compose/src/nsMsgQuote.h create mode 100644 mailnews/compose/src/nsMsgSend.cpp create mode 100644 mailnews/compose/src/nsMsgSend.h create mode 100644 mailnews/compose/src/nsMsgSendLater.cpp create mode 100644 mailnews/compose/src/nsMsgSendLater.h create mode 100644 mailnews/compose/src/nsMsgSendPart.cpp create mode 100644 mailnews/compose/src/nsMsgSendPart.h create mode 100644 mailnews/compose/src/nsMsgSendReport.cpp create mode 100644 mailnews/compose/src/nsMsgSendReport.h create mode 100644 mailnews/compose/src/nsSMTPProtocolHandler.js create mode 100644 mailnews/compose/src/nsSMTPProtocolHandler.manifest create mode 100644 mailnews/compose/src/nsSmtpProtocol.cpp create mode 100644 mailnews/compose/src/nsSmtpProtocol.h create mode 100644 mailnews/compose/src/nsSmtpServer.cpp create mode 100644 mailnews/compose/src/nsSmtpServer.h create mode 100644 mailnews/compose/src/nsSmtpService.cpp create mode 100644 mailnews/compose/src/nsSmtpService.h create mode 100644 mailnews/compose/src/nsSmtpUrl.cpp create mode 100644 mailnews/compose/src/nsSmtpUrl.h create mode 100644 mailnews/compose/src/nsURLFetcher.cpp create mode 100644 mailnews/compose/src/nsURLFetcher.h (limited to 'mailnews/compose') diff --git a/mailnews/compose/content/askSendFormat.js b/mailnews/compose/content/askSendFormat.js new file mode 100644 index 000000000..17f4bafe4 --- /dev/null +++ b/mailnews/compose/content/askSendFormat.js @@ -0,0 +1,58 @@ +/* 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/. */ + +var gParam = null; + +/** + * This dialog should be opened with arguments like e.g. + * {action: nsIMsgCompSendFormat.AskUser, convertible: nsIMsgCompConvertible.Yes} + */ +function Startup() +{ + gParam = window.arguments[0]; + + const msgCompSendFormat = Components.interfaces.nsIMsgCompSendFormat; + const msgCompConvertible = Components.interfaces.nsIMsgCompConvertible; + + var bundle = document.getElementById("askSendFormatStringBundle"); + + // If the user hits the close box, we will abort. + gParam.abort = true; + + // Set the question label + var mailSendFormatExplanation = document.getElementById("mailSendFormatExplanation"); + var icon = document.getElementById("convertDefault"); + + switch (gParam.convertible) + { + case msgCompConvertible.Altering: + mailSendFormatExplanation.textContent = bundle.getString("convertibleAltering"); + icon.className = "question-icon"; + break; + case msgCompConvertible.No: + mailSendFormatExplanation.textContent = bundle.getString("convertibleNo"); + icon.className = "alert-icon"; + break; + default: // msgCompConvertible.Yes + mailSendFormatExplanation.textContent = bundle.getString("convertibleYes"); + // XXX change this to use class message-icon once bug 512173 is fixed + icon.className = "question-icon"; + break; + } + + // Set the default radio array value and recommendation. + var group = document.getElementById("mailDefaultHTMLAction"); + if (gParam.action != msgCompSendFormat.AskUser) + { + group.value = gParam.action; + group.selectedItem.label += " " + bundle.getString("recommended"); + } +} + +function Send() +{ + // gParam.action should be an integer for when it is returned to MsgComposeCommands.js + gParam.action = parseInt(document.getElementById("mailDefaultHTMLAction").value); + gParam.abort = false; +} diff --git a/mailnews/compose/content/askSendFormat.xul b/mailnews/compose/content/askSendFormat.xul new file mode 100644 index 000000000..751378bd8 --- /dev/null +++ b/mailnews/compose/content/askSendFormat.xul @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + diff --git a/mailnews/compose/content/menulistCompactBindings.xml b/mailnews/compose/content/menulistCompactBindings.xml new file mode 100644 index 000000000..5ca277347 --- /dev/null +++ b/mailnews/compose/content/menulistCompactBindings.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + diff --git a/mailnews/compose/content/sendProgress.js b/mailnews/compose/content/sendProgress.js new file mode 100644 index 000000000..8354cf953 --- /dev/null +++ b/mailnews/compose/content/sendProgress.js @@ -0,0 +1,171 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* 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/. */ + +var nsIMsgCompDeliverMode = Components.interfaces.nsIMsgCompDeliverMode; + +// dialog is just an array we'll use to store various properties from the dialog document... +var dialog; + +// the msgProgress is a nsIMsgProgress object +var msgProgress = null; + +// random global variables... +var itsASaveOperation = false; +var gSendProgressStringBundle; + +// all progress notifications are done through the nsIWebProgressListener implementation... +var progressListener = { + onStateChange: function(aWebProgress, aRequest, aStateFlags, aStatus) + { + if (aStateFlags & Components.interfaces.nsIWebProgressListener.STATE_START) + { + // Put progress meter in undetermined mode. + dialog.progress.setAttribute("mode", "undetermined"); + } + + if (aStateFlags & Components.interfaces.nsIWebProgressListener.STATE_STOP) + { + // we are done sending/saving the message... + // Indicate completion in status area. + var msg; + if (itsASaveOperation) + msg = gSendProgressStringBundle.getString("messageSaved"); + else + msg = gSendProgressStringBundle.getString("messageSent"); + dialog.status.setAttribute("value", msg); + + // Put progress meter at 100%. + dialog.progress.setAttribute("value", 100); + dialog.progress.setAttribute("mode", "normal"); + var percentMsg = gSendProgressStringBundle.getFormattedString("percentMsg", [100]); + dialog.progressText.setAttribute("value", percentMsg); + + window.close(); + } + }, + + onProgressChange: function(aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress) + { + // Calculate percentage. + var percent; + if (aMaxTotalProgress > 0) + { + percent = Math.round(aCurTotalProgress / aMaxTotalProgress * 100); + if (percent > 100) + percent = 100; + + dialog.progress.removeAttribute("mode"); + + // Advance progress meter. + dialog.progress.setAttribute("value", percent); + + // Update percentage label on progress meter. + var percentMsg = gSendProgressStringBundle.getFormattedString("percentMsg", [percent]); + dialog.progressText.setAttribute("value", percentMsg); + } + else + { + // Progress meter should be barber-pole in this case. + dialog.progress.setAttribute("mode", "undetermined"); + // Update percentage label on progress meter. + dialog.progressText.setAttribute("value", ""); + } + }, + + onLocationChange: function(aWebProgress, aRequest, aLocation, aFlags) + { + // we can ignore this notification + }, + + onStatusChange: function(aWebProgress, aRequest, aStatus, aMessage) + { + if (aMessage != "") + dialog.status.setAttribute("value", aMessage); + }, + + onSecurityChange: function(aWebProgress, aRequest, state) + { + // we can ignore this notification + }, + + QueryInterface : function(iid) + { + if (iid.equals(Components.interfaces.nsIWebProgressListener) || + iid.equals(Components.interfaces.nsISupportsWeakReference) || + iid.equals(Components.interfaces.nsISupports)) + return this; + + throw Components.results.NS_NOINTERFACE; + } +}; + +function onLoad() +{ + // Set global variables. + let subject = ""; + gSendProgressStringBundle = document.getElementById("sendProgressStringBundle"); + + msgProgress = window.arguments[0]; + if (!msgProgress) + { + Components.utils.reportError("Invalid argument to sendProgress.xul."); + window.close(); + return; + } + + if (window.arguments[1]) + { + let progressParams = window.arguments[1].QueryInterface(Components.interfaces.nsIMsgComposeProgressParams); + if (progressParams) + { + itsASaveOperation = (progressParams.deliveryMode != nsIMsgCompDeliverMode.Now); + subject = progressParams.subject; + } + } + + if (subject) { + let title = itsASaveOperation ? "titleSaveMsgSubject" : "titleSendMsgSubject"; + document.title = gSendProgressStringBundle.getFormattedString(title, [subject]); + } else { + let title = itsASaveOperation ? "titleSaveMsg" : "titleSendMsg"; + document.title = gSendProgressStringBundle.getString(title); + } + + dialog = {}; + dialog.status = document.getElementById("dialog.status"); + dialog.progress = document.getElementById("dialog.progress"); + dialog.progressText = document.getElementById("dialog.progressText"); + + // set our web progress listener on the helper app launcher + msgProgress.registerListener(progressListener); +} + +function onUnload() +{ + if (msgProgress) + { + try + { + msgProgress.unregisterListener(progressListener); + msgProgress = null; + } catch (e) {} + } +} + +// If the user presses cancel, tell the app launcher and close the dialog... +function onCancel() +{ + // Cancel app launcher. + try + { + msgProgress.processCanceledByUser = true; + } catch (e) + { + return true; + } + + // don't Close up dialog by returning false, the backend will close the dialog when everything will be aborted. + return false; +} diff --git a/mailnews/compose/content/sendProgress.xul b/mailnews/compose/content/sendProgress.xul new file mode 100644 index 000000000..45508387f --- /dev/null +++ b/mailnews/compose/content/sendProgress.xul @@ -0,0 +1,50 @@ + + + + + + + + + + +