Implemented by
- @mozilla.org/permissions/contentblocker;1
- @mozilla.org/layout/content-policy;1
- @mozilla.org/no-data-protocol-content-policy;1
- @mozilla.org/data-document-content-policy;1
- @mozilla.org/embedding/browser/content-policy;1
Interface for content policy mechanism. Implementations of this interface can be used to control loading of various types of out-of-line content, or processing of certain types of in-line content. WARNING: do not block the caller from shouldLoad or shouldProcess (e.g., by launching a dialog to prompt the user for something).
[scriptable, uuid(3bb1a3c8-3073-41e0-9a26-a7671955fb65)]
interface nsIContentPolicy : nsISupports
Constants
const
unsigned long
TYPE_OTHER = 1
Indicates an executable script (such as JavaScript).
const
unsigned long
TYPE_SCRIPT = 2
Indicates an image (e.g., IMG elements).
const
unsigned long
TYPE_IMAGE = 3
Indicates a stylesheet (e.g., STYLE elements).
const
unsigned long
TYPE_STYLESHEET = 4
Indicates a generic object (plugin-handled content typically falls under this category).
const
unsigned long
TYPE_OBJECT = 5
Indicates a document at the top-level (i.e., in a browser).
const
unsigned long
TYPE_DOCUMENT = 6
Indicates a document contained within another document (e.g., IFRAMEs, FRAMES, and OBJECTs).
const
unsigned long
TYPE_SUBDOCUMENT = 7
Indicates a timed refresh. shouldLoad will never get this, because it does not represent content to be loaded (the actual load triggered by the refresh will go through shouldLoad as expected). shouldProcess will get this for, e.g., META Refresh elements and HTTP Refresh headers.
const
unsigned long
TYPE_REFRESH = 8
Returned from shouldLoad or shouldProcess if the load or process request is rejected based on details of the request.
const
short
REJECT_REQUEST = -1
Returned from shouldLoad or shouldProcess if the load/process is rejected based solely on its type (of the above flags). NOTE that it is not meant to stop future requests for this type--only the current request.
const
short
REJECT_TYPE = -2
Returned from shouldLoad or shouldProcess if the load/process is rejected based on the server it is hosted on or requested from (aContentLocation or aRequestOrigin), e.g., if you block an IMAGE because it is served from goatse.cx (even if you don't necessarily block other types from that server/domain). NOTE that it is not meant to stop future requests for this server--only the current request.
const
short
REJECT_SERVER = -3
Returned from shouldLoad or shouldProcess if the load/process is rejected based on some other criteria. Mozilla callers will handle this like REJECT_REQUEST; third-party implementors may, for example, use this to direct their own callers to consult the extra parameter for additional details.
const
short
REJECT_OTHER = -4
Returned from shouldLoad or shouldProcess if the load or process request is not rejected.
const
short
ACCEPT = 1
Methods
Should the resource at this location be loaded?
ShouldLoad will be called before loading the resource at aContentLocation
to determine whether to start the load at all.
@param aContentType the type of content being tested. This will be one
one of the TYPE_* constants.
@param aContentLocation the location of the content being checked; must
not be null
@param aRequestOrigin OPTIONAL. the location of the resource that
initiated this load request; can be null if
inapplicable
@param aContext OPTIONAL. the nsIDOMNode or nsIDOMWindow that
initiated the request, or something that can QI
to one of those; can be null if inapplicable.
@param aMimeTypeGuess OPTIONAL. a guess for the requested content's
MIME type, based on information available to
the request initiator (e.g., an OBJECT's type
attribute); does not reliably reflect the
actual MIME type of the requested content
@param aExtra an OPTIONAL argument, pass-through for non-Gecko
callers to pass extra data to callees.
@return ACCEPT or REJECT_*
short
shouldLoad(in unsigned long aContentType, in nsIURI aContentLocation, in nsIURI aRequestOrigin, in nsISupports aContext, in ACString aMimeTypeGuess, in nsISupports aExtra)
Should the resource be processed?
ShouldProcess will be called once all the information passed to it has
been determined about the resource, typically after part of the resource
has been loaded.
@param aContentType the type of content being tested. This will be one
one of the TYPE_* constants.
@param aContentLocation OPTIONAL; the location of the resource being
requested: MAY be, e.g., a post-redirection URI
for the resource.
@param aRequestOrigin OPTIONAL. the location of the resource that
initiated this load request; can be null if
inapplicable
@param aContext OPTIONAL. the nsIDOMNode or nsIDOMWindow that
initiated the request, or something that can QI
to one of those; can be null if inapplicable.
@param aMimeType the MIME type of the requested resource (e.g.,
image/png), as reported by the networking library,
if available (may be empty if inappropriate for
the type, e.g., TYPE_REFRESH).
@param aExtra an OPTIONAL argument, pass-through for non-Gecko
callers to pass extra data to callees.
@return ACCEPT or REJECT_*
short
shouldProcess(in unsigned long aContentType, in nsIURI aContentLocation, in nsIURI aRequestOrigin, in nsISupports aContext, in ACString aMimeType, in nsISupports aExtra)
Compare to: