Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(160)

Side by Side Diff: gecko-sdk/idl/nsIHttpChannel.idl

Issue 20346: Version 1.8 of gecko-sdk. Downloaded from here:... (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/
Patch Set: Created 11 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « gecko-sdk/idl/nsIHistoryEntry.idl ('k') | gecko-sdk/idl/nsIHttpHeaderVisitor.idl » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Property Changes:
Added: svn:eol-style
+ LF
OLDNEW
(Empty)
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /* ***** BEGIN LICENSE BLOCK *****
3 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
4 *
5 * The contents of this file are subject to the Mozilla Public License Version
6 * 1.1 (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 * http://www.mozilla.org/MPL/
9 *
10 * Software distributed under the License is distributed on an "AS IS" basis,
11 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12 * for the specific language governing rights and limitations under the
13 * License.
14 *
15 * The Original Code is Mozilla.
16 *
17 * The Initial Developer of the Original Code is
18 * Netscape Communications.
19 * Portions created by the Initial Developer are Copyright (C) 2001
20 * the Initial Developer. All Rights Reserved.
21 *
22 * Contributor(s):
23 * Gagan Saksena <gagan@netscape.com> (original author)
24 * Darin Fisher <darin@netscape.com>
25 *
26 * Alternatively, the contents of this file may be used under the terms of
27 * either the GNU General Public License Version 2 or later (the "GPL"), or
28 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
29 * in which case the provisions of the GPL or the LGPL are applicable instead
30 * of those above. If you wish to allow use of your version of this file only
31 * under the terms of either the GPL or the LGPL, and not to allow others to
32 * use your version of this file under the terms of the MPL, indicate your
33 * decision by deleting the provisions above and replace them with the notice
34 * and other provisions required by the GPL or the LGPL. If you do not delete
35 * the provisions above, a recipient may use your version of this file under
36 * the terms of any one of the MPL, the GPL or the LGPL.
37 *
38 * ***** END LICENSE BLOCK ***** */
39
40 #include "nsIChannel.idl"
41
42 interface nsIHttpHeaderVisitor;
43
44 /**
45 * nsIHttpChannel
46 *
47 * This interface allows for the modification of HTTP request parameters and
48 * the inspection of the resulting HTTP response status and headers when they
49 * become available.
50 *
51 * @status FROZEN
52 */
53 [scriptable, uuid(9277fe09-f0cc-4cd9-bbce-581dd94b0260)]
54 interface nsIHttpChannel : nsIChannel
55 {
56 /**************************************************************************
57 * REQUEST CONFIGURATION
58 *
59 * Modifying request parameters after asyncOpen has been called is an error.
60 */
61
62 /**
63 * Set/get the HTTP request method (default is "GET"). Setter is case
64 * insensitive; getter returns an uppercase string.
65 *
66 * This attribute may only be set before the channel is opened.
67 *
68 * NOTE: The data for a "POST" or "PUT" request can be configured via
69 * nsIUploadChannel; however, after setting the upload data, it may be
70 * necessary to set the request method explicitly. The documentation
71 * for nsIUploadChannel has further details.
72 *
73 * @throws NS_ERROR_IN_PROGRESS if set after the channel has been opened.
74 */
75 attribute ACString requestMethod;
76
77 /**
78 * Get/set the HTTP referrer URI. This is the address (URI) of the
79 * resource from which this channel's URI was obtained (see RFC2616 section
80 * 14.36).
81 *
82 * This attribute may only be set before the channel is opened.
83 *
84 * NOTE: The channel may silently refuse to set the Referer header if the
85 * URI does not pass certain security checks (e.g., a "https://" URL will
86 * never be sent as the referrer for a plaintext HTTP request). The
87 * implementation is not required to throw an exception when the referrer
88 * URI is rejected.
89 *
90 * @throws NS_ERROR_IN_PROGRESS if set after the channel has been opened.
91 */
92 attribute nsIURI referrer;
93
94 /**
95 * Get the value of a particular request header.
96 *
97 * @param aHeader
98 * The case-insensitive name of the request header to query (e.g.,
99 * "Cache-Control").
100 *
101 * @return the value of the request header.
102 * @throws NS_ERROR_NOT_AVAILABLE if the header is not set.
103 */
104 ACString getRequestHeader(in ACString aHeader);
105
106 /**
107 * Set the value of a particular request header.
108 *
109 * This method allows, for example, the cookies module to add "Cookie"
110 * headers to the outgoing HTTP request.
111 *
112 * This method may only be called before the channel is opened.
113 *
114 * @param aHeader
115 * The case-insensitive name of the request header to set (e.g.,
116 * "Cookie").
117 * @param aValue
118 * The request header value to set (e.g., "X=1").
119 * @param aMerge
120 * If true, the new header value will be merged with any existing
121 * values for the specified header. This flag is ignored if the
122 * specified header does not support merging (e.g., the "Content-
123 * Type" header can only have one value). The list of headers for
124 * which this flag is ignored is an implementation detail. If this
125 * flag is false, then the header value will be replaced with the
126 * contents of |aValue|.
127 *
128 * If aValue is empty and aMerge is false, the header will be cleared.
129 *
130 * @throws NS_ERROR_IN_PROGRESS if called after the channel has been
131 * opened.
132 */
133 void setRequestHeader(in ACString aHeader,
134 in ACString aValue,
135 in boolean aMerge);
136
137 /**
138 * Call this method to visit all request headers. Calling setRequestHeader
139 * while visiting request headers has undefined behavior. Don't do it!
140 *
141 * @param aVisitor
142 * the header visitor instance.
143 */
144 void visitRequestHeaders(in nsIHttpHeaderVisitor aVisitor);
145
146 /**
147 * This attribute is a hint to the channel to indicate whether or not
148 * the underlying HTTP transaction should be allowed to be pipelined
149 * with other transactions. This should be set to FALSE, for example,
150 * if the application knows that the corresponding document is likely
151 * to be very large.
152 *
153 * This attribute is true by default, though other factors may prevent
154 * pipelining.
155 *
156 * This attribute may only be set before the channel is opened.
157 *
158 * @throws NS_ERROR_FAILURE if set after the channel has been opened.
159 */
160 attribute boolean allowPipelining;
161
162 /**
163 * This attribute specifies the number of redirects this channel is allowed
164 * to make. If zero, the channel will fail to redirect and will generate
165 * a NS_ERROR_REDIRECT_LOOP failure status.
166 *
167 * NOTE: An HTTP redirect results in a new channel being created. If the
168 * new channel supports nsIHttpChannel, then it will be assigned a value
169 * to its |redirectionLimit| attribute one less than the value of the
170 * redirected channel's |redirectionLimit| attribute. The initial value
171 * for this attribute may be a configurable preference (depending on the
172 * implementation).
173 */
174 attribute unsigned long redirectionLimit;
175
176
177 /**************************************************************************
178 * RESPONSE INFO
179 *
180 * Accessing response info before the onStartRequest event is an error.
181 */
182
183 /**
184 * Get the HTTP response code (e.g., 200).
185 *
186 * @throws NS_ERROR_NOT_AVAILABLE if called before the response
187 * has been received (before onStartRequest).
188 */
189 readonly attribute unsigned long responseStatus;
190
191 /**
192 * Get the HTTP response status text (e.g., "OK").
193 *
194 * NOTE: This returns the raw (possibly 8-bit) text from the server. There
195 * are no assumptions made about the charset of the returned text. You
196 * have been warned!
197 *
198 * @throws NS_ERROR_NOT_AVAILABLE if called before the response
199 * has been received (before onStartRequest).
200 */
201 readonly attribute ACString responseStatusText;
202
203 /**
204 * Returns true if the HTTP response code indicates success. The value of
205 * nsIRequest::status will be NS_OK even when processing a 404 response
206 * because a 404 response may include a message body that (in some cases)
207 * should be shown to the user.
208 *
209 * Use this attribute to distinguish server error pages from normal pages,
210 * instead of comparing the response status manually against the set of
211 * valid response codes, if that is required by your application.
212 *
213 * @throws NS_ERROR_NOT_AVAILABLE if called before the response
214 * has been received (before onStartRequest).
215 */
216 readonly attribute boolean requestSucceeded;
217
218 /**
219 * Get the value of a particular response header.
220 *
221 * @param aHeader
222 * The case-insensitive name of the response header to query (e.g.,
223 * "Set-Cookie").
224 *
225 * @return the value of the response header.
226 *
227 * @throws NS_ERROR_NOT_AVAILABLE if called before the response
228 * has been received (before onStartRequest) or if the header is
229 * not set in the response.
230 */
231 ACString getResponseHeader(in ACString header);
232
233 /**
234 * Set the value of a particular response header.
235 *
236 * This method allows, for example, the HTML content sink to inform the HTTP
237 * channel about HTTP-EQUIV headers found in HTML <META> tags.
238 *
239 * @param aHeader
240 * The case-insensitive name of the response header to set (e.g.,
241 * "Cache-control").
242 * @param aValue
243 * The response header value to set (e.g., "no-cache").
244 * @param aMerge
245 * If true, the new header value will be merged with any existing
246 * values for the specified header. This flag is ignored if the
247 * specified header does not support merging (e.g., the "Content-
248 * Type" header can only have one value). The list of headers for
249 * which this flag is ignored is an implementation detail. If this
250 * flag is false, then the header value will be replaced with the
251 * contents of |aValue|.
252 *
253 * If aValue is empty and aMerge is false, the header will be cleared.
254 *
255 * @throws NS_ERROR_NOT_AVAILABLE if called before the response
256 * has been received (before onStartRequest).
257 * @throws NS_ERROR_ILLEGAL_VALUE if changing the value of this response
258 * header is not allowed.
259 */
260 void setResponseHeader(in ACString header,
261 in ACString value,
262 in boolean merge);
263
264 /**
265 * Call this method to visit all response headers. Calling
266 * setResponseHeader while visiting response headers has undefined
267 * behavior. Don't do it!
268 *
269 * @param aVisitor
270 * the header visitor instance.
271 *
272 * @throws NS_ERROR_NOT_AVAILABLE if called before the response
273 * has been received (before onStartRequest).
274 */
275 void visitResponseHeaders(in nsIHttpHeaderVisitor aVisitor);
276
277 /**
278 * Returns true if the server sent a "Cache-Control: no-store" response
279 * header.
280 *
281 * @throws NS_ERROR_NOT_AVAILABLE if called before the response
282 * has been received (before onStartRequest).
283 */
284 boolean isNoStoreResponse();
285
286 /**
287 * Returns true if the server sent the equivalent of a "Cache-control:
288 * no-cache" response header. Equivalent response headers include:
289 * "Pragma: no-cache", "Expires: 0", and "Expires" with a date value
290 * in the past relative to the value of the "Date" header.
291 *
292 * @throws NS_ERROR_NOT_AVAILABLE if called before the response
293 * has been received (before onStartRequest).
294 */
295 boolean isNoCacheResponse();
296 };
OLDNEW
« no previous file with comments | « gecko-sdk/idl/nsIHistoryEntry.idl ('k') | gecko-sdk/idl/nsIHttpHeaderVisitor.idl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698