| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "core/dom/URLSearchParams.h" | 5 #include "core/dom/URLSearchParams.h" |
| 6 | 6 |
| 7 #include "core/dom/DOMURL.h" | 7 #include "core/dom/DOMURL.h" |
| 8 #include "platform/network/FormDataEncoder.h" | 8 #include "platform/network/FormDataEncoder.h" |
| 9 #include "platform/weborigin/KURL.h" | 9 #include "platform/weborigin/KURL.h" |
| 10 #include "wtf/text/TextEncoding.h" | 10 #include "wtf/text/TextEncoding.h" |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 105 if (endOfName == kNotFound || endOfName > nameValueEnd) | 105 if (endOfName == kNotFound || endOfName > nameValueEnd) |
| 106 endOfName = nameValueEnd; | 106 endOfName = nameValueEnd; |
| 107 String name = | 107 String name = |
| 108 decodeString(queryString.substring(nameStart, endOfName - nameStart)); | 108 decodeString(queryString.substring(nameStart, endOfName - nameStart)); |
| 109 String value; | 109 String value; |
| 110 if (endOfName != nameValueEnd) | 110 if (endOfName != nameValueEnd) |
| 111 value = decodeString( | 111 value = decodeString( |
| 112 queryString.substring(endOfName + 1, nameValueEnd - endOfName - 1)); | 112 queryString.substring(endOfName + 1, nameValueEnd - endOfName - 1)); |
| 113 if (value.isNull()) | 113 if (value.isNull()) |
| 114 value = ""; | 114 value = ""; |
| 115 m_params.append(std::make_pair(name, value)); | 115 m_params.push_back(std::make_pair(name, value)); |
| 116 } | 116 } |
| 117 start = nameValueEnd + 1; | 117 start = nameValueEnd + 1; |
| 118 } | 118 } |
| 119 runUpdateSteps(); | 119 runUpdateSteps(); |
| 120 } | 120 } |
| 121 | 121 |
| 122 String URLSearchParams::toString() const { | 122 String URLSearchParams::toString() const { |
| 123 Vector<char> encodedData; | 123 Vector<char> encodedData; |
| 124 encodeAsFormData(encodedData); | 124 encodeAsFormData(encodedData); |
| 125 return String(encodedData.data(), encodedData.size()); | 125 return String(encodedData.data(), encodedData.size()); |
| 126 } | 126 } |
| 127 | 127 |
| 128 void URLSearchParams::append(const String& name, const String& value) { | 128 void URLSearchParams::append(const String& name, const String& value) { |
| 129 m_params.append(std::make_pair(name, value)); | 129 m_params.push_back(std::make_pair(name, value)); |
| 130 runUpdateSteps(); | 130 runUpdateSteps(); |
| 131 } | 131 } |
| 132 | 132 |
| 133 void URLSearchParams::deleteAllWithName(const String& name) { | 133 void URLSearchParams::deleteAllWithName(const String& name) { |
| 134 for (size_t i = 0; i < m_params.size();) { | 134 for (size_t i = 0; i < m_params.size();) { |
| 135 if (m_params[i].first == name) | 135 if (m_params[i].first == name) |
| 136 m_params.remove(i); | 136 m_params.remove(i); |
| 137 else | 137 else |
| 138 i++; | 138 i++; |
| 139 } | 139 } |
| 140 runUpdateSteps(); | 140 runUpdateSteps(); |
| 141 } | 141 } |
| 142 | 142 |
| 143 String URLSearchParams::get(const String& name) const { | 143 String URLSearchParams::get(const String& name) const { |
| 144 for (const auto& param : m_params) { | 144 for (const auto& param : m_params) { |
| 145 if (param.first == name) | 145 if (param.first == name) |
| 146 return param.second; | 146 return param.second; |
| 147 } | 147 } |
| 148 return String(); | 148 return String(); |
| 149 } | 149 } |
| 150 | 150 |
| 151 Vector<String> URLSearchParams::getAll(const String& name) const { | 151 Vector<String> URLSearchParams::getAll(const String& name) const { |
| 152 Vector<String> result; | 152 Vector<String> result; |
| 153 for (const auto& param : m_params) { | 153 for (const auto& param : m_params) { |
| 154 if (param.first == name) | 154 if (param.first == name) |
| 155 result.append(param.second); | 155 result.push_back(param.second); |
| 156 } | 156 } |
| 157 return result; | 157 return result; |
| 158 } | 158 } |
| 159 | 159 |
| 160 bool URLSearchParams::has(const String& name) const { | 160 bool URLSearchParams::has(const String& name) const { |
| 161 for (const auto& param : m_params) { | 161 for (const auto& param : m_params) { |
| 162 if (param.first == name) | 162 if (param.first == name) |
| 163 return true; | 163 return true; |
| 164 } | 164 } |
| 165 return false; | 165 return false; |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 202 return EncodedFormData::create(encodedData.data(), encodedData.size()); | 202 return EncodedFormData::create(encodedData.data(), encodedData.size()); |
| 203 } | 203 } |
| 204 | 204 |
| 205 PairIterable<String, String>::IterationSource* URLSearchParams::startIteration( | 205 PairIterable<String, String>::IterationSource* URLSearchParams::startIteration( |
| 206 ScriptState*, | 206 ScriptState*, |
| 207 ExceptionState&) { | 207 ExceptionState&) { |
| 208 return new URLSearchParamsIterationSource(m_params); | 208 return new URLSearchParamsIterationSource(m_params); |
| 209 } | 209 } |
| 210 | 210 |
| 211 } // namespace blink | 211 } // namespace blink |
| OLD | NEW |