nsIProtocolHandler

IID:15fd6940-8ea7-11d3-93ad-00104ba0fd40
Inherits From:nsISupports
Status:FROZEN

This interface is implemented by the following components:


Constants

Standard full URI with authority component and concept of relative URIs (http, ftp, ...)
PRUint32 URI_STD = 0
No concept of relative URIs (about, javascript, finger, ...)
PRUint32 URI_NORELATIVE = 1
No authority component (file, ...)
PRUint32 URI_NOAUTH = 2
This protocol handler can be proxied via a proxy (socks or http) (e.g., irc, smtp, http, etc.). If the protocol supports transparent proxying, the handler should implement nsIProxiedProtocolHandler.

If it supports only HTTP proxying, then it need not support nsIProxiedProtocolHandler, but should instead set the ALLOWS_PROXY_HTTP flag (see below).

PRUint32 ALLOWS_PROXY = 4
This protocol handler can be proxied using a http proxy (e.g., http, ftp, etc.). nsIIOService::newChannelFromURI will feed URIs from this protocol handler to the HTTP protocol handler instead. This flag is ignored if ALLOWS_PROXY is not set.
PRUint32 ALLOWS_PROXY_HTTP = 8

Properties

readonly PRInt32 defaultPort

The default port is the port that this protocol normally uses. If a port does not make sense for the protocol (e.g., "about:") then -1 will be returned.

readonly PRUint32 protocolFlags

Returns the protocol specific flags (see flag definitions below).

readonly ACString scheme

The scheme of this protocol (e.g., "file").


Methods

PRBool allowPort ( PRInt32 port , char* scheme ) nsIChannel newChannel ( nsIURI URI ) nsIURI newURI ( AUTF8String spec , char* originCharset , nsIURI baseURI )

PRBool allowPort ( PRInt32 port , char* scheme )

Allows a protocol to override blacklisted ports.

This method will be called when there is an attempt to connect to a port that is blacklisted. For example, for most protocols, port 25 (Simple Mail Transfer) is banned. When a URI containing this "known-to-do-bad-things" port number is encountered, this function will be called to ask if the protocol handler wants to override the ban.

Arguments:
port
scheme

nsIChannel newChannel ( nsIURI URI )

Constructs a new channel from the given URI for this protocol handler.

Arguments:
URI

nsIURI newURI ( AUTF8String spec , char* originCharset , nsIURI baseURI )

Makes a URI object that is suitable for loading by this protocol, where the URI string is given as an UTF-8 string. The caller may provide the charset from which the URI string originated, so that the URI string can be translated back to that charset (if necessary) before communicating with, for example, the origin server of the URI string. (Many servers do not support UTF-8 IRIs at the present time, so we must be careful about tracking the native charset of the origin server.)

Arguments:
spec: - the URI string in UTF-8 encoding. depending on the protocol implementation, unicode character sequences may or may not be %xx escaped.
originCharset: - the charset of the document from which this URI string originated. this corresponds to the charset that should be used when communicating this URI to an origin server, for example. if null, then UTF-8 encoding is assumed (i.e., no charset transformation from spec).
baseURI: - if null, spec must specify an absolute URI. otherwise, spec may be resolved relative to baseURI, depending on the protocol. If the protocol has no concept of relative URI baseURI will simply be ignored.

References

This interface is returned from the following methods:

nsIIOService.getProtocolHandler

Reference documentation is generated from Mozilla's source.