Index: third_party/WebKit/Source/core/dom/URLSearchParams.cpp |
diff --git a/third_party/WebKit/Source/core/dom/URLSearchParams.cpp b/third_party/WebKit/Source/core/dom/URLSearchParams.cpp |
index 5e3493b5ef114cedc23267b86fd886a103b47a22..30d3a09d4f01ca234a0427fd1432e29303957527 100644 |
--- a/third_party/WebKit/Source/core/dom/URLSearchParams.cpp |
+++ b/third_party/WebKit/Source/core/dom/URLSearchParams.cpp |
@@ -7,7 +7,6 @@ |
#include "core/dom/DOMURL.h" |
#include "platform/network/FormDataEncoder.h" |
#include "platform/weborigin/KURL.h" |
-#include "wtf/text/StringBuilder.h" |
#include "wtf/text/TextEncoding.h" |
namespace blink { |
@@ -124,22 +123,11 @@ void URLSearchParams::setInput(const String& queryString) |
runUpdateSteps(); |
} |
-static String encodeString(const String& input) |
-{ |
- return encodeWithURLEscapeSequences(input).replace("%20", "+"); |
-} |
- |
String URLSearchParams::toString() const |
{ |
- StringBuilder result; |
- for (size_t i = 0; i < m_params.size(); ++i) { |
- if (i) |
- result.append('&'); |
- result.append(encodeString(m_params[i].first)); |
- result.append('='); |
- result.append(encodeString(m_params[i].second)); |
- } |
- return result.toString(); |
+ Vector<char> encodedData; |
+ encodeAsFormData(encodedData); |
+ return String(encodedData.data(), encodedData.size()); |
} |
void URLSearchParams::append(const String& name, const String& value) |
@@ -212,11 +200,16 @@ void URLSearchParams::set(const String& name, const String& value) |
runUpdateSteps(); |
} |
-PassRefPtr<EncodedFormData> URLSearchParams::encodeFormData() const |
+void URLSearchParams::encodeAsFormData(Vector<char>& encodedData) const |
{ |
- Vector<char> encodedData; |
for (const auto& param : m_params) |
- FormDataEncoder::addKeyValuePairAsFormData(encodedData, param.first.utf8(), param.second.utf8(), EncodedFormData::FormURLEncoded); |
+ FormDataEncoder::addKeyValuePairAsFormData(encodedData, param.first.utf8(), param.second.utf8(), EncodedFormData::FormURLEncoded, FormDataEncoder::DoNotNormalizeCRLF); |
+} |
+ |
+PassRefPtr<EncodedFormData> URLSearchParams::toEncodedFormData() const |
+{ |
+ Vector<char> encodedData; |
+ encodeAsFormData(encodedData); |
return EncodedFormData::create(encodedData.data(), encodedData.size()); |
} |