| 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 699 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 710 WTF_LOG(Network, "XMLHttpRequest %p send() Blob '%s'", this, body->uuid().ut
f8().data()); | 710 WTF_LOG(Network, "XMLHttpRequest %p send() Blob '%s'", this, body->uuid().ut
f8().data()); |
| 711 | 711 |
| 712 if (!initSend(exceptionState)) | 712 if (!initSend(exceptionState)) |
| 713 return; | 713 return; |
| 714 | 714 |
| 715 RefPtr<FormData> httpBody; | 715 RefPtr<FormData> httpBody; |
| 716 | 716 |
| 717 if (areMethodAndURLValidForSend()) { | 717 if (areMethodAndURLValidForSend()) { |
| 718 if (getRequestHeader("Content-Type").isEmpty()) { | 718 if (getRequestHeader("Content-Type").isEmpty()) { |
| 719 const String& blobType = body->type(); | 719 const String& blobType = body->type(); |
| 720 if (!blobType.isEmpty() && isValidContentType(blobType)) | 720 if (!blobType.isEmpty() && isValidContentType(blobType)) { |
| 721 setRequestHeaderInternal("Content-Type", AtomicString(blobType))
; | 721 setRequestHeaderInternal("Content-Type", AtomicString(blobType))
; |
| 722 else { | 722 } else { |
| 723 // From FileAPI spec, whenever media type cannot be determined,
empty string must be returned. | 723 // From FileAPI spec, whenever media type cannot be determined, |
| 724 // empty string must be returned. |
| 724 setRequestHeaderInternal("Content-Type", ""); | 725 setRequestHeaderInternal("Content-Type", ""); |
| 725 } | 726 } |
| 726 } | 727 } |
| 727 | 728 |
| 728 // FIXME: add support for uploading bundles. | 729 // FIXME: add support for uploading bundles. |
| 729 httpBody = FormData::create(); | 730 httpBody = FormData::create(); |
| 730 if (body->hasBackingFile()) { | 731 if (body->hasBackingFile()) { |
| 731 File* file = toFile(body); | 732 File* file = toFile(body); |
| 732 if (!file->path().isEmpty()) | 733 if (!file->path().isEmpty()) |
| 733 httpBody->appendFile(file->path()); | 734 httpBody->appendFile(file->path()); |
| (...skipping 604 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1338 | 1339 |
| 1339 if (m_error) | 1340 if (m_error) |
| 1340 return; | 1341 return; |
| 1341 | 1342 |
| 1342 if (m_state < HEADERS_RECEIVED) | 1343 if (m_state < HEADERS_RECEIVED) |
| 1343 changeState(HEADERS_RECEIVED); | 1344 changeState(HEADERS_RECEIVED); |
| 1344 | 1345 |
| 1345 bool useDecoder = m_responseTypeCode == ResponseTypeDefault || m_responseTyp
eCode == ResponseTypeText || m_responseTypeCode == ResponseTypeJSON || m_respons
eTypeCode == ResponseTypeDocument; | 1346 bool useDecoder = m_responseTypeCode == ResponseTypeDefault || m_responseTyp
eCode == ResponseTypeText || m_responseTypeCode == ResponseTypeJSON || m_respons
eTypeCode == ResponseTypeDocument; |
| 1346 | 1347 |
| 1347 if (useDecoder && !m_decoder) { | 1348 if (useDecoder && !m_decoder) { |
| 1348 if (m_responseTypeCode == ResponseTypeJSON) | 1349 if (m_responseTypeCode == ResponseTypeJSON) { |
| 1349 m_decoder = TextResourceDecoder::create("application/json", "UTF-8")
; | 1350 m_decoder = TextResourceDecoder::create("application/json", "UTF-8")
; |
| 1350 else if (!m_responseEncoding.isEmpty()) | 1351 } else if (!m_responseEncoding.isEmpty()) { |
| 1351 m_decoder = TextResourceDecoder::create("text/plain", m_responseEnco
ding); | 1352 m_decoder = TextResourceDecoder::create("text/plain", m_responseEnco
ding); |
| 1352 // allow TextResourceDecoder to look inside the m_response if it's XML o
r HTML | 1353 // allow TextResourceDecoder to look inside the m_response if it's XML o
r HTML |
| 1353 else if (responseIsXML()) { | 1354 } else if (responseIsXML()) { |
| 1354 m_decoder = TextResourceDecoder::create("application/xml"); | 1355 m_decoder = TextResourceDecoder::create("application/xml"); |
| 1355 // Don't stop on encoding errors, unlike it is done for other kinds
of XML resources. This matches the behavior of previous WebKit versions, Firefox
and Opera. | 1356 // Don't stop on encoding errors, unlike it is done for other kinds |
| 1357 // of XML resources. This matches the behavior of previous WebKit |
| 1358 // versions, Firefox and Opera. |
| 1356 m_decoder->useLenientXMLDecoding(); | 1359 m_decoder->useLenientXMLDecoding(); |
| 1357 } else if (equalIgnoringCase(responseMIMEType(), "text/html")) | 1360 } else if (equalIgnoringCase(responseMIMEType(), "text/html")) { |
| 1358 m_decoder = TextResourceDecoder::create("text/html", "UTF-8"); | 1361 m_decoder = TextResourceDecoder::create("text/html", "UTF-8"); |
| 1359 else | 1362 } else { |
| 1360 m_decoder = TextResourceDecoder::create("text/plain", "UTF-8"); | 1363 m_decoder = TextResourceDecoder::create("text/plain", "UTF-8"); |
| 1364 } |
| 1361 } | 1365 } |
| 1362 | 1366 |
| 1363 if (!len) | 1367 if (!len) |
| 1364 return; | 1368 return; |
| 1365 | 1369 |
| 1366 if (len == -1) | 1370 if (len == -1) |
| 1367 len = strlen(data); | 1371 len = strlen(data); |
| 1368 | 1372 |
| 1369 if (useDecoder) { | 1373 if (useDecoder) { |
| 1370 m_responseText = m_responseText.concatenateWith(m_decoder->decode(data,
len)); | 1374 m_responseText = m_responseText.concatenateWith(m_decoder->decode(data,
len)); |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1461 { | 1465 { |
| 1462 visitor->trace(m_responseBlob); | 1466 visitor->trace(m_responseBlob); |
| 1463 visitor->trace(m_responseStream); | 1467 visitor->trace(m_responseStream); |
| 1464 visitor->trace(m_responseDocument); | 1468 visitor->trace(m_responseDocument); |
| 1465 visitor->trace(m_progressEventThrottle); | 1469 visitor->trace(m_progressEventThrottle); |
| 1466 visitor->trace(m_upload); | 1470 visitor->trace(m_upload); |
| 1467 XMLHttpRequestEventTarget::trace(visitor); | 1471 XMLHttpRequestEventTarget::trace(visitor); |
| 1468 } | 1472 } |
| 1469 | 1473 |
| 1470 } // namespace WebCore | 1474 } // namespace WebCore |
| OLD | NEW |