Chromium Code Reviews| Index: third_party/WebKit/Source/modules/fetch/FetchHeaderList.cpp |
| diff --git a/third_party/WebKit/Source/modules/fetch/FetchHeaderList.cpp b/third_party/WebKit/Source/modules/fetch/FetchHeaderList.cpp |
| index ca24581c50d6d8947f534060708b79cfea3f77c1..d3a0ee7235986bd4f1a64654fe4971be5ac023ff 100644 |
| --- a/third_party/WebKit/Source/modules/fetch/FetchHeaderList.cpp |
| +++ b/third_party/WebKit/Source/modules/fetch/FetchHeaderList.cpp |
| @@ -30,7 +30,8 @@ void FetchHeaderList::append(const String& name, const String& value) { |
| // "To append a name/value (|name|/|value|) pair to a header list (|list|), |
| // append a new header whose name is |name|, byte lowercased, and value is |
| // |value|, to |list|." |
| - m_headerList.append(WTF::wrapUnique(new Header(name.lower(), value))); |
| + if (!value.isEmpty()) |
|
jsbell
2016/12/16 22:29:37
This seems incorrect - the caller (Headers::append
|
| + m_headerList.append(WTF::wrapUnique(new Header(name.lower(), value))); |
| } |
| void FetchHeaderList::set(const String& name, const String& value) { |
| @@ -87,13 +88,18 @@ void FetchHeaderList::remove(const String& name) { |
| bool FetchHeaderList::get(const String& name, String& result) const { |
| const String lowercasedName = name.lower(); |
| - for (size_t i = 0; i < m_headerList.size(); ++i) { |
| - if (m_headerList[i]->first == lowercasedName) { |
| - result = m_headerList[i]->second; |
| - return true; |
| + for (const auto& header : m_headerList) { |
| + DCHECK(!header->second.isEmpty()); |
| + if (header->first == lowercasedName) { |
| + if (result.isEmpty()) { |
| + result = header->second; |
| + } else { |
| + result.append(","); |
| + result.append(header->second); |
| + } |
| } |
| } |
| - return false; |
| + return !result.isEmpty(); |
| } |
| void FetchHeaderList::getAll(const String& name, Vector<String>& result) const { |