diff options
Diffstat (limited to 'mailnews/compose/src/nsSMTPProtocolHandler.js')
-rw-r--r-- | mailnews/compose/src/nsSMTPProtocolHandler.js | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/mailnews/compose/src/nsSMTPProtocolHandler.js b/mailnews/compose/src/nsSMTPProtocolHandler.js new file mode 100644 index 000000000..9b9e3ead0 --- /dev/null +++ b/mailnews/compose/src/nsSMTPProtocolHandler.js @@ -0,0 +1,62 @@ +/* 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/. */ + +Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); + +var kNetworkProtocolCIDPrefix = "@mozilla.org/network/protocol;1?name="; +var nsIProtocolHandler = Components.interfaces.nsIProtocolHandler; + +function makeProtocolHandler(aProtocol, aDefaultPort, aClassID) { + return { + classID: Components.ID(aClassID), + QueryInterface: XPCOMUtils.generateQI([nsIProtocolHandler]), + + scheme: aProtocol, + defaultPort: aDefaultPort, + protocolFlags: nsIProtocolHandler.URI_NORELATIVE | + nsIProtocolHandler.URI_DANGEROUS_TO_LOAD | + nsIProtocolHandler.URI_NON_PERSISTABLE | + nsIProtocolHandler.ALLOWS_PROXY | + nsIProtocolHandler.URI_FORBIDS_AUTOMATIC_DOCUMENT_REPLACEMENT, + + newURI: function (aSpec, aOriginCharset, aBaseURI) { + var url = Components.classes["@mozilla.org/messengercompose/smtpurl;1"] + .createInstance(Components.interfaces.nsIURI); + + url.spec = aSpec; + + return url; + }, + + newChannel: function (aURI) { + throw Components.results.NS_ERROR_NOT_IMPLEMENTED; + }, + + newChannel2: function(aURI, aLoadInfo) + { + throw Components.results.NS_ERROR_NOT_IMPLEMENTED; + }, + + allowPort: function (port, scheme) { + return port == aDefaultPort; + } + }; +} + +function nsSMTPProtocolHandler() {} + +nsSMTPProtocolHandler.prototype = + makeProtocolHandler("smtp", + Components.interfaces.nsISmtpUrl.DEFAULT_SMTP_PORT, + "b14c2b67-8680-4c11-8d63-9403c7d4f757"); + +function nsSMTPSProtocolHandler() {} + +nsSMTPSProtocolHandler.prototype = + makeProtocolHandler("smtps", + Components.interfaces.nsISmtpUrl.DEFAULT_SMTPS_PORT, + "057d0997-9e3a-411e-b4ee-2602f53fe05f"); + +var components = [nsSMTPProtocolHandler, nsSMTPSProtocolHandler]; +var NSGetFactory = XPCOMUtils.generateNSGetFactory(components); |