WARNING: Most of this content (with the exception of the Mozilla 1.9 XPCOM reference) is very old, and can be expected to be out of date and possibly obsolete. For better XUL documentation, please visit the XUL hub at the Mozilla Developer Center.

@mozilla.org/network/protocol;1?name=http

This component implements the following interfaces:

Constants

Standard full URI with authority component and concept of relative URIs (http, ftp, ...)
PRUint32 nsIProtocolHandler.URI_STD = 0
No concept of relative URIs (about, javascript, finger, ...)
PRUint32 nsIProtocolHandler.URI_NORELATIVE = 1
No authority component (file, ...)
PRUint32 nsIProtocolHandler.URI_NOAUTH = 2
The URIs for this protocol have no inherent security context, so documents loaded via this protocol should inherit the security context from the document that loads them.
PRUint32 nsIProtocolHandler.URI_INHERITS_SECURITY_CONTEXT = 16
"Automatic" loads that would replace the document (e.g. refresh, certain types of XLinks, possibly other loads that the application decides are not user triggered) are not allowed if the originating (NOT the target) URI has this protocol flag. Note that the decision as to what constitutes an "automatic" load is made externally, by the caller of nsIScriptSecurityManager::CheckLoadURI. See documentation for that method for more information.

A typical protocol that might want to set this flag is a protocol that shows highly untrusted content in a viewing area that the user expects to have a lot of control over, such as an e-mail reader.

PRUint32 nsIProtocolHandler.URI_FORBIDS_AUTOMATIC_DOCUMENT_REPLACEMENT = 32
The URIs for this protocol can be loaded by anyone. For example, any website should be allowed to trigger a load of a URI for this protocol. Web-safe protocols like "http" should set this flag.
PRUint32 nsIProtocolHandler.URI_LOADABLE_BY_ANYONE = 64
The URIs for this protocol are UNSAFE if loaded by untrusted (web) content and may only be loaded by privileged code (for example, code which has the system principal). Various internal protocols should set this flag.
PRUint32 nsIProtocolHandler.URI_DANGEROUS_TO_LOAD = 128
The URIs for this protocol point to resources that are part of the application's user interface. There are cases when such resources may be made accessible to untrusted content such as web pages, so this is less restrictive than URI_DANGEROUS_TO_LOAD but more restrictive than URI_LOADABLE_BY_ANYONE. See the documentation for nsIScriptSecurityManager::CheckLoadURI.
PRUint32 nsIProtocolHandler.URI_IS_UI_RESOURCE = 256
Loading of URIs for this protocol from other origins should only be allowed if those origins should have access to the local filesystem. It's up to the application to decide what origins should have such access. Protocols like "file" that point to local data should set this flag.
PRUint32 nsIProtocolHandler.URI_IS_LOCAL_FILE = 512
Loading channels from this protocol has side-effects that make it unsuitable for saving to a local file.
PRUint32 nsIProtocolHandler.URI_NON_PERSISTABLE = 1024
Channels using this protocol never call OnDataAvailable on the listener passed to AsyncOpen and they therefore do not return any data that we can use.
PRUint32 nsIProtocolHandler.URI_DOES_NOT_RETURN_DATA = 2048
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 nsIProtocolHandler.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 nsIProtocolHandler.ALLOWS_PROXY_HTTP = 8

Properties

readonly ACString nsIHttpProtocolHandler.appName

Get the application name.

readonly ACString nsIHttpProtocolHandler.appVersion

Get the application version string.

readonly PRInt32 nsIProtocolHandler.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.

ACString nsIHttpProtocolHandler.language

Get the translation of the application. The value for language is usually a 2-letter code such as "en" and occasionally a five-character code to indicate a language subtype, such as "zh_CN".

ACString nsIHttpProtocolHandler.misc

Get/Set the application comment misc portion.

readonly ACString nsIHttpProtocolHandler.oscpu

Get the current oscpu.

readonly ACString nsIHttpProtocolHandler.platform

Get the current platform.

ACString nsIHttpProtocolHandler.product

ACString nsIHttpProtocolHandler.productComment

ACString nsIHttpProtocolHandler.productSub

readonly PRUint32 nsIProtocolHandler.protocolFlags

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

readonly ACString nsIProtocolHandler.scheme

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

readonly ACString nsIHttpProtocolHandler.userAgent

Get the HTTP advertised user agent string.

ACString nsIHttpProtocolHandler.vendor

ACString nsIHttpProtocolHandler.vendorComment

ACString nsIHttpProtocolHandler.vendorSub

Methods

InterfaceMethod
nsIProtocolHandler PRBool allowPort ( PRInt32 port , char* scheme )
nsISupportsWeakReference nsIWeakReference GetWeakReference ( )
nsIProtocolHandler nsIChannel newChannel ( nsIURI URI )
nsIProxiedProtocolHandler nsIChannel newProxiedChannel ( nsIURI uri , nsIProxyInfo proxyInfo )
nsIProtocolHandler nsIURI newURI ( AUTF8String spec , char* originCharset , nsIURI baseURI )
nsIObserver void observe ( nsISupports subject , char* topic , PRUnichar* data )

Reference documentation is generated from Mozilla's source.