OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2003, 2006, 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2003, 2006, 2008 Apple Inc. All rights reserved. |
3 * Copyright (C) 2005, 2006 Alexey Proskuryakov <ap@nypop.com> | 3 * Copyright (C) 2005, 2006 Alexey Proskuryakov <ap@nypop.com> |
4 * Copyright (C) 2011 Google Inc. All rights reserved. | 4 * Copyright (C) 2011 Google Inc. All rights reserved. |
5 * Copyright (C) 2012 Intel Corporation | 5 * Copyright (C) 2012 Intel Corporation |
6 * | 6 * |
7 * This library is free software; you can redistribute it and/or | 7 * This library is free software; you can redistribute it and/or |
8 * modify it under the terms of the GNU Lesser General Public | 8 * modify it under the terms of the GNU Lesser General Public |
9 * License as published by the Free Software Foundation; either | 9 * License as published by the Free Software Foundation; either |
10 * version 2 of the License, or (at your option) any later version. | 10 * version 2 of the License, or (at your option) any later version. |
(...skipping 27 matching lines...) Expand all Loading... |
38 #include "wtf/text/StringBuilder.h" | 38 #include "wtf/text/StringBuilder.h" |
39 | 39 |
40 namespace WebCore { | 40 namespace WebCore { |
41 | 41 |
42 class Blob; | 42 class Blob; |
43 class Document; | 43 class Document; |
44 class DOMFormData; | 44 class DOMFormData; |
45 class ResourceRequest; | 45 class ResourceRequest; |
46 class SecurityOrigin; | 46 class SecurityOrigin; |
47 class SharedBuffer; | 47 class SharedBuffer; |
| 48 class Stream; |
48 class TextResourceDecoder; | 49 class TextResourceDecoder; |
49 class ThreadableLoader; | 50 class ThreadableLoader; |
50 | 51 |
51 class XMLHttpRequest : public ScriptWrappable, public RefCounted<XMLHttpRequest>
, public EventTarget, private ThreadableLoaderClient, public ActiveDOMObject { | 52 class XMLHttpRequest : public ScriptWrappable, public RefCounted<XMLHttpRequest>
, public EventTarget, private ThreadableLoaderClient, public ActiveDOMObject { |
52 WTF_MAKE_FAST_ALLOCATED; | 53 WTF_MAKE_FAST_ALLOCATED; |
53 public: | 54 public: |
54 static PassRefPtr<XMLHttpRequest> create(ScriptExecutionContext*, PassRefPtr
<SecurityOrigin> = 0); | 55 static PassRefPtr<XMLHttpRequest> create(ScriptExecutionContext*, PassRefPtr
<SecurityOrigin> = 0); |
55 ~XMLHttpRequest(); | 56 ~XMLHttpRequest(); |
56 | 57 |
57 // These exact numeric values are important because JS expects them. | 58 // These exact numeric values are important because JS expects them. |
58 enum State { | 59 enum State { |
59 UNSENT = 0, | 60 UNSENT = 0, |
60 OPENED = 1, | 61 OPENED = 1, |
61 HEADERS_RECEIVED = 2, | 62 HEADERS_RECEIVED = 2, |
62 LOADING = 3, | 63 LOADING = 3, |
63 DONE = 4 | 64 DONE = 4 |
64 }; | 65 }; |
65 | 66 |
66 enum ResponseTypeCode { | 67 enum ResponseTypeCode { |
67 ResponseTypeDefault, | 68 ResponseTypeDefault, |
68 ResponseTypeText, | 69 ResponseTypeText, |
69 ResponseTypeDocument, | 70 ResponseTypeDocument, |
70 ResponseTypeBlob, | 71 ResponseTypeBlob, |
71 ResponseTypeArrayBuffer | 72 ResponseTypeArrayBuffer, |
| 73 ResponseTypeStream |
72 }; | 74 }; |
73 | 75 |
74 virtual void contextDestroyed(); | 76 virtual void contextDestroyed(); |
75 virtual void didTimeout(); | 77 virtual void didTimeout(); |
76 virtual bool canSuspend() const; | 78 virtual bool canSuspend() const; |
77 virtual void suspend(ReasonForSuspension); | 79 virtual void suspend(ReasonForSuspension); |
78 virtual void resume(); | 80 virtual void resume(); |
79 virtual void stop(); | 81 virtual void stop(); |
80 | 82 |
81 virtual const AtomicString& interfaceName() const; | 83 virtual const AtomicString& interfaceName() const; |
(...skipping 19 matching lines...) Expand all Loading... |
101 void abort(); | 103 void abort(); |
102 void setRequestHeader(const AtomicString& name, const String& value, Excepti
onCode&); | 104 void setRequestHeader(const AtomicString& name, const String& value, Excepti
onCode&); |
103 void overrideMimeType(const String& override); | 105 void overrideMimeType(const String& override); |
104 String getAllResponseHeaders(ExceptionCode&) const; | 106 String getAllResponseHeaders(ExceptionCode&) const; |
105 String getResponseHeader(const AtomicString& name, ExceptionCode&) const; | 107 String getResponseHeader(const AtomicString& name, ExceptionCode&) const; |
106 ScriptString responseText(ExceptionCode&); | 108 ScriptString responseText(ExceptionCode&); |
107 Document* responseXML(ExceptionCode&); | 109 Document* responseXML(ExceptionCode&); |
108 Document* optionalResponseXML() const { return m_responseDocument.get(); } | 110 Document* optionalResponseXML() const { return m_responseDocument.get(); } |
109 Blob* responseBlob(ExceptionCode&); | 111 Blob* responseBlob(ExceptionCode&); |
110 Blob* optionalResponseBlob() const { return m_responseBlob.get(); } | 112 Blob* optionalResponseBlob() const { return m_responseBlob.get(); } |
| 113 Stream* responseStream(ExceptionCode&); |
111 unsigned long timeout() const { return m_timeoutMilliseconds; } | 114 unsigned long timeout() const { return m_timeoutMilliseconds; } |
112 void setTimeout(unsigned long timeout, ExceptionCode&); | 115 void setTimeout(unsigned long timeout, ExceptionCode&); |
113 | 116 |
114 void sendForInspectorXHRReplay(PassRefPtr<FormData>, ExceptionCode&); | 117 void sendForInspectorXHRReplay(PassRefPtr<FormData>, ExceptionCode&); |
115 | 118 |
116 // Expose HTTP validation methods for other untrusted requests. | 119 // Expose HTTP validation methods for other untrusted requests. |
117 static bool isAllowedHTTPMethod(const String&); | 120 static bool isAllowedHTTPMethod(const String&); |
118 static String uppercaseKnownHTTPMethod(const String&); | 121 static String uppercaseKnownHTTPMethod(const String&); |
119 static bool isAllowedHTTPHeader(const String&); | 122 static bool isAllowedHTTPHeader(const String&); |
120 | 123 |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
192 | 195 |
193 KURL m_url; | 196 KURL m_url; |
194 String m_method; | 197 String m_method; |
195 HTTPHeaderMap m_requestHeaders; | 198 HTTPHeaderMap m_requestHeaders; |
196 RefPtr<FormData> m_requestEntityBody; | 199 RefPtr<FormData> m_requestEntityBody; |
197 String m_mimeTypeOverride; | 200 String m_mimeTypeOverride; |
198 bool m_async; | 201 bool m_async; |
199 bool m_includeCredentials; | 202 bool m_includeCredentials; |
200 unsigned long m_timeoutMilliseconds; | 203 unsigned long m_timeoutMilliseconds; |
201 RefPtr<Blob> m_responseBlob; | 204 RefPtr<Blob> m_responseBlob; |
| 205 RefPtr<Stream> m_responseStream; |
202 | 206 |
203 RefPtr<ThreadableLoader> m_loader; | 207 RefPtr<ThreadableLoader> m_loader; |
204 State m_state; | 208 State m_state; |
205 | 209 |
206 ResourceResponse m_response; | 210 ResourceResponse m_response; |
207 String m_responseEncoding; | 211 String m_responseEncoding; |
208 | 212 |
209 RefPtr<TextResourceDecoder> m_decoder; | 213 RefPtr<TextResourceDecoder> m_decoder; |
210 | 214 |
211 ScriptString m_responseText; | 215 ScriptString m_responseText; |
(...skipping 24 matching lines...) Expand all Loading... |
236 | 240 |
237 // An enum corresponding to the allowed string values for the responseType a
ttribute. | 241 // An enum corresponding to the allowed string values for the responseType a
ttribute. |
238 ResponseTypeCode m_responseTypeCode; | 242 ResponseTypeCode m_responseTypeCode; |
239 Timer<XMLHttpRequest> m_protectionTimer; | 243 Timer<XMLHttpRequest> m_protectionTimer; |
240 RefPtr<SecurityOrigin> m_securityOrigin; | 244 RefPtr<SecurityOrigin> m_securityOrigin; |
241 }; | 245 }; |
242 | 246 |
243 } // namespace WebCore | 247 } // namespace WebCore |
244 | 248 |
245 #endif // XMLHttpRequest_h | 249 #endif // XMLHttpRequest_h |
OLD | NEW |