| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  *  Copyright (C) 2004, 2006, 2008 Apple Inc. All rights reserved. | 2  *  Copyright (C) 2004, 2006, 2008 Apple Inc. All rights reserved. | 
| 3  *  Copyright (C) 2005-2007 Alexey Proskuryakov <ap@webkit.org> | 3  *  Copyright (C) 2005-2007 Alexey Proskuryakov <ap@webkit.org> | 
| 4  *  Copyright (C) 2007, 2008 Julien Chaffraix <jchaffraix@webkit.org> | 4  *  Copyright (C) 2007, 2008 Julien Chaffraix <jchaffraix@webkit.org> | 
| 5  *  Copyright (C) 2008, 2011 Google Inc. All rights reserved. | 5  *  Copyright (C) 2008, 2011 Google Inc. All rights reserved. | 
| 6  *  Copyright (C) 2012 Intel Corporation | 6  *  Copyright (C) 2012 Intel Corporation | 
| 7  * | 7  * | 
| 8  *  This library is free software; you can redistribute it and/or | 8  *  This library is free software; you can redistribute it and/or | 
| 9  *  modify it under the terms of the GNU Lesser General Public | 9  *  modify it under the terms of the GNU Lesser General Public | 
| 10  *  License as published by the Free Software Foundation; either | 10  *  License as published by the Free Software Foundation; either | 
| (...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 244       m_eventDispatchRecursionLevel(0), | 244       m_eventDispatchRecursionLevel(0), | 
| 245       m_async(true), | 245       m_async(true), | 
| 246       m_includeCredentials(false), | 246       m_includeCredentials(false), | 
| 247       m_parsedResponse(false), | 247       m_parsedResponse(false), | 
| 248       m_error(false), | 248       m_error(false), | 
| 249       m_uploadEventsAllowed(true), | 249       m_uploadEventsAllowed(true), | 
| 250       m_uploadComplete(false), | 250       m_uploadComplete(false), | 
| 251       m_sameOriginRequest(true), | 251       m_sameOriginRequest(true), | 
| 252       m_downloadingToFile(false), | 252       m_downloadingToFile(false), | 
| 253       m_responseTextOverflow(false), | 253       m_responseTextOverflow(false), | 
| 254       m_sendFlag(false) {} | 254       m_sendFlag(false), | 
|  | 255       m_responseArrayBufferFailure(false) {} | 
| 255 | 256 | 
| 256 XMLHttpRequest::~XMLHttpRequest() {} | 257 XMLHttpRequest::~XMLHttpRequest() {} | 
| 257 | 258 | 
| 258 Document* XMLHttpRequest::document() const { | 259 Document* XMLHttpRequest::document() const { | 
| 259   DCHECK(getExecutionContext()->isDocument()); | 260   DCHECK(getExecutionContext()->isDocument()); | 
| 260   return toDocument(getExecutionContext()); | 261   return toDocument(getExecutionContext()); | 
| 261 } | 262 } | 
| 262 | 263 | 
| 263 SecurityOrigin* XMLHttpRequest::getSecurityOrigin() const { | 264 SecurityOrigin* XMLHttpRequest::getSecurityOrigin() const { | 
| 264   return m_isolatedWorldSecurityOrigin | 265   return m_isolatedWorldSecurityOrigin | 
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 379 | 380 | 
| 380   return m_responseBlob; | 381   return m_responseBlob; | 
| 381 } | 382 } | 
| 382 | 383 | 
| 383 DOMArrayBuffer* XMLHttpRequest::responseArrayBuffer() { | 384 DOMArrayBuffer* XMLHttpRequest::responseArrayBuffer() { | 
| 384   DCHECK_EQ(m_responseTypeCode, ResponseTypeArrayBuffer); | 385   DCHECK_EQ(m_responseTypeCode, ResponseTypeArrayBuffer); | 
| 385 | 386 | 
| 386   if (m_error || m_state != kDone) | 387   if (m_error || m_state != kDone) | 
| 387     return nullptr; | 388     return nullptr; | 
| 388 | 389 | 
| 389   if (!m_responseArrayBuffer) { | 390   if (!m_responseArrayBuffer && !m_responseArrayBufferFailure) { | 
| 390     if (m_binaryResponseBuilder && m_binaryResponseBuilder->size()) { | 391     if (m_binaryResponseBuilder && m_binaryResponseBuilder->size()) { | 
| 391       DOMArrayBuffer* buffer = DOMArrayBuffer::createUninitialized( | 392       DOMArrayBuffer* buffer = DOMArrayBuffer::createUninitializedOrNull( | 
| 392           m_binaryResponseBuilder->size(), 1); | 393           m_binaryResponseBuilder->size(), 1); | 
| 393       m_binaryResponseBuilder->getAsBytes( | 394       if (buffer) { | 
| 394           buffer->data(), static_cast<size_t>(buffer->byteLength())); | 395         m_binaryResponseBuilder->getAsBytes( | 
| 395       m_responseArrayBuffer = buffer; | 396             buffer->data(), static_cast<size_t>(buffer->byteLength())); | 
|  | 397         m_responseArrayBuffer = buffer; | 
|  | 398       } | 
|  | 399       // https://xhr.spec.whatwg.org/#arraybuffer-response allows clearing | 
|  | 400       // of the 'received bytes' payload when the response buffer allocation | 
|  | 401       // fails. | 
| 396       m_binaryResponseBuilder.clear(); | 402       m_binaryResponseBuilder.clear(); | 
|  | 403       // Mark allocation as failed; subsequent calls to the accessor must | 
|  | 404       // continue to report |null|. | 
|  | 405       // | 
|  | 406       m_responseArrayBufferFailure = !buffer; | 
| 397     } else { | 407     } else { | 
| 398       m_responseArrayBuffer = DOMArrayBuffer::create(nullptr, 0); | 408       m_responseArrayBuffer = DOMArrayBuffer::create(nullptr, 0); | 
| 399     } | 409     } | 
| 400   } | 410   } | 
| 401 | 411 | 
| 402   return m_responseArrayBuffer; | 412   return m_responseArrayBuffer; | 
| 403 } | 413 } | 
| 404 | 414 | 
| 405 void XMLHttpRequest::setTimeout(unsigned timeout, | 415 void XMLHttpRequest::setTimeout(unsigned timeout, | 
| 406                                 ExceptionState& exceptionState) { | 416                                 ExceptionState& exceptionState) { | 
| (...skipping 780 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1187 | 1197 | 
| 1188   m_responseBlob = nullptr; | 1198   m_responseBlob = nullptr; | 
| 1189 | 1199 | 
| 1190   m_downloadingToFile = false; | 1200   m_downloadingToFile = false; | 
| 1191   m_lengthDownloadedToFile = 0; | 1201   m_lengthDownloadedToFile = 0; | 
| 1192 | 1202 | 
| 1193   // These variables may referred by the response accessors. So, we can clear | 1203   // These variables may referred by the response accessors. So, we can clear | 
| 1194   // this only when we clear the response holder variables above. | 1204   // this only when we clear the response holder variables above. | 
| 1195   m_binaryResponseBuilder.clear(); | 1205   m_binaryResponseBuilder.clear(); | 
| 1196   m_responseArrayBuffer.clear(); | 1206   m_responseArrayBuffer.clear(); | 
|  | 1207   m_responseArrayBufferFailure = false; | 
| 1197 } | 1208 } | 
| 1198 | 1209 | 
| 1199 void XMLHttpRequest::clearRequest() { | 1210 void XMLHttpRequest::clearRequest() { | 
| 1200   m_requestHeaders.clear(); | 1211   m_requestHeaders.clear(); | 
| 1201 } | 1212 } | 
| 1202 | 1213 | 
| 1203 void XMLHttpRequest::dispatchProgressEvent(const AtomicString& type, | 1214 void XMLHttpRequest::dispatchProgressEvent(const AtomicString& type, | 
| 1204                                            long long receivedLength, | 1215                                            long long receivedLength, | 
| 1205                                            long long expectedLength) { | 1216                                            long long expectedLength) { | 
| 1206   bool lengthComputable = | 1217   bool lengthComputable = | 
| (...skipping 682 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1889   visitor->traceWrappers(m_responseDocument); | 1900   visitor->traceWrappers(m_responseDocument); | 
| 1890   visitor->traceWrappers(m_responseArrayBuffer); | 1901   visitor->traceWrappers(m_responseArrayBuffer); | 
| 1891   XMLHttpRequestEventTarget::traceWrappers(visitor); | 1902   XMLHttpRequestEventTarget::traceWrappers(visitor); | 
| 1892 } | 1903 } | 
| 1893 | 1904 | 
| 1894 std::ostream& operator<<(std::ostream& ostream, const XMLHttpRequest* xhr) { | 1905 std::ostream& operator<<(std::ostream& ostream, const XMLHttpRequest* xhr) { | 
| 1895   return ostream << "XMLHttpRequest " << static_cast<const void*>(xhr); | 1906   return ostream << "XMLHttpRequest " << static_cast<const void*>(xhr); | 
| 1896 } | 1907 } | 
| 1897 | 1908 | 
| 1898 }  // namespace blink | 1909 }  // namespace blink | 
| OLD | NEW | 
|---|