Struct xpcom::interfaces::nsIHttpChannel
[−]
[src]
#[repr(C)]pub struct nsIHttpChannel { /* fields omitted */ }
interface nsIHttpChannel : nsIChannel
/**
* nsIHttpChannel
*
* This interface allows for the modification of HTTP request parameters and
* the inspection of the resulting HTTP response status and headers when they
* become available.
*/
Methods
impl nsIHttpChannel
[src]
pub fn coerce<T: nsIHttpChannelCoerce>(&self) -> &T
[src]
Cast this nsIHttpChannel
to one of its base interfaces.
impl nsIHttpChannel
[src]
pub const REFERRER_POLICY_UNSET: i64
REFERRER_POLICY_UNSET: i64 = 0
/**
* Referrer policies. See ReferrerPolicy.h for more details.
*/
pub const REFERRER_POLICY_NO_REFERRER_WHEN_DOWNGRADE: i64
REFERRER_POLICY_NO_REFERRER_WHEN_DOWNGRADE: i64 = 1
pub const REFERRER_POLICY_NO_REFERRER: i64
REFERRER_POLICY_NO_REFERRER: i64 = 2
pub const REFERRER_POLICY_ORIGIN: i64
REFERRER_POLICY_ORIGIN: i64 = 3
pub const REFERRER_POLICY_ORIGIN_WHEN_XORIGIN: i64
REFERRER_POLICY_ORIGIN_WHEN_XORIGIN: i64 = 4
pub const REFERRER_POLICY_UNSAFE_URL: i64
REFERRER_POLICY_UNSAFE_URL: i64 = 5
pub const REFERRER_POLICY_SAME_ORIGIN: i64
REFERRER_POLICY_SAME_ORIGIN: i64 = 6
pub const REFERRER_POLICY_STRICT_ORIGIN: i64
REFERRER_POLICY_STRICT_ORIGIN: i64 = 7
pub const REFERRER_POLICY_STRICT_ORIGIN_WHEN_XORIGIN: i64
REFERRER_POLICY_STRICT_ORIGIN_WHEN_XORIGIN: i64 = 8
pub unsafe fn GetRequestMethod(
&self,
aRequestMethod: &mut nsACString
) -> nsresult
[src]
&self,
aRequestMethod: &mut nsACString
) -> nsresult
/**************************************************************************
* REQUEST CONFIGURATION
*
* Modifying request parameters after asyncOpen has been called is an error.
*/
/**
* Set/get the HTTP request method (default is "GET"). Both setter and
* getter are case sensitive.
*
* This attribute may only be set before the channel is opened.
*
* NOTE: The data for a "POST" or "PUT" request can be configured via
* nsIUploadChannel; however, after setting the upload data, it may be
* necessary to set the request method explicitly. The documentation
* for nsIUploadChannel has further details.
*
* @throws NS_ERROR_IN_PROGRESS if set after the channel has been opened.
*/
[must_use] attribute ACString requestMethod;
pub unsafe fn SetRequestMethod(&self, aRequestMethod: &nsACString) -> nsresult
[src]
/**************************************************************************
* REQUEST CONFIGURATION
*
* Modifying request parameters after asyncOpen has been called is an error.
*/
/**
* Set/get the HTTP request method (default is "GET"). Both setter and
* getter are case sensitive.
*
* This attribute may only be set before the channel is opened.
*
* NOTE: The data for a "POST" or "PUT" request can be configured via
* nsIUploadChannel; however, after setting the upload data, it may be
* necessary to set the request method explicitly. The documentation
* for nsIUploadChannel has further details.
*
* @throws NS_ERROR_IN_PROGRESS if set after the channel has been opened.
*/
[must_use] attribute ACString requestMethod;
pub unsafe fn GetReferrer(&self, aReferrer: *mut *const nsIURI) -> nsresult
[src]
/**
* Get/set the HTTP referrer URI. This is the address (URI) of the
* resource from which this channel's URI was obtained (see RFC2616 section
* 14.36).
*
* This attribute may only be set before the channel is opened.
*
* NOTE: The channel may silently refuse to set the Referer header if the
* URI does not pass certain security checks (e.g., a "https://" URL will
* never be sent as the referrer for a plaintext HTTP request). The
* implementation is not required to throw an exception when the referrer
* URI is rejected.
*
* @throws NS_ERROR_IN_PROGRESS if set after the channel has been opened.
* @throws NS_ERROR_FAILURE if used for setting referrer during
* visitRequestHeaders. Getting the value will not throw.
*/
[must_use] attribute nsIURI referrer;
pub unsafe fn SetReferrer(&self, aReferrer: *const nsIURI) -> nsresult
[src]
/**
* Get/set the HTTP referrer URI. This is the address (URI) of the
* resource from which this channel's URI was obtained (see RFC2616 section
* 14.36).
*
* This attribute may only be set before the channel is opened.
*
* NOTE: The channel may silently refuse to set the Referer header if the
* URI does not pass certain security checks (e.g., a "https://" URL will
* never be sent as the referrer for a plaintext HTTP request). The
* implementation is not required to throw an exception when the referrer
* URI is rejected.
*
* @throws NS_ERROR_IN_PROGRESS if set after the channel has been opened.
* @throws NS_ERROR_FAILURE if used for setting referrer during
* visitRequestHeaders. Getting the value will not throw.
*/
[must_use] attribute nsIURI referrer;
pub unsafe fn GetReferrerPolicy(
&self,
aReferrerPolicy: *mut uint32_t
) -> nsresult
[src]
&self,
aReferrerPolicy: *mut uint32_t
) -> nsresult
/**
* Get the HTTP referrer policy. The policy is retrieved from the meta
* referrer tag, which can be one of many values (see ReferrerPolicy.h for
* more details).
*/
[must_use] readonly attribute unsigned long referrerPolicy;
pub unsafe fn SetReferrerWithPolicy(
&self,
referrer: *const nsIURI,
referrerPolicy: uint32_t
) -> nsresult
[src]
&self,
referrer: *const nsIURI,
referrerPolicy: uint32_t
) -> nsresult
/**
* Set the HTTP referrer URI with a referrer policy.
* @throws NS_ERROR_FAILURE if called during visitRequestHeaders.
*/
[must_use] void setReferrerWithPolicy (in nsIURI referrer, in unsigned long referrerPolicy);
pub unsafe fn GetProtocolVersion(
&self,
aProtocolVersion: &mut nsACString
) -> nsresult
[src]
&self,
aProtocolVersion: &mut nsACString
) -> nsresult
/**
* Returns the network protocol used to fetch the resource as identified
* by the ALPN Protocol ID.
*
* @throws NS_ERROR_NOT_AVAILABLE if called before the response
* has been received (before onStartRequest).
*/
[must_use] readonly attribute ACString protocolVersion;
pub unsafe fn GetTransferSize(&self, aTransferSize: *mut uint64_t) -> nsresult
[src]
/**
* size consumed by the response header fields and the response payload body
*/
[must_use] readonly attribute uint64_t transferSize;
pub unsafe fn GetDecodedBodySize(
&self,
aDecodedBodySize: *mut uint64_t
) -> nsresult
[src]
&self,
aDecodedBodySize: *mut uint64_t
) -> nsresult
/**
* The size of the message body received by the client,
* after removing any applied content-codings
*/
[must_use] readonly attribute uint64_t decodedBodySize;
pub unsafe fn GetEncodedBodySize(
&self,
aEncodedBodySize: *mut uint64_t
) -> nsresult
[src]
&self,
aEncodedBodySize: *mut uint64_t
) -> nsresult
/**
* The size in octets of the payload body, prior to removing content-codings
*/
[must_use] readonly attribute uint64_t encodedBodySize;
pub unsafe fn GetRequestHeader(
&self,
aHeader: &nsACString,
_retval: &mut nsACString
) -> nsresult
[src]
&self,
aHeader: &nsACString,
_retval: &mut nsACString
) -> nsresult
/**
* Get the value of a particular request header.
*
* @param aHeader
* The case-insensitive name of the request header to query (e.g.,
* "Cache-Control").
*
* @return the value of the request header.
* @throws NS_ERROR_NOT_AVAILABLE if the header is not set.
*/
[must_use] ACString getRequestHeader (in ACString aHeader);
pub unsafe fn SetRequestHeader(
&self,
aHeader: &nsACString,
aValue: &nsACString,
aMerge: bool
) -> nsresult
[src]
&self,
aHeader: &nsACString,
aValue: &nsACString,
aMerge: bool
) -> nsresult
/**
* Set the value of a particular request header.
*
* This method allows, for example, the cookies module to add "Cookie"
* headers to the outgoing HTTP request.
*
* This method may only be called before the channel is opened.
*
* @param aHeader
* The case-insensitive name of the request header to set (e.g.,
* "Cookie").
* @param aValue
* The request header value to set (e.g., "X=1").
* @param aMerge
* If true, the new header value will be merged with any existing
* values for the specified header. This flag is ignored if the
* specified header does not support merging (e.g., the "Content-
* Type" header can only have one value). The list of headers for
* which this flag is ignored is an implementation detail. If this
* flag is false, then the header value will be replaced with the
* contents of |aValue|.
*
* If aValue is empty and aMerge is false, the header will be cleared.
*
* @throws NS_ERROR_IN_PROGRESS if called after the channel has been
* opened.
* @throws NS_ERROR_FAILURE if called during visitRequestHeaders.
*/
[must_use] void setRequestHeader (in ACString aHeader, in ACString aValue, in boolean aMerge);
pub unsafe fn SetEmptyRequestHeader(&self, aHeader: &nsACString) -> nsresult
[src]
/**
* Set a request header with empty value.
*
* This should be used with caution in the cases where the behavior of
* setRequestHeader ignoring empty header values is undesirable.
*
* This method may only be called before the channel is opened.
*
* @param aHeader
* The case-insensitive name of the request header to set (e.g.,
* "Cookie").
*
* @throws NS_ERROR_IN_PROGRESS if called after the channel has been
* opened.
* @throws NS_ERROR_FAILURE if called during visitRequestHeaders.
*/
[must_use] void setEmptyRequestHeader (in ACString aHeader);
pub unsafe fn VisitRequestHeaders(
&self,
aVisitor: *const nsIHttpHeaderVisitor
) -> nsresult
[src]
&self,
aVisitor: *const nsIHttpHeaderVisitor
) -> nsresult
/**
* Call this method to visit all request headers. Calling setRequestHeader
* while visiting request headers has undefined behavior. Don't do it!
*
* @param aVisitor
* the header visitor instance.
*/
[must_use] void visitRequestHeaders (in nsIHttpHeaderVisitor aVisitor);
pub unsafe fn VisitNonDefaultRequestHeaders(
&self,
aVisitor: *const nsIHttpHeaderVisitor
) -> nsresult
[src]
&self,
aVisitor: *const nsIHttpHeaderVisitor
) -> nsresult
/**
* Call this method to visit all non-default (UA-provided) request headers.
* Calling setRequestHeader while visiting request headers has undefined
* behavior. Don't do it!
*
* @param aVisitor
* the header visitor instance.
*/
[must_use] void visitNonDefaultRequestHeaders (in nsIHttpHeaderVisitor aVisitor);
pub unsafe fn GetAllowPipelining(&self, aAllowPipelining: *mut bool) -> nsresult
[src]
/**
* This attribute no longer has any effect, it remains for backwards compat
*
* @throws NS_ERROR_FAILURE if set after the channel has been opened.
*/
[must_use] attribute boolean allowPipelining;
pub unsafe fn SetAllowPipelining(&self, aAllowPipelining: bool) -> nsresult
[src]
/**
* This attribute no longer has any effect, it remains for backwards compat
*
* @throws NS_ERROR_FAILURE if set after the channel has been opened.
*/
[must_use] attribute boolean allowPipelining;
pub unsafe fn GetAllowSTS(&self, aAllowSTS: *mut bool) -> nsresult
[src]
/**
* This attribute of the channel indicates whether or not
* the underlying HTTP transaction should be honor stored Strict Transport
* Security directives for its principal. It defaults to true. Using
* OCSP to bootstrap the HTTPs is the likely use case for setting it to
* false.
*
* This attribute may only be set before the channel is opened.
*
* @throws NS_ERROR_IN_PROGRESS or NS_ERROR_ALREADY_OPENED
* if called after the channel has been opened.
*/
[must_use] attribute boolean allowSTS;
pub unsafe fn SetAllowSTS(&self, aAllowSTS: bool) -> nsresult
[src]
/**
* This attribute of the channel indicates whether or not
* the underlying HTTP transaction should be honor stored Strict Transport
* Security directives for its principal. It defaults to true. Using
* OCSP to bootstrap the HTTPs is the likely use case for setting it to
* false.
*
* This attribute may only be set before the channel is opened.
*
* @throws NS_ERROR_IN_PROGRESS or NS_ERROR_ALREADY_OPENED
* if called after the channel has been opened.
*/
[must_use] attribute boolean allowSTS;
pub unsafe fn GetRedirectionLimit(
&self,
aRedirectionLimit: *mut uint32_t
) -> nsresult
[src]
&self,
aRedirectionLimit: *mut uint32_t
) -> nsresult
/**
* This attribute specifies the number of redirects this channel is allowed
* to make. If zero, the channel will fail to redirect and will generate
* a NS_ERROR_REDIRECT_LOOP failure status.
*
* NOTE: An HTTP redirect results in a new channel being created. If the
* new channel supports nsIHttpChannel, then it will be assigned a value
* to its |redirectionLimit| attribute one less than the value of the
* redirected channel's |redirectionLimit| attribute. The initial value
* for this attribute may be a configurable preference (depending on the
* implementation).
*/
[must_use] attribute unsigned long redirectionLimit;
pub unsafe fn SetRedirectionLimit(
&self,
aRedirectionLimit: uint32_t
) -> nsresult
[src]
&self,
aRedirectionLimit: uint32_t
) -> nsresult
/**
* This attribute specifies the number of redirects this channel is allowed
* to make. If zero, the channel will fail to redirect and will generate
* a NS_ERROR_REDIRECT_LOOP failure status.
*
* NOTE: An HTTP redirect results in a new channel being created. If the
* new channel supports nsIHttpChannel, then it will be assigned a value
* to its |redirectionLimit| attribute one less than the value of the
* redirected channel's |redirectionLimit| attribute. The initial value
* for this attribute may be a configurable preference (depending on the
* implementation).
*/
[must_use] attribute unsigned long redirectionLimit;
pub unsafe fn GetResponseStatus(
&self,
aResponseStatus: *mut uint32_t
) -> nsresult
[src]
&self,
aResponseStatus: *mut uint32_t
) -> nsresult
/**************************************************************************
* RESPONSE INFO
*
* Accessing response info before the onStartRequest event is an error.
*/
/**
* Get the HTTP response code (e.g., 200).
*
* @throws NS_ERROR_NOT_AVAILABLE if called before the response
* has been received (before onStartRequest).
*/
[must_use] readonly attribute unsigned long responseStatus;
pub unsafe fn GetResponseStatusText(
&self,
aResponseStatusText: &mut nsACString
) -> nsresult
[src]
&self,
aResponseStatusText: &mut nsACString
) -> nsresult
/**
* Get the HTTP response status text (e.g., "OK").
*
* NOTE: This returns the raw (possibly 8-bit) text from the server. There
* are no assumptions made about the charset of the returned text. You
* have been warned!
*
* @throws NS_ERROR_NOT_AVAILABLE if called before the response
* has been received (before onStartRequest).
*/
[must_use] readonly attribute ACString responseStatusText;
pub unsafe fn GetRequestSucceeded(
&self,
aRequestSucceeded: *mut bool
) -> nsresult
[src]
&self,
aRequestSucceeded: *mut bool
) -> nsresult
/**
* Returns true if the HTTP response code indicates success. The value of
* nsIRequest::status will be NS_OK even when processing a 404 response
* because a 404 response may include a message body that (in some cases)
* should be shown to the user.
*
* Use this attribute to distinguish server error pages from normal pages,
* instead of comparing the response status manually against the set of
* valid response codes, if that is required by your application.
*
* @throws NS_ERROR_NOT_AVAILABLE if called before the response
* has been received (before onStartRequest).
*/
[must_use] readonly attribute boolean requestSucceeded;
pub unsafe fn GetIsMainDocumentChannel(
&self,
aIsMainDocumentChannel: *mut bool
) -> nsresult
[src]
&self,
aIsMainDocumentChannel: *mut bool
) -> nsresult
/** Indicates whether channel should be treated as the main one for the
* current document. If manually set to true, will always remain true. Otherwise,
* will be true if LOAD_DOCUMENT_URI is set in the channel's loadflags.
*/
[must_use] attribute boolean isMainDocumentChannel;
pub unsafe fn SetIsMainDocumentChannel(
&self,
aIsMainDocumentChannel: bool
) -> nsresult
[src]
&self,
aIsMainDocumentChannel: bool
) -> nsresult
/** Indicates whether channel should be treated as the main one for the
* current document. If manually set to true, will always remain true. Otherwise,
* will be true if LOAD_DOCUMENT_URI is set in the channel's loadflags.
*/
[must_use] attribute boolean isMainDocumentChannel;
pub unsafe fn GetResponseHeader(
&self,
header: &nsACString,
_retval: &mut nsACString
) -> nsresult
[src]
&self,
header: &nsACString,
_retval: &mut nsACString
) -> nsresult
/**
* Get the value of a particular response header.
*
* @param aHeader
* The case-insensitive name of the response header to query (e.g.,
* "Set-Cookie").
*
* @return the value of the response header.
*
* @throws NS_ERROR_NOT_AVAILABLE if called before the response
* has been received (before onStartRequest) or if the header is
* not set in the response.
*/
[must_use] ACString getResponseHeader (in ACString header);
pub unsafe fn SetResponseHeader(
&self,
header: &nsACString,
value: &nsACString,
merge: bool
) -> nsresult
[src]
&self,
header: &nsACString,
value: &nsACString,
merge: bool
) -> nsresult
/**
* Set the value of a particular response header.
*
* This method allows, for example, the HTML content sink to inform the HTTP
* channel about HTTP-EQUIV headers found in HTML <META> tags.
*
* @param aHeader
* The case-insensitive name of the response header to set (e.g.,
* "Cache-control").
* @param aValue
* The response header value to set (e.g., "no-cache").
* @param aMerge
* If true, the new header value will be merged with any existing
* values for the specified header. This flag is ignored if the
* specified header does not support merging (e.g., the "Content-
* Type" header can only have one value). The list of headers for
* which this flag is ignored is an implementation detail. If this
* flag is false, then the header value will be replaced with the
* contents of |aValue|.
*
* If aValue is empty and aMerge is false, the header will be cleared.
*
* @throws NS_ERROR_NOT_AVAILABLE if called before the response
* has been received (before onStartRequest).
* @throws NS_ERROR_ILLEGAL_VALUE if changing the value of this response
* header is not allowed.
* @throws NS_ERROR_FAILURE if called during visitResponseHeaders,
* VisitOriginalResponseHeaders or getOriginalResponseHeader.
*/
[must_use] void setResponseHeader (in ACString header, in ACString value, in boolean merge);
pub unsafe fn VisitResponseHeaders(
&self,
aVisitor: *const nsIHttpHeaderVisitor
) -> nsresult
[src]
&self,
aVisitor: *const nsIHttpHeaderVisitor
) -> nsresult
/**
* Call this method to visit all response headers. Calling
* setResponseHeader while visiting response headers has undefined
* behavior. Don't do it!
*
* @param aVisitor
* the header visitor instance.
*
* @throws NS_ERROR_NOT_AVAILABLE if called before the response
* has been received (before onStartRequest).
*/
[must_use] void visitResponseHeaders (in nsIHttpHeaderVisitor aVisitor);
pub unsafe fn GetOriginalResponseHeader(
&self,
aHeader: &nsACString,
aVisitor: *const nsIHttpHeaderVisitor
) -> nsresult
[src]
&self,
aHeader: &nsACString,
aVisitor: *const nsIHttpHeaderVisitor
) -> nsresult
/**
* Get the value(s) of a particular response header in the form and order
* it has been received from the remote peer. There can be multiple headers
* with the same name.
*
* @param aHeader
* The case-insensitive name of the response header to query (e.g.,
* "Set-Cookie").
*
* @param aVisitor
* the header visitor instance.
*
* @throws NS_ERROR_NOT_AVAILABLE if called before the response
* has been received (before onStartRequest) or if the header is
* not set in the response.
*/
[must_use] void getOriginalResponseHeader (in ACString aHeader, in nsIHttpHeaderVisitor aVisitor);
pub unsafe fn VisitOriginalResponseHeaders(
&self,
aVisitor: *const nsIHttpHeaderVisitor
) -> nsresult
[src]
&self,
aVisitor: *const nsIHttpHeaderVisitor
) -> nsresult
/**
* Call this method to visit all response headers in the form and order as
* they have been received from the remote peer.
* Calling setResponseHeader while visiting response headers has undefined
* behavior. Don't do it!
*
* @param aVisitor
* the header visitor instance.
*
* @throws NS_ERROR_NOT_AVAILABLE if called before the response
* has been received (before onStartRequest).
*/
[must_use] void visitOriginalResponseHeaders (in nsIHttpHeaderVisitor aVisitor);
pub unsafe fn IsNoStoreResponse(&self, _retval: *mut bool) -> nsresult
[src]
/**
* Returns true if the server sent a "Cache-Control: no-store" response
* header.
*
* @throws NS_ERROR_NOT_AVAILABLE if called before the response
* has been received (before onStartRequest).
*/
[must_use] boolean isNoStoreResponse ();
pub unsafe fn IsNoCacheResponse(&self, _retval: *mut bool) -> nsresult
[src]
/**
* Returns true if the server sent the equivalent of a "Cache-control:
* no-cache" response header. Equivalent response headers include:
* "Pragma: no-cache", "Expires: 0", and "Expires" with a date value
* in the past relative to the value of the "Date" header.
*
* @throws NS_ERROR_NOT_AVAILABLE if called before the response
* has been received (before onStartRequest).
*/
[must_use] boolean isNoCacheResponse ();
pub unsafe fn IsPrivateResponse(&self, _retval: *mut bool) -> nsresult
[src]
/**
* Returns true if the server sent a "Cache-Control: private" response
* header.
*
* @throws NS_ERROR_NOT_AVAILABLE if called before the response
* has been received (before onStartRequest).
*/
[must_use] boolean isPrivateResponse ();
pub unsafe fn RedirectTo(&self, aTargetURI: *const nsIURI) -> nsresult
[src]
/**
* Instructs the channel to immediately redirect to a new destination.
* Can only be called on channels that have not yet called their
* listener's OnStartRequest(). Generally that means the latest time
* this can be used is one of:
* "http-on-examine-response"
* "http-on-examine-merged-response"
* "http-on-examine-cached-response"
*
* When non-null URL is set before AsyncOpen:
* we attempt to redirect to the targetURI before we even start building
* and sending the request to the cache or the origin server.
* If the redirect is vetoed, we fail the channel.
*
* When set between AsyncOpen and first call to OnStartRequest being called:
* we attempt to redirect before we start delivery of network or cached
* response to the listener. If vetoed, we continue with delivery of
* the original content to the channel listener.
*
* When passed aTargetURI is null the channel behaves normally (can be
* rewritten).
*
* This method provides no explicit conflict resolution. The last
* caller to call it wins.
*
* @throws NS_ERROR_NOT_AVAILABLE if called after the channel has already
* started to deliver the content to its listener.
*/
[must_use] void redirectTo (in nsIURI aTargetURI);
pub unsafe fn UpgradeToSecure(&self) -> nsresult
[src]
/**
* Flags a channel to be upgraded to HTTPS.
*
* Upgrading to a secure channel must happen before or during
* "http-on-modify-request". If redirectTo is called early as well, it
* will win and upgradeToSecure will be a no-op.
*
* @throws NS_ERROR_NOT_AVAILABLE if called after the channel has already
* started to deliver the content to its listener.
*/
[must_use] void upgradeToSecure ();
pub unsafe fn GetRequestContextID(
&self,
aRequestContextID: *mut uint64_t
) -> nsresult
[src]
&self,
aRequestContextID: *mut uint64_t
) -> nsresult
/**
* Identifies the request context for this load.
*/
[must_use,noscript] attribute uint64_t requestContextID;
pub unsafe fn SetRequestContextID(
&self,
aRequestContextID: uint64_t
) -> nsresult
[src]
&self,
aRequestContextID: uint64_t
) -> nsresult
/**
* Identifies the request context for this load.
*/
[must_use,noscript] attribute uint64_t requestContextID;
pub unsafe fn GetChannelId(&self, aChannelId: *mut uint64_t) -> nsresult
[src]
/**
* Unique ID of the channel, shared between parent and child. Needed if
* the channel activity needs to be monitored across process boundaries,
* like in devtools net monitor. See bug 1274556.
*/
[must_use] attribute uint64_t channelId;
pub unsafe fn SetChannelId(&self, aChannelId: uint64_t) -> nsresult
[src]
/**
* Unique ID of the channel, shared between parent and child. Needed if
* the channel activity needs to be monitored across process boundaries,
* like in devtools net monitor. See bug 1274556.
*/
[must_use] attribute uint64_t channelId;
pub unsafe fn GetTopLevelContentWindowId(
&self,
aTopLevelContentWindowId: *mut uint64_t
) -> nsresult
[src]
&self,
aTopLevelContentWindowId: *mut uint64_t
) -> nsresult
/**
* ID of the top-level document's inner window. Identifies the content
* this channels is being load in.
*/
[must_use] attribute uint64_t topLevelContentWindowId;
pub unsafe fn SetTopLevelContentWindowId(
&self,
aTopLevelContentWindowId: uint64_t
) -> nsresult
[src]
&self,
aTopLevelContentWindowId: uint64_t
) -> nsresult
/**
* ID of the top-level document's inner window. Identifies the content
* this channels is being load in.
*/
[must_use] attribute uint64_t topLevelContentWindowId;
pub unsafe fn GetIsTrackingResource(&self) -> bool
[src]
/**
* Returns true if the channel has loaded a resource that is on the tracking
* protection list. This is only available if the
* privacy.trackingprotection.annotate_channels pref is set and its value
* should only be relied on after the channel has established a connection.
*/
[infallible] readonly attribute boolean isTrackingResource;
pub unsafe fn GetTopLevelOuterContentWindowId(
&self,
aTopLevelOuterContentWindowId: *mut uint64_t
) -> nsresult
[src]
&self,
aTopLevelOuterContentWindowId: *mut uint64_t
) -> nsresult
/**
* ID of the top-level outer content window. Identifies this channel's
* top-level window it comes from.
*
* NOTE: The setter of this attribute is currently for xpcshell test only.
* Don't alter it otherwise.
*/
[must_use] attribute uint64_t topLevelOuterContentWindowId;
pub unsafe fn SetTopLevelOuterContentWindowId(
&self,
aTopLevelOuterContentWindowId: uint64_t
) -> nsresult
[src]
&self,
aTopLevelOuterContentWindowId: uint64_t
) -> nsresult
/**
* ID of the top-level outer content window. Identifies this channel's
* top-level window it comes from.
*
* NOTE: The setter of this attribute is currently for xpcshell test only.
* Don't alter it otherwise.
*/
[must_use] attribute uint64_t topLevelOuterContentWindowId;
pub unsafe fn LogBlockedCORSRequest(&self, aMessage: &nsAString) -> nsresult
[src]
/**
* In e10s, the information that the CORS response blocks the load is in the
* parent, which doesn't know the true window id of the request, so we may
* need to proxy the request to the child.
*
* @param aMessage
* The message to print in the console.
*/
void logBlockedCORSRequest (in AString aMessage);
Methods from Deref<Target = nsIChannel>
pub fn coerce<T: nsIChannelCoerce>(&self) -> &T
[src]
Cast this nsIChannel
to one of its base interfaces.
pub const LOAD_DOCUMENT_URI: i64
pub const LOAD_RETARGETED_DOCUMENT_URI: i64
pub const LOAD_REPLACE: i64
pub const LOAD_INITIAL_DOCUMENT_URI: i64
pub const LOAD_TARGETED: i64
pub const LOAD_CALL_CONTENT_SNIFFERS: i64
pub const LOAD_CLASSIFY_URI: i64
pub const LOAD_MEDIA_SNIFFER_OVERRIDES_CONTENT_TYPE: i64
pub const LOAD_EXPLICIT_CREDENTIALS: i64
pub const LOAD_BYPASS_SERVICE_WORKER: i64
pub const DISPOSITION_INLINE: i64
pub const DISPOSITION_ATTACHMENT: i64
pub unsafe fn GetOriginalURI(
&self,
aOriginalURI: *mut *const nsIURI
) -> nsresult
[src]
&self,
aOriginalURI: *mut *const nsIURI
) -> nsresult
/**
* The nsIChannel interface allows clients to construct "GET" requests for
* specific protocols, and manage them in a uniform way. Once a channel is
* created (via nsIIOService::newChannel), parameters for that request may
* be set by using the channel attributes, or by QI'ing to a subclass of
* nsIChannel for protocol-specific parameters. Then, the URI can be fetched
* by calling nsIChannel::open or nsIChannel::asyncOpen.
*
* After a request has been completed, the channel is still valid for accessing
* protocol-specific results. For example, QI'ing to nsIHttpChannel allows
* response headers to be retrieved for the corresponding http transaction.
*
* This interface must be used only from the XPCOM main thread.
*/
/**
* The original URI used to construct the channel. This is used in
* the case of a redirect or URI "resolution" (e.g. resolving a
* resource: URI to a file: URI) so that the original pre-redirect
* URI can still be obtained. This is never null. Attempts to
* set it to null must throw.
*
* NOTE: this is distinctly different from the http Referer (referring URI),
* which is typically the page that contained the original URI (accessible
* from nsIHttpChannel).
*/
attribute nsIURI originalURI;
pub unsafe fn SetOriginalURI(&self, aOriginalURI: *const nsIURI) -> nsresult
[src]
/**
* The nsIChannel interface allows clients to construct "GET" requests for
* specific protocols, and manage them in a uniform way. Once a channel is
* created (via nsIIOService::newChannel), parameters for that request may
* be set by using the channel attributes, or by QI'ing to a subclass of
* nsIChannel for protocol-specific parameters. Then, the URI can be fetched
* by calling nsIChannel::open or nsIChannel::asyncOpen.
*
* After a request has been completed, the channel is still valid for accessing
* protocol-specific results. For example, QI'ing to nsIHttpChannel allows
* response headers to be retrieved for the corresponding http transaction.
*
* This interface must be used only from the XPCOM main thread.
*/
/**
* The original URI used to construct the channel. This is used in
* the case of a redirect or URI "resolution" (e.g. resolving a
* resource: URI to a file: URI) so that the original pre-redirect
* URI can still be obtained. This is never null. Attempts to
* set it to null must throw.
*
* NOTE: this is distinctly different from the http Referer (referring URI),
* which is typically the page that contained the original URI (accessible
* from nsIHttpChannel).
*/
attribute nsIURI originalURI;
pub unsafe fn GetURI(&self, aURI: *mut *const nsIURI) -> nsresult
[src]
/**
* The URI corresponding to the channel. Its value is immutable.
*/
readonly attribute nsIURI URI;
pub unsafe fn GetOwner(&self, aOwner: *mut *const nsISupports) -> nsresult
[src]
/**
* The owner, corresponding to the entity that is responsible for this
* channel. Used by the security manager to grant or deny privileges to
* mobile code loaded from this channel.
*
* NOTE: this is a strong reference to the owner, so if the owner is also
* holding a strong reference to the channel, care must be taken to
* explicitly drop its reference to the channel.
*/
attribute nsISupports owner;
pub unsafe fn SetOwner(&self, aOwner: *const nsISupports) -> nsresult
[src]
/**
* The owner, corresponding to the entity that is responsible for this
* channel. Used by the security manager to grant or deny privileges to
* mobile code loaded from this channel.
*
* NOTE: this is a strong reference to the owner, so if the owner is also
* holding a strong reference to the channel, care must be taken to
* explicitly drop its reference to the channel.
*/
attribute nsISupports owner;
pub unsafe fn GetNotificationCallbacks(
&self,
aNotificationCallbacks: *mut *const nsIInterfaceRequestor
) -> nsresult
[src]
&self,
aNotificationCallbacks: *mut *const nsIInterfaceRequestor
) -> nsresult
/**
* The notification callbacks for the channel. This is set by clients, who
* wish to provide a means to receive progress, status and protocol-specific
* notifications. If this value is NULL, the channel implementation may use
* the notification callbacks from its load group. The channel may also
* query the notification callbacks from its load group if its notification
* callbacks do not supply the requested interface.
*
* Interfaces commonly requested include: nsIProgressEventSink, nsIPrompt,
* and nsIAuthPrompt/nsIAuthPrompt2.
*
* When the channel is done, it must not continue holding references to
* this object.
*
* NOTE: A channel implementation should take care when "caching" an
* interface pointer queried from its notification callbacks. If the
* notification callbacks are changed, then a cached interface pointer may
* become invalid and may therefore need to be re-queried.
*/
attribute nsIInterfaceRequestor notificationCallbacks;
pub unsafe fn SetNotificationCallbacks(
&self,
aNotificationCallbacks: *const nsIInterfaceRequestor
) -> nsresult
[src]
&self,
aNotificationCallbacks: *const nsIInterfaceRequestor
) -> nsresult
/**
* The notification callbacks for the channel. This is set by clients, who
* wish to provide a means to receive progress, status and protocol-specific
* notifications. If this value is NULL, the channel implementation may use
* the notification callbacks from its load group. The channel may also
* query the notification callbacks from its load group if its notification
* callbacks do not supply the requested interface.
*
* Interfaces commonly requested include: nsIProgressEventSink, nsIPrompt,
* and nsIAuthPrompt/nsIAuthPrompt2.
*
* When the channel is done, it must not continue holding references to
* this object.
*
* NOTE: A channel implementation should take care when "caching" an
* interface pointer queried from its notification callbacks. If the
* notification callbacks are changed, then a cached interface pointer may
* become invalid and may therefore need to be re-queried.
*/
attribute nsIInterfaceRequestor notificationCallbacks;
pub unsafe fn GetSecurityInfo(
&self,
aSecurityInfo: *mut *const nsISupports
) -> nsresult
[src]
&self,
aSecurityInfo: *mut *const nsISupports
) -> nsresult
/**
* Transport-level security information (if any) corresponding to the
* channel.
*
* NOTE: In some circumstances TLS information is propagated onto
* non-nsIHttpChannel objects to indicate that their contents were likely
* delivered over TLS all the same. For example, document.open() may
* create an nsWyciwygChannel to store the data that will be written to the
* document. In that case, if the caller has TLS information, we propagate
* that info onto the nsWyciwygChannel given that it is likely that the
* caller will be writing data that was delivered over TLS to the document.
*/
readonly attribute nsISupports securityInfo;
pub unsafe fn GetContentType(&self, aContentType: &mut nsACString) -> nsresult
[src]
/**
* The MIME type of the channel's content if available.
*
* NOTE: the content type can often be wrongly specified (e.g., wrong file
* extension, wrong MIME type, wrong document type stored on a server, etc.),
* and the caller most likely wants to verify with the actual data.
*
* Setting contentType before the channel has been opened provides a hint
* to the channel as to what the MIME type is. The channel may ignore this
* hint in deciding on the actual MIME type that it will report.
*
* Setting contentType after onStartRequest has been fired or after open()
* is called will override the type determined by the channel.
*
* Setting contentType between the time that asyncOpen() is called and the
* time when onStartRequest is fired has undefined behavior at this time.
*
* The value of the contentType attribute is a lowercase string. A value
* assigned to this attribute will be parsed and normalized as follows:
* 1- any parameters (delimited with a ';') will be stripped.
* 2- if a charset parameter is given, then its value will replace the
* the contentCharset attribute of the channel.
* 3- the stripped contentType will be lowercased.
* Any implementation of nsIChannel must follow these rules.
*/
attribute ACString contentType;
pub unsafe fn SetContentType(&self, aContentType: &nsACString) -> nsresult
[src]
/**
* The MIME type of the channel's content if available.
*
* NOTE: the content type can often be wrongly specified (e.g., wrong file
* extension, wrong MIME type, wrong document type stored on a server, etc.),
* and the caller most likely wants to verify with the actual data.
*
* Setting contentType before the channel has been opened provides a hint
* to the channel as to what the MIME type is. The channel may ignore this
* hint in deciding on the actual MIME type that it will report.
*
* Setting contentType after onStartRequest has been fired or after open()
* is called will override the type determined by the channel.
*
* Setting contentType between the time that asyncOpen() is called and the
* time when onStartRequest is fired has undefined behavior at this time.
*
* The value of the contentType attribute is a lowercase string. A value
* assigned to this attribute will be parsed and normalized as follows:
* 1- any parameters (delimited with a ';') will be stripped.
* 2- if a charset parameter is given, then its value will replace the
* the contentCharset attribute of the channel.
* 3- the stripped contentType will be lowercased.
* Any implementation of nsIChannel must follow these rules.
*/
attribute ACString contentType;
pub unsafe fn GetContentCharset(
&self,
aContentCharset: &mut nsACString
) -> nsresult
[src]
&self,
aContentCharset: &mut nsACString
) -> nsresult
/**
* The character set of the channel's content if available and if applicable.
* This attribute only applies to textual data.
*
* The value of the contentCharset attribute is a mixedcase string.
*/
attribute ACString contentCharset;
pub unsafe fn SetContentCharset(&self, aContentCharset: &nsACString) -> nsresult
[src]
/**
* The character set of the channel's content if available and if applicable.
* This attribute only applies to textual data.
*
* The value of the contentCharset attribute is a mixedcase string.
*/
attribute ACString contentCharset;
pub unsafe fn GetContentLength(&self, aContentLength: *mut int64_t) -> nsresult
[src]
/**
* The length of the data associated with the channel if available. A value
* of -1 indicates that the content length is unknown. Note that this is a
* 64-bit value and obsoletes the "content-length" property used on some
* channels.
*/
attribute int64_t contentLength;
pub unsafe fn SetContentLength(&self, aContentLength: int64_t) -> nsresult
[src]
/**
* The length of the data associated with the channel if available. A value
* of -1 indicates that the content length is unknown. Note that this is a
* 64-bit value and obsoletes the "content-length" property used on some
* channels.
*/
attribute int64_t contentLength;
pub unsafe fn Open(&self, _retval: *mut *const nsIInputStream) -> nsresult
[src]
/**
* Synchronously open the channel.
*
* @return blocking input stream to the channel's data.
*
* NOTE: nsIChannel implementations are not required to implement this
* method. Moreover, since this method may block the calling thread, it
* should not be called on a thread that processes UI events. Like any
* other nsIChannel method it must not be called on any thread other
* than the XPCOM main thread.
*
* NOTE: Implementations should throw NS_ERROR_IN_PROGRESS if the channel
* is reopened.
*/
nsIInputStream open ();
pub unsafe fn Open2(&self, _retval: *mut *const nsIInputStream) -> nsresult
[src]
/**
* Performs content security check and calls open()
*/
nsIInputStream open2 ();
pub unsafe fn AsyncOpen(
&self,
aListener: *const nsIStreamListener,
aContext: *const nsISupports
) -> nsresult
[src]
&self,
aListener: *const nsIStreamListener,
aContext: *const nsISupports
) -> nsresult
/**
* Asynchronously open this channel. Data is fed to the specified stream
* listener as it becomes available. The stream listener's methods are
* called on the thread that calls asyncOpen and are not called until
* after asyncOpen returns. If asyncOpen returns successfully, the
* channel promises to call at least onStartRequest and onStopRequest.
*
* If the nsIRequest object passed to the stream listener's methods is not
* this channel, an appropriate onChannelRedirect notification needs to be
* sent to the notification callbacks before onStartRequest is called.
* Once onStartRequest is called, all following method calls on aListener
* will get the request that was passed to onStartRequest.
*
* If the channel's and loadgroup's notification callbacks do not provide
* an nsIChannelEventSink when onChannelRedirect would be called, that's
* equivalent to having called onChannelRedirect.
*
* If asyncOpen returns successfully, the channel is responsible for
* keeping itself alive until it has called onStopRequest on aListener or
* called onChannelRedirect.
*
* Implementations are allowed to synchronously add themselves to the
* associated load group (if any).
*
* NOTE: Implementations should throw NS_ERROR_ALREADY_OPENED if the
* channel is reopened.
*
* @param aListener the nsIStreamListener implementation
* @param aContext an opaque parameter forwarded to aListener's methods
* @see nsIChannelEventSink for onChannelRedirect
*/
void asyncOpen (in nsIStreamListener aListener, in nsISupports aContext);
pub unsafe fn AsyncOpen2(&self, aListener: *const nsIStreamListener) -> nsresult
[src]
/**
* Performs content security check and calls asyncOpen().
*/
void asyncOpen2 (in nsIStreamListener aListener);
pub unsafe fn GetContentDisposition(
&self,
aContentDisposition: *mut uint32_t
) -> nsresult
[src]
&self,
aContentDisposition: *mut uint32_t
) -> nsresult
/**
* Access to the type implied or stated by the Content-Disposition header
* if available and if applicable. This allows determining inline versus
* attachment.
*
* Setting contentDisposition provides a hint to the channel about the
* disposition. If a normal Content-Disposition header is present its
* value will always be used. If it is missing the hinted value will
* be used if set.
*
* Implementations should throw NS_ERROR_NOT_AVAILABLE if the header either
* doesn't exist for this type of channel or is empty, and return
* DISPOSITION_ATTACHMENT if an invalid/noncompliant value is present.
*/
attribute unsigned long contentDisposition;
pub unsafe fn SetContentDisposition(
&self,
aContentDisposition: uint32_t
) -> nsresult
[src]
&self,
aContentDisposition: uint32_t
) -> nsresult
/**
* Access to the type implied or stated by the Content-Disposition header
* if available and if applicable. This allows determining inline versus
* attachment.
*
* Setting contentDisposition provides a hint to the channel about the
* disposition. If a normal Content-Disposition header is present its
* value will always be used. If it is missing the hinted value will
* be used if set.
*
* Implementations should throw NS_ERROR_NOT_AVAILABLE if the header either
* doesn't exist for this type of channel or is empty, and return
* DISPOSITION_ATTACHMENT if an invalid/noncompliant value is present.
*/
attribute unsigned long contentDisposition;
pub unsafe fn GetContentDispositionFilename(
&self,
aContentDispositionFilename: &mut nsAString
) -> nsresult
[src]
&self,
aContentDispositionFilename: &mut nsAString
) -> nsresult
/**
* Access to the filename portion of the Content-Disposition header if
* available and if applicable. This allows getting the preferred filename
* without having to parse it out yourself.
*
* Setting contentDispositionFilename provides a hint to the channel about
* the disposition. If a normal Content-Disposition header is present its
* value will always be used. If it is missing the hinted value will be
* used if set.
*
* Implementations should throw NS_ERROR_NOT_AVAILABLE if the header doesn't
* exist for this type of channel, if the header is empty, if the header
* doesn't contain a filename portion, or the value of the filename
* attribute is empty/missing.
*/
attribute AString contentDispositionFilename;
pub unsafe fn SetContentDispositionFilename(
&self,
aContentDispositionFilename: &nsAString
) -> nsresult
[src]
&self,
aContentDispositionFilename: &nsAString
) -> nsresult
/**
* Access to the filename portion of the Content-Disposition header if
* available and if applicable. This allows getting the preferred filename
* without having to parse it out yourself.
*
* Setting contentDispositionFilename provides a hint to the channel about
* the disposition. If a normal Content-Disposition header is present its
* value will always be used. If it is missing the hinted value will be
* used if set.
*
* Implementations should throw NS_ERROR_NOT_AVAILABLE if the header doesn't
* exist for this type of channel, if the header is empty, if the header
* doesn't contain a filename portion, or the value of the filename
* attribute is empty/missing.
*/
attribute AString contentDispositionFilename;
pub unsafe fn GetContentDispositionHeader(
&self,
aContentDispositionHeader: &mut nsACString
) -> nsresult
[src]
&self,
aContentDispositionHeader: &mut nsACString
) -> nsresult
/**
* Access to the raw Content-Disposition header if available and applicable.
*
* Implementations should throw NS_ERROR_NOT_AVAILABLE if the header either
* doesn't exist for this type of channel or is empty.
*
* @deprecated Use contentDisposition/contentDispositionFilename instead.
*/
readonly attribute ACString contentDispositionHeader;
pub unsafe fn GetLoadInfo(&self, aLoadInfo: *mut *const nsILoadInfo) -> nsresult
[src]
/**
* The LoadInfo object contains information about a network load, why it
* was started, and how we plan on using the resulting response.
* If a network request is redirected, the new channel will receive a new
* LoadInfo object. The new object will contain mostly the same
* information as the pre-redirect one, but updated as appropriate.
* For detailed information about what parts of LoadInfo are updated on
* redirect, see documentation on individual properties.
*/
attribute nsILoadInfo loadInfo;
pub unsafe fn SetLoadInfo(&self, aLoadInfo: *const nsILoadInfo) -> nsresult
[src]
/**
* The LoadInfo object contains information about a network load, why it
* was started, and how we plan on using the resulting response.
* If a network request is redirected, the new channel will receive a new
* LoadInfo object. The new object will contain mostly the same
* information as the pre-redirect one, but updated as appropriate.
* For detailed information about what parts of LoadInfo are updated on
* redirect, see documentation on individual properties.
*/
attribute nsILoadInfo loadInfo;
pub unsafe fn GetIsDocument(&self, aIsDocument: *mut bool) -> nsresult
[src]
/**
* Returns true if the channel is used to create a document.
* It returns true if the loadFlags have LOAD_DOCUMENT_URI set, or if
* LOAD_HTML_OBJECT_DATA is set and the channel has the appropriate
* MIME type.
* Note: May have the wrong value if called before OnStartRequest as we
* don't know the MIME type yet.
*/
readonly attribute bool isDocument;
Trait Implementations
impl XpCom for nsIHttpChannel
[src]
const IID: nsIID
IID: nsIID = nsID(3315900531, 17721, 18887, [163, 242, 206, 195, 240, 97, 156, 108])
fn query_interface<T: XpCom>(&self) -> Option<RefPtr<T>>
[src]
Perform a QueryInterface call on this object, attempting to dynamically cast it to the requested interface type. Returns Some(RefPtr) if the cast succeeded, and None otherwise. Read more
impl RefCounted for nsIHttpChannel
[src]
unsafe fn addref(&self)
[src]
Increment the reference count.
unsafe fn release(&self)
[src]
Decrement the reference count, potentially freeing backing memory.
impl Deref for nsIHttpChannel
[src]
type Target = nsIChannel
The resulting type after dereferencing.
fn deref(&self) -> &nsIChannel
[src]
Dereferences the value.