Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1728)

Unified Diff: Source/core/xml/XMLHttpRequest.cpp

Issue 314283005: Remove m_requestEntityBody from XMLHttpRequest (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Addressed #6 Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/xml/XMLHttpRequest.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/xml/XMLHttpRequest.cpp
diff --git a/Source/core/xml/XMLHttpRequest.cpp b/Source/core/xml/XMLHttpRequest.cpp
index 2a585245b23d0b254675ac78d083214150baeb33..70378bb5f9a0d3bb76b8b9e33b11cb657ee1e385 100644
--- a/Source/core/xml/XMLHttpRequest.cpp
+++ b/Source/core/xml/XMLHttpRequest.cpp
@@ -657,6 +657,8 @@ void XMLHttpRequest::send(Document* document, ExceptionState& exceptionState)
if (!initSend(exceptionState))
return;
+ RefPtr<FormData> httpBody;
+
if (areMethodAndURLValidForSend()) {
if (getRequestHeader("Content-Type").isEmpty()) {
// FIXME: this should include the charset used for encoding.
@@ -668,12 +670,12 @@ void XMLHttpRequest::send(Document* document, ExceptionState& exceptionState)
String body = createMarkup(document);
// FIXME: This should use value of document.inputEncoding to determine the encoding to use.
- m_requestEntityBody = FormData::create(UTF8Encoding().encode(body, WTF::EntitiesForUnencodables));
+ httpBody = FormData::create(UTF8Encoding().encode(body, WTF::EntitiesForUnencodables));
if (m_upload)
- m_requestEntityBody->setAlwaysStream(true);
+ httpBody->setAlwaysStream(true);
}
- createRequest(exceptionState);
+ createRequest(httpBody.release(), exceptionState);
}
void XMLHttpRequest::send(const String& body, ExceptionState& exceptionState)
@@ -683,6 +685,8 @@ void XMLHttpRequest::send(const String& body, ExceptionState& exceptionState)
if (!initSend(exceptionState))
return;
+ RefPtr<FormData> httpBody;
+
if (!body.isNull() && areMethodAndURLValidForSend()) {
String contentType = getRequestHeader("Content-Type");
if (contentType.isEmpty()) {
@@ -692,12 +696,12 @@ void XMLHttpRequest::send(const String& body, ExceptionState& exceptionState)
m_requestHeaders.set("Content-Type", AtomicString(contentType));
}
- m_requestEntityBody = FormData::create(UTF8Encoding().encode(body, WTF::EntitiesForUnencodables));
+ httpBody = FormData::create(UTF8Encoding().encode(body, WTF::EntitiesForUnencodables));
if (m_upload)
- m_requestEntityBody->setAlwaysStream(true);
+ httpBody->setAlwaysStream(true);
}
- createRequest(exceptionState);
+ createRequest(httpBody.release(), exceptionState);
}
void XMLHttpRequest::send(Blob* body, ExceptionState& exceptionState)
@@ -707,6 +711,8 @@ void XMLHttpRequest::send(Blob* body, ExceptionState& exceptionState)
if (!initSend(exceptionState))
return;
+ RefPtr<FormData> httpBody;
+
if (areMethodAndURLValidForSend()) {
if (getRequestHeader("Content-Type").isEmpty()) {
const String& blobType = body->type();
@@ -719,21 +725,21 @@ void XMLHttpRequest::send(Blob* body, ExceptionState& exceptionState)
}
// FIXME: add support for uploading bundles.
- m_requestEntityBody = FormData::create();
+ httpBody = FormData::create();
if (body->hasBackingFile()) {
File* file = toFile(body);
if (!file->path().isEmpty())
- m_requestEntityBody->appendFile(file->path());
+ httpBody->appendFile(file->path());
else if (!file->fileSystemURL().isEmpty())
- m_requestEntityBody->appendFileSystemURL(file->fileSystemURL());
+ httpBody->appendFileSystemURL(file->fileSystemURL());
else
ASSERT_NOT_REACHED();
} else {
- m_requestEntityBody->appendBlob(body->uuid(), body->blobDataHandle());
+ httpBody->appendBlob(body->uuid(), body->blobDataHandle());
}
}
- createRequest(exceptionState);
+ createRequest(httpBody.release(), exceptionState);
}
void XMLHttpRequest::send(DOMFormData* body, ExceptionState& exceptionState)
@@ -743,16 +749,18 @@ void XMLHttpRequest::send(DOMFormData* body, ExceptionState& exceptionState)
if (!initSend(exceptionState))
return;
+ RefPtr<FormData> httpBody;
+
if (areMethodAndURLValidForSend()) {
- m_requestEntityBody = body->createMultiPartFormData(body->encoding());
+ httpBody = body->createMultiPartFormData(body->encoding());
if (getRequestHeader("Content-Type").isEmpty()) {
- AtomicString contentType = AtomicString("multipart/form-data; boundary=", AtomicString::ConstructFromLiteral) + m_requestEntityBody->boundary().data();
+ AtomicString contentType = AtomicString("multipart/form-data; boundary=", AtomicString::ConstructFromLiteral) + httpBody->boundary().data();
setRequestHeaderInternal("Content-Type", contentType);
}
}
- createRequest(exceptionState);
+ createRequest(httpBody.release(), exceptionState);
}
void XMLHttpRequest::send(ArrayBuffer* body, ExceptionState& exceptionState)
@@ -781,23 +789,24 @@ void XMLHttpRequest::sendBytesData(const void* data, size_t length, ExceptionSta
if (!initSend(exceptionState))
return;
+ RefPtr<FormData> httpBody;
+
if (areMethodAndURLValidForSend()) {
- m_requestEntityBody = FormData::create(data, length);
+ httpBody = FormData::create(data, length);
if (m_upload)
- m_requestEntityBody->setAlwaysStream(true);
+ httpBody->setAlwaysStream(true);
}
- createRequest(exceptionState);
+ createRequest(httpBody.release(), exceptionState);
}
void XMLHttpRequest::sendForInspectorXHRReplay(PassRefPtr<FormData> formData, ExceptionState& exceptionState)
{
- m_requestEntityBody = formData ? formData->deepCopy() : nullptr;
- createRequest(exceptionState);
+ createRequest(formData ? formData->deepCopy() : nullptr, exceptionState);
m_exceptionCode = exceptionState.code();
}
-void XMLHttpRequest::createRequest(ExceptionState& exceptionState)
+void XMLHttpRequest::createRequest(PassRefPtr<FormData> httpBody, ExceptionState& exceptionState)
{
// Only GET request is supported for blob URL.
if (m_url.protocolIs("blob") && m_method != "GET") {
@@ -811,7 +820,7 @@ void XMLHttpRequest::createRequest(ExceptionState& exceptionState)
bool uploadEvents = false;
if (m_async) {
dispatchProgressEvent(EventTypeNames::loadstart, 0, 0);
- if (m_requestEntityBody && m_upload) {
+ if (httpBody && m_upload) {
uploadEvents = m_upload->hasEventListeners();
m_upload->dispatchEvent(XMLHttpRequestProgressEvent::create(EventTypeNames::loadstart));
}
@@ -830,12 +839,12 @@ void XMLHttpRequest::createRequest(ExceptionState& exceptionState)
request.setHTTPMethod(m_method);
request.setTargetType(ResourceRequest::TargetIsXHR);
- InspectorInstrumentation::willLoadXHR(&executionContext, this, this, m_method, m_url, m_async, m_requestEntityBody ? m_requestEntityBody->deepCopy() : nullptr, m_requestHeaders, m_includeCredentials);
+ InspectorInstrumentation::willLoadXHR(&executionContext, this, this, m_method, m_url, m_async, httpBody ? httpBody->deepCopy() : nullptr, m_requestHeaders, m_includeCredentials);
- if (m_requestEntityBody) {
+ if (httpBody) {
ASSERT(m_method != "GET");
ASSERT(m_method != "HEAD");
- request.setHTTPBody(m_requestEntityBody.release());
+ request.setHTTPBody(httpBody);
}
if (m_requestHeaders.size() > 0)
@@ -998,7 +1007,6 @@ void XMLHttpRequest::clearResponse()
void XMLHttpRequest::clearRequest()
{
m_requestHeaders.clear();
- m_requestEntityBody = nullptr;
}
void XMLHttpRequest::handleDidFailGeneric()
« no previous file with comments | « Source/core/xml/XMLHttpRequest.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698