Back to index

lightning-sunbird  0.9+nobinonly
Public Member Functions | Public Attributes
nsIURIContentListener Interface Reference

nsIURIContentListener is an interface used by components which want to know (and have a chance to handle) a particular content type. More...

import "nsIURIContentListener.idl";

Inheritance diagram for nsIURIContentListener:
Inheritance graph
[legend]
Collaboration diagram for nsIURIContentListener:
Collaboration graph
[legend]

List of all members.

Public Member Functions

boolean onStartURIOpen (in nsIURI aURI)
 Gives the original content listener first crack at stopping a load before it happens.
boolean doContent (in string aContentType, in boolean aIsContentPreferred, in nsIRequest aRequest, out nsIStreamListener aContentHandler)
 Notifies the content listener to hook up an nsIStreamListener capable of consuming the data stream.
boolean isPreferred (in string aContentType, out string aDesiredContentType)
 When given a uri to dispatch, if the URI is specified as 'preferred content' then the uri loader tries to find a preferred content handler for the content type.
boolean canHandleContent (in string aContentType, in boolean aIsContentPreferred, out string aDesiredContentType)
 When given a uri to dispatch, if the URI is not specified as 'preferred content' then the uri loader calls canHandleContent to see if the content listener is capable of handling the content.

Public Attributes

attribute nsISupports loadCookie
 The load context associated with a particular content listener.
attribute nsIURIContentListener parentContentListener
 The parent content listener if this particular listener is part of a chain of content listeners (i.e.

Detailed Description

nsIURIContentListener is an interface used by components which want to know (and have a chance to handle) a particular content type.

Typical usage scenarios will include running applications which register a nsIURIContentListener for each of its content windows with the uri dispatcher service.

FROZEN

Definition at line 54 of file nsIURIContentListener.idl.


Member Function Documentation

boolean nsIURIContentListener::canHandleContent ( in string  aContentType,
in boolean  aIsContentPreferred,
out string  aDesiredContentType 
)

When given a uri to dispatch, if the URI is not specified as 'preferred content' then the uri loader calls canHandleContent to see if the content listener is capable of handling the content.

Parameters:
aContentTypeContent type of the data.
aIsContentPreferredIndicates whether the content should be preferred by this listener.
aDesiredContentTypeIndicates that aContentType must be converted to aDesiredContentType before processing the data. This causes a stream converted to be inserted into the nsIStreamListener chain. This argument can be nsnull if the content should be consumed directly as aContentType.
Returns:
true if the data can be consumed. false otherwise.

Note: I really envision canHandleContent as a method implemented by the docshell as the implementation is generic to all doc shells. The isPreferred decision is a decision made by a top level application content listener that sits at the top of the docshell hierarchy.

boolean nsIURIContentListener::doContent ( in string  aContentType,
in boolean  aIsContentPreferred,
in nsIRequest  aRequest,
out nsIStreamListener  aContentHandler 
)

Notifies the content listener to hook up an nsIStreamListener capable of consuming the data stream.

Parameters:
aContentTypeContent type of the data.
aIsContentPreferredIndicates whether the content should be preferred by this listener.
aRequestRequest that is providing the data.
aContentHandlernsIStreamListener that will consume the data. This should be set to nsnull if this content listener can't handle the content type.
Returns:
true if the consumer wants to handle the load completely by itself. This causes the URI Loader do nothing else... false if the URI Loader should continue handling the load and call the returned streamlistener's methods.
boolean nsIURIContentListener::isPreferred ( in string  aContentType,
out string  aDesiredContentType 
)

When given a uri to dispatch, if the URI is specified as 'preferred content' then the uri loader tries to find a preferred content handler for the content type.

The thought is that many content listeners may be able to handle the same content type if they have to. i.e. the mail content window can handle text/html just like a browser window content listener. However, if the user clicks on a link with text/html content, then the browser window should handle that content and not the mail window where the user may have clicked the link. This is the difference between isPreferred and canHandleContent.

Parameters:
aContentTypeContent type of the data.
aDesiredContentTypeIndicates that aContentType must be converted to aDesiredContentType before processing the data. This causes a stream converted to be inserted into the nsIStreamListener chain. This argument can be nsnull if the content should be consumed directly as aContentType.
Returns:
true if this is a preferred content handler for aContentType; false otherwise.

Gives the original content listener first crack at stopping a load before it happens.

Parameters:
aURIURI that is being opened.
Returns:
false if the load can continue; true if the open should be aborted.

Member Data Documentation

The load context associated with a particular content listener.

The URI Loader stores and accesses this value as needed.

Definition at line 151 of file nsIURIContentListener.idl.

The parent content listener if this particular listener is part of a chain of content listeners (i.e.

a docshell!)

Note:
If this attribute is set to an object that implements nsISupportsWeakReference, the implementation should get the nsIWeakReference and hold that. Otherwise, the implementation should not refcount this interface; it should assume that a non null value is always valid. In that case, the caller is responsible for explicitly setting this value back to null if the parent content listener is destroyed.

Definition at line 165 of file nsIURIContentListener.idl.


The documentation for this interface was generated from the following file: