summaryrefslogtreecommitdiffstats
path: root/comm/mailnews/compose/public/nsIMsgSendListener.idl
diff options
context:
space:
mode:
Diffstat (limited to 'comm/mailnews/compose/public/nsIMsgSendListener.idl')
-rw-r--r--comm/mailnews/compose/public/nsIMsgSendListener.idl79
1 files changed, 79 insertions, 0 deletions
diff --git a/comm/mailnews/compose/public/nsIMsgSendListener.idl b/comm/mailnews/compose/public/nsIMsgSendListener.idl
new file mode 100644
index 0000000000..0bca8cceb0
--- /dev/null
+++ b/comm/mailnews/compose/public/nsIMsgSendListener.idl
@@ -0,0 +1,79 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 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/. */
+
+#include "nsISupports.idl"
+
+interface nsIFile;
+interface nsITransportSecurityInfo;
+
+[scriptable, uuid(D34DC178-5E78-45E8-8658-A8F52D9CCF5F)]
+interface nsIMsgSendListener : nsISupports {
+
+ /**
+ * Notify the observer that the message has started to be delivered. This method is
+ * called only once, at the beginning of a message send operation.
+ *
+ * @return The return value is currently ignored. In the future it may be
+ * used to cancel the URL load..
+ */
+ void onStartSending(in string aMsgID, in uint32_t aMsgSize);
+
+ /**
+ * Notify the observer that progress as occurred for the message send
+ */
+ void onProgress(in string aMsgID, in uint32_t aProgress, in uint32_t aProgressMax);
+
+ /**
+ * Notify the observer with a status message for the message send
+ */
+ void onStatus(in string aMsgID, in wstring aMsg);
+
+ /**
+ * Notify the observer that the message has been sent. This method is
+ * called once when the networking library has finished processing the
+ * message.
+ *
+ * This method is called regardless of whether the the operation was successful.
+ * aMsgID The message id for the mail message
+ * status Status code for the message send.
+ * msg A text string describing the error.
+ * returnFileSpec The returned file spec for save to file operations.
+ */
+ void onStopSending(in string aMsgID, in nsresult aStatus, in wstring aMsg,
+ in nsIFile aReturnFile);
+
+ /**
+ * Notify the observer with the message id and the folder uri before the draft
+ * is copied.
+ */
+ void onGetDraftFolderURI(in string aMsgID, in AUTF8String aFolderURI);
+
+ /**
+ * Notify the observer when the user aborts the send without actually doing the send
+ * eg : by closing the compose window without Send.
+ */
+ void onSendNotPerformed(in string aMsgID, in nsresult aStatus);
+
+ /**
+ * Notify that an NSS security error has occurred during the send
+ * (e.g. Bad Certificate or SSL version failure).
+ * This callback is invoked before onStopSending(), in case a listener
+ * needs the securityInfo - most likely to get at a failed certificate,
+ * allowing the user to add an exception.
+ * onStopSending() will still be called after this, so a listener
+ * which doesn't need special NSS handling can just leave this callback as
+ * an empty function and leave the handling to onStopSending().
+ *
+ * @param {string} msgID - The message ID.
+ * @param {nsresult} status - The error code (it will be in the NSS error
+ * code range).
+ * @param {nsITransportSecurityInfo} secInfo
+ * - Security info for the failed operation.
+ * @param {ACString} location - The location of the failed operation
+ * ("<host>:<port>")
+ */
+ void onTransportSecurityError(in string msgID, in nsresult status, in nsITransportSecurityInfo secInfo, in ACString location);
+
+};