| Index: gecko-sdk/idl/nsIHttpChannel.idl
|
| ===================================================================
|
| --- gecko-sdk/idl/nsIHttpChannel.idl (revision 0)
|
| +++ gecko-sdk/idl/nsIHttpChannel.idl (revision 0)
|
| @@ -0,0 +1,296 @@
|
| +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
| +/* ***** BEGIN LICENSE BLOCK *****
|
| + * Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
| + *
|
| + * The contents of this file are subject to the Mozilla Public License Version
|
| + * 1.1 (the "License"); you may not use this file except in compliance with
|
| + * the License. You may obtain a copy of the License at
|
| + * http://www.mozilla.org/MPL/
|
| + *
|
| + * Software distributed under the License is distributed on an "AS IS" basis,
|
| + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
| + * for the specific language governing rights and limitations under the
|
| + * License.
|
| + *
|
| + * The Original Code is Mozilla.
|
| + *
|
| + * The Initial Developer of the Original Code is
|
| + * Netscape Communications.
|
| + * Portions created by the Initial Developer are Copyright (C) 2001
|
| + * the Initial Developer. All Rights Reserved.
|
| + *
|
| + * Contributor(s):
|
| + * Gagan Saksena <gagan@netscape.com> (original author)
|
| + * Darin Fisher <darin@netscape.com>
|
| + *
|
| + * Alternatively, the contents of this file may be used under the terms of
|
| + * either the GNU General Public License Version 2 or later (the "GPL"), or
|
| + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
| + * in which case the provisions of the GPL or the LGPL are applicable instead
|
| + * of those above. If you wish to allow use of your version of this file only
|
| + * under the terms of either the GPL or the LGPL, and not to allow others to
|
| + * use your version of this file under the terms of the MPL, indicate your
|
| + * decision by deleting the provisions above and replace them with the notice
|
| + * and other provisions required by the GPL or the LGPL. If you do not delete
|
| + * the provisions above, a recipient may use your version of this file under
|
| + * the terms of any one of the MPL, the GPL or the LGPL.
|
| + *
|
| + * ***** END LICENSE BLOCK ***** */
|
| +
|
| +#include "nsIChannel.idl"
|
| +
|
| +interface nsIHttpHeaderVisitor;
|
| +
|
| +/**
|
| + * 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.
|
| + *
|
| + * @status FROZEN
|
| + */
|
| +[scriptable, uuid(9277fe09-f0cc-4cd9-bbce-581dd94b0260)]
|
| +interface nsIHttpChannel : nsIChannel
|
| +{
|
| + /**************************************************************************
|
| + * REQUEST CONFIGURATION
|
| + *
|
| + * Modifying request parameters after asyncOpen has been called is an error.
|
| + */
|
| +
|
| + /**
|
| + * Set/get the HTTP request method (default is "GET"). Setter is case
|
| + * insensitive; getter returns an uppercase string.
|
| + *
|
| + * 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.
|
| + */
|
| + attribute ACString requestMethod;
|
| +
|
| + /**
|
| + * 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.
|
| + */
|
| + attribute nsIURI referrer;
|
| +
|
| + /**
|
| + * 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.
|
| + */
|
| + ACString getRequestHeader(in ACString aHeader);
|
| +
|
| + /**
|
| + * 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.
|
| + */
|
| + void setRequestHeader(in ACString aHeader,
|
| + in ACString aValue,
|
| + in boolean aMerge);
|
| +
|
| + /**
|
| + * 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.
|
| + */
|
| + void visitRequestHeaders(in nsIHttpHeaderVisitor aVisitor);
|
| +
|
| + /**
|
| + * This attribute is a hint to the channel to indicate whether or not
|
| + * the underlying HTTP transaction should be allowed to be pipelined
|
| + * with other transactions. This should be set to FALSE, for example,
|
| + * if the application knows that the corresponding document is likely
|
| + * to be very large.
|
| + *
|
| + * This attribute is true by default, though other factors may prevent
|
| + * pipelining.
|
| + *
|
| + * This attribute may only be set before the channel is opened.
|
| + *
|
| + * @throws NS_ERROR_FAILURE if set after the channel has been opened.
|
| + */
|
| + attribute boolean allowPipelining;
|
| +
|
| + /**
|
| + * 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).
|
| + */
|
| + attribute unsigned long redirectionLimit;
|
| +
|
| +
|
| + /**************************************************************************
|
| + * 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).
|
| + */
|
| + readonly attribute unsigned long responseStatus;
|
| +
|
| + /**
|
| + * 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).
|
| + */
|
| + readonly attribute ACString responseStatusText;
|
| +
|
| + /**
|
| + * 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).
|
| + */
|
| + readonly attribute boolean requestSucceeded;
|
| +
|
| + /**
|
| + * 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.
|
| + */
|
| + ACString getResponseHeader(in ACString header);
|
| +
|
| + /**
|
| + * 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.
|
| + */
|
| + void setResponseHeader(in ACString header,
|
| + in ACString value,
|
| + in boolean merge);
|
| +
|
| + /**
|
| + * 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).
|
| + */
|
| + void visitResponseHeaders(in nsIHttpHeaderVisitor aVisitor);
|
| +
|
| + /**
|
| + * 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).
|
| + */
|
| + boolean isNoStoreResponse();
|
| +
|
| + /**
|
| + * 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).
|
| + */
|
| + boolean isNoCacheResponse();
|
| +};
|
|
|
| Property changes on: gecko-sdk\idl\nsIHttpChannel.idl
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|