diff options
Diffstat (limited to 'WebCore/xml/XMLHttpRequest.h')
-rw-r--r-- | WebCore/xml/XMLHttpRequest.h | 37 |
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 |