18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2003, 2006, 2008 Apple Inc. All rights reserved. 38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2005, 2006 Alexey Proskuryakov <ap@nypop.com> 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This library is free software; you can redistribute it and/or 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modify it under the terms of the GNU Lesser General Public 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * License as published by the Free Software Foundation; either 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * version 2 of the License, or (at your option) any later version. 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This library is distributed in the hope that it will be useful, 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * but WITHOUT ANY WARRANTY; without even the implied warranty of 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Lesser General Public License for more details. 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * You should have received a copy of the GNU Lesser General Public 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * License along with this library; if not, write to the Free Software 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef XMLHttpRequest_h 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define XMLHttpRequest_h 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "ActiveDOMObject.h" 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "EventListener.h" 25231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#include "EventNames.h" 268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "EventTarget.h" 278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "FormData.h" 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "ResourceResponse.h" 29635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include "ThreadableLoaderClient.h" 30dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include "XMLHttpRequestProgressEventThrottle.h" 318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <wtf/OwnPtr.h> 32f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick#include <wtf/text/AtomicStringHash.h> 33a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#include <wtf/text/StringBuilder.h> 348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace WebCore { 368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 374576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wangclass ArrayBuffer; 38d0825bca7fe65beaee391d30da42e937db621564Steve Blockclass Blob; 398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass Document; 40dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockclass DOMFormData; 41643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockclass ResourceRequest; 424576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wangclass SharedBuffer; 438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass TextResourceDecoder; 44635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Projectclass ThreadableLoader; 458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 46635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Projectclass XMLHttpRequest : public RefCounted<XMLHttpRequest>, public EventTarget, private ThreadableLoaderClient, public ActiveDOMObject { 47ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch WTF_MAKE_FAST_ALLOCATED; 488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectpublic: 49635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project static PassRefPtr<XMLHttpRequest> create(ScriptExecutionContext* context) { return adoptRef(new XMLHttpRequest(context)); } 508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ~XMLHttpRequest(); 518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // These exact numeric values are important because JS expects them. 538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project enum State { 548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project UNSENT = 0, 558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project OPENED = 1, 568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project HEADERS_RECEIVED = 2, 578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project LOADING = 3, 588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project DONE = 4 598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project }; 604576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang 614576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang enum ResponseTypeCode { 624576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang ResponseTypeDefault, 634576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang ResponseTypeText, 644576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang ResponseTypeDocument, 654576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang ResponseTypeBlob, 664576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang ResponseTypeArrayBuffer 674576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang }; 688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual XMLHttpRequest* toXMLHttpRequest() { return this; } 708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void contextDestroyed(); 72635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project virtual bool canSuspend() const; 7368513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual void suspend(ReasonForSuspension); 74dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual void resume(); 758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void stop(); 768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual ScriptExecutionContext* scriptExecutionContext() const; 788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 79bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen const KURL& url() const { return m_url; } 808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project String statusText(ExceptionCode&) const; 818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int status(ExceptionCode&) const; 828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project State readyState() const; 835f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian bool withCredentials() const { return m_includeCredentials; } 845f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian void setWithCredentials(bool, ExceptionCode&); 855ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen#if ENABLE(XHR_RESPONSE_BLOB) 864576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang bool asBlob() const { return responseTypeCode() == ResponseTypeBlob; } 875ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen void setAsBlob(bool, ExceptionCode&); 885ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen#endif 89dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void open(const String& method, const KURL&, ExceptionCode&); 908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void open(const String& method, const KURL&, bool async, ExceptionCode&); 918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void open(const String& method, const KURL&, bool async, const String& user, ExceptionCode&); 928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void open(const String& method, const KURL&, bool async, const String& user, const String& password, ExceptionCode&); 938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void send(ExceptionCode&); 948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void send(Document*, ExceptionCode&); 958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void send(const String&, ExceptionCode&); 96d0825bca7fe65beaee391d30da42e937db621564Steve Block void send(Blob*, ExceptionCode&); 97dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void send(DOMFormData*, ExceptionCode&); 984a156157940f51b91eadd76f6c86f862ec0a1da0Ben Murdoch void send(ArrayBuffer*, ExceptionCode&); 998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void abort(); 100635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project void setRequestHeader(const AtomicString& name, const String& value, ExceptionCode&); 1018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void overrideMimeType(const String& override); 1028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project String getAllResponseHeaders(ExceptionCode&) const; 103635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project String getResponseHeader(const AtomicString& name, ExceptionCode&) const; 104a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch String responseText(ExceptionCode&); 105a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch Document* responseXML(ExceptionCode&); 1064576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang Document* optionalResponseXML() const { return m_responseXML.get(); } 1075ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen#if ENABLE(XHR_RESPONSE_BLOB) 1085ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen Blob* responseBlob(ExceptionCode&) const; 1094576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang Blob* optionalResponseBlob() const { return m_responseBlob.get(); } 1104576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang#endif 1114576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang 1124576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang void setResponseType(const String&, ExceptionCode&); 1134576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang String responseType(); 1144576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang ResponseTypeCode responseTypeCode() const { return m_responseTypeCode; } 1154576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang 1164576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang // response attribute has custom getter. 1174576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang ArrayBuffer* responseArrayBuffer(ExceptionCode&); 1184576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang ArrayBuffer* optionalResponseArrayBuffer() const { return m_responseArrayBuffer.get(); } 1194576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang 1208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setLastSendLineNumber(unsigned lineNumber) { m_lastSendLineNumber = lineNumber; } 121635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project void setLastSendURL(const String& url) { m_lastSendURL = url; } 1228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project XMLHttpRequestUpload* upload(); 1248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project XMLHttpRequestUpload* optionalUpload() const { return m_upload.get(); } 1258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 126231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block DEFINE_ATTRIBUTE_EVENT_LISTENER(readystatechange); 127231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block DEFINE_ATTRIBUTE_EVENT_LISTENER(abort); 128231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block DEFINE_ATTRIBUTE_EVENT_LISTENER(error); 129231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block DEFINE_ATTRIBUTE_EVENT_LISTENER(load); 130231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block DEFINE_ATTRIBUTE_EVENT_LISTENER(loadstart); 131231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block DEFINE_ATTRIBUTE_EVENT_LISTENER(progress); 1328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project using RefCounted<XMLHttpRequest>::ref; 1348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project using RefCounted<XMLHttpRequest>::deref; 1358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectprivate: 137635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project XMLHttpRequest(ScriptExecutionContext*); 138231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 1398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void refEventTarget() { ref(); } 1408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void derefEventTarget() { deref(); } 141231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block virtual EventTargetData* eventTargetData(); 142231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block virtual EventTargetData* ensureEventTargetData(); 1438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Document* document() const; 1458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 146635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#if ENABLE(DASHBOARD_SUPPORT) 147635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project bool usesDashboardBackwardCompatibilityMode() const; 148635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#endif 149635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 150635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project virtual void didSendData(unsigned long long bytesSent, unsigned long long totalBytesToBeSent); 151635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project virtual void didReceiveResponse(const ResourceResponse&); 1522daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch virtual void didReceiveData(const char* data, int dataLength); 15381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch virtual void didFinishLoading(unsigned long identifier, double finishTime); 1548f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian virtual void didFail(const ResourceError&); 1558f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian virtual void didFailRedirectCheck(); 156635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project virtual void didReceiveAuthenticationCancellation(const ResourceResponse&); 1578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project String responseMIMEType() const; 1598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool responseIsXML() const; 1608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool initSend(ExceptionCode&); 1628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 163635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project String getRequestHeader(const AtomicString& name) const; 164635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project void setRequestHeaderInternal(const AtomicString& name, const String& value); 165635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project bool isSafeRequestHeader(const String&) const; 1668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void changeState(State newState); 1688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void callReadyStateChangeListener(); 1698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void dropProtection(); 1708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void internalAbort(); 1718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void clearResponse(); 17281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch void clearResponseBuffers(); 1738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void clearRequest(); 1748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void createRequest(ExceptionCode&); 1768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void genericError(); 1788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void networkError(); 1798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void abortError(); 1808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RefPtr<XMLHttpRequestUpload> m_upload; 1828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project KURL m_url; 1848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project String m_method; 1858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project HTTPHeaderMap m_requestHeaders; 1868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RefPtr<FormData> m_requestEntityBody; 1878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project String m_mimeTypeOverride; 1888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool m_async; 1895f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian bool m_includeCredentials; 1905ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen#if ENABLE(XHR_RESPONSE_BLOB) 1915ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen RefPtr<Blob> m_responseBlob; 1925ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen#endif 1938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 194635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project RefPtr<ThreadableLoader> m_loader; 1958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project State m_state; 1968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ResourceResponse m_response; 1988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project String m_responseEncoding; 1998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RefPtr<TextResourceDecoder> m_decoder; 2018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 202a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch StringBuilder m_responseBuilder; 2038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project mutable bool m_createdDocument; 2048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project mutable RefPtr<Document> m_responseXML; 2054576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang 2064576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang RefPtr<SharedBuffer> m_binaryResponseBuilder; 2074576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang mutable RefPtr<ArrayBuffer> m_responseArrayBuffer; 2088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool m_error; 2108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2118f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian bool m_uploadEventsAllowed; 2128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool m_uploadComplete; 2138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool m_sameOriginRequest; 2158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // Used for onprogress tracking 2178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project long long m_receivedLength; 218231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 2198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned m_lastSendLineNumber; 220635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project String m_lastSendURL; 2218f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian ExceptionCode m_exceptionCode; 222cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block 223231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block EventTargetData m_eventTargetData; 224dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 225dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block XMLHttpRequestProgressEventThrottle m_progressEventThrottle; 2264576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang 2274576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang // An enum corresponding to the allowed string values for the responseType attribute. 2284576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang ResponseTypeCode m_responseTypeCode; 2298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}; 2308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} // namespace WebCore 2328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif // XMLHttpRequest_h 234