summaryrefslogtreecommitdiffstats
path: root/WebCore/xml/XMLHttpRequest.h
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/xml/XMLHttpRequest.h')
-rw-r--r--WebCore/xml/XMLHttpRequest.h37
1 files changed, 35 insertions, 2 deletions
diff --git a/WebCore/xml/XMLHttpRequest.h b/WebCore/xml/XMLHttpRequest.h
index 1b983e6..bc6815d 100644
--- a/WebCore/xml/XMLHttpRequest.h
+++ b/WebCore/xml/XMLHttpRequest.h
@@ -34,10 +34,12 @@
namespace WebCore {
+class ArrayBuffer;
class Blob;
class Document;
class DOMFormData;
class ResourceRequest;
+class SharedBuffer;
class TextResourceDecoder;
class ThreadableLoader;
@@ -54,6 +56,14 @@ public:
LOADING = 3,
DONE = 4
};
+
+ enum ResponseTypeCode {
+ ResponseTypeDefault,
+ ResponseTypeText,
+ ResponseTypeDocument,
+ ResponseTypeBlob,
+ ResponseTypeArrayBuffer
+ };
virtual XMLHttpRequest* toXMLHttpRequest() { return this; }
@@ -72,7 +82,7 @@ public:
bool withCredentials() const { return m_includeCredentials; }
void setWithCredentials(bool, ExceptionCode&);
#if ENABLE(XHR_RESPONSE_BLOB)
- bool asBlob() const { return m_asBlob; }
+ bool asBlob() const { return responseTypeCode() == ResponseTypeBlob; }
void setAsBlob(bool, ExceptionCode&);
#endif
void open(const String& method, const KURL&, ExceptionCode&);
@@ -84,6 +94,9 @@ public:
void send(const String&, ExceptionCode&);
void send(Blob*, ExceptionCode&);
void send(DOMFormData*, ExceptionCode&);
+#if ENABLE(3D_CANVAS) || ENABLE(BLOB)
+ void send(ArrayBuffer*, ExceptionCode&);
+#endif
void abort();
void setRequestHeader(const AtomicString& name, const String& value, ExceptionCode&);
void overrideMimeType(const String& override);
@@ -91,9 +104,22 @@ public:
String getResponseHeader(const AtomicString& name, ExceptionCode&) const;
String responseText(ExceptionCode&);
Document* responseXML(ExceptionCode&);
+ Document* optionalResponseXML() const { return m_responseXML.get(); }
#if ENABLE(XHR_RESPONSE_BLOB)
Blob* responseBlob(ExceptionCode&) const;
+ Blob* optionalResponseBlob() const { return m_responseBlob.get(); }
+#endif
+
+ void setResponseType(const String&, ExceptionCode&);
+ String responseType();
+ ResponseTypeCode responseTypeCode() const { return m_responseTypeCode; }
+
+#if ENABLE(3D_CANVAS) || ENABLE(BLOB)
+ // response attribute has custom getter.
+ ArrayBuffer* responseArrayBuffer(ExceptionCode&);
+ ArrayBuffer* optionalResponseArrayBuffer() const { return m_responseArrayBuffer.get(); }
#endif
+
void setLastSendLineNumber(unsigned lineNumber) { m_lastSendLineNumber = lineNumber; }
void setLastSendURL(const String& url) { m_lastSendURL = url; }
@@ -164,7 +190,6 @@ private:
bool m_async;
bool m_includeCredentials;
#if ENABLE(XHR_RESPONSE_BLOB)
- bool m_asBlob;
RefPtr<Blob> m_responseBlob;
#endif
@@ -179,6 +204,11 @@ private:
StringBuilder m_responseBuilder;
mutable bool m_createdDocument;
mutable RefPtr<Document> m_responseXML;
+
+#if ENABLE(3D_CANVAS) || ENABLE(BLOB)
+ RefPtr<SharedBuffer> m_binaryResponseBuilder;
+ mutable RefPtr<ArrayBuffer> m_responseArrayBuffer;
+#endif
bool m_error;
@@ -197,6 +227,9 @@ private:
EventTargetData m_eventTargetData;
XMLHttpRequestProgressEventThrottle m_progressEventThrottle;
+
+ // An enum corresponding to the allowed string values for the responseType attribute.
+ ResponseTypeCode m_responseTypeCode;
};
} // namespace WebCore