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

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

Issue 16925002: XMLHttpRequest#responseText should use a rope (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Address reviewer feedback Created 7 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 8f79ae23e200a7f857446141a0080229e8481d83..e0b75f2cde862278b550668973b4dbce1d7672fe 100644
--- a/Source/core/xml/XMLHttpRequest.cpp
+++ b/Source/core/xml/XMLHttpRequest.cpp
@@ -214,13 +214,13 @@ XMLHttpRequest::State XMLHttpRequest::readyState() const
return m_state;
}
-String XMLHttpRequest::responseText(ExceptionCode& ec)
+ScriptString XMLHttpRequest::responseText(ExceptionCode& ec)
{
if (m_responseTypeCode != ResponseTypeDefault && m_responseTypeCode != ResponseTypeText) {
ec = INVALID_STATE_ERR;
- return "";
+ return ScriptString();
}
- return m_responseBuilder.toStringPreserveCapacity();
+ return m_responseText;
}
Document* XMLHttpRequest::responseXML(ExceptionCode& ec)
@@ -248,7 +248,7 @@ Document* XMLHttpRequest::responseXML(ExceptionCode& ec)
else
m_responseDocument = Document::create(0, m_url);
// FIXME: Set Last-Modified.
- m_responseDocument->setContent(m_responseBuilder.toStringPreserveCapacity());
+ m_responseDocument->setContent(m_responseText.flattenToString());
m_responseDocument->setSecurityOrigin(securityOrigin());
m_responseDocument->setContextFeatures(document()->contextFeatures());
if (!m_responseDocument->wellFormed())
@@ -846,7 +846,7 @@ void XMLHttpRequest::clearResponse()
void XMLHttpRequest::clearResponseBuffers()
{
- m_responseBuilder.clear();
+ m_responseText.clear();
m_createdDocument = false;
m_responseDocument = 0;
m_responseBlob = 0;
@@ -1092,11 +1092,9 @@ void XMLHttpRequest::didFinishLoading(unsigned long identifier, double)
changeState(HEADERS_RECEIVED);
if (m_decoder)
- m_responseBuilder.append(m_decoder->flush());
-
- m_responseBuilder.shrinkToFit();
+ m_responseText = m_responseText.concatenateWith(m_decoder->flush());
- InspectorInstrumentation::didFinishXHRLoading(scriptExecutionContext(), this, identifier, m_responseBuilder.toStringPreserveCapacity(), m_url, m_lastSendURL, m_lastSendLineNumber);
+ InspectorInstrumentation::didFinishXHRLoading(scriptExecutionContext(), this, identifier, m_responseText, m_url, m_lastSendURL, m_lastSendLineNumber);
bool hadLoader = m_loader;
m_loader = 0;
@@ -1168,7 +1166,7 @@ void XMLHttpRequest::didReceiveData(const char* data, int len)
len = strlen(data);
if (useDecoder)
- m_responseBuilder.append(m_decoder->decode(data, len));
+ m_responseText = m_responseText.concatenateWith(m_decoder->decode(data, len));
else if (m_responseTypeCode == ResponseTypeArrayBuffer || m_responseTypeCode == ResponseTypeBlob) {
// Buffer binary data.
if (!m_binaryResponseBuilder)
@@ -1286,7 +1284,7 @@ void XMLHttpRequest::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
info.addMember(m_response, "response");
info.addMember(m_responseEncoding, "responseEncoding");
info.addMember(m_decoder, "decoder");
- info.addMember(m_responseBuilder, "responseBuilder");
+ info.addMember(m_responseText, "responseText");
info.addMember(m_responseDocument, "responseDocument");
info.addMember(m_binaryResponseBuilder, "binaryResponseBuilder");
info.addMember(m_responseArrayBuffer, "responseArrayBuffer");
« 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