Index: third_party/WebKit/Source/modules/fetch/FetchHeaderList.h |
diff --git a/third_party/WebKit/Source/modules/fetch/FetchHeaderList.h b/third_party/WebKit/Source/modules/fetch/FetchHeaderList.h |
index bfe552f483edeb89a46e88b229c023bc1febd9a4..90604231b6e3ed59d0794051d8bba46a02bcd994 100644 |
--- a/third_party/WebKit/Source/modules/fetch/FetchHeaderList.h |
+++ b/third_party/WebKit/Source/modules/fetch/FetchHeaderList.h |
@@ -5,13 +5,12 @@ |
#ifndef FetchHeaderList_h |
#define FetchHeaderList_h |
+#include <map> |
+#include <utility> |
#include "modules/ModulesExport.h" |
#include "platform/heap/Handle.h" |
-#include "wtf/PassRefPtr.h" |
#include "wtf/Vector.h" |
#include "wtf/text/WTFString.h" |
-#include <memory> |
-#include <utility> |
namespace blink { |
@@ -21,6 +20,12 @@ class Header; |
class MODULES_EXPORT FetchHeaderList final |
: public GarbageCollectedFinalized<FetchHeaderList> { |
public: |
+ struct ByteCaseInsensitiveCompare { |
+ bool operator()(const String& lhs, const String& rhs) const { |
+ return codePointCompareLessThan(lhs.upperASCII(), rhs.upperASCII()); |
+ } |
+ }; |
+ |
typedef std::pair<String, String> Header; |
static FetchHeaderList* create(); |
FetchHeaderList* clone() const; |
@@ -39,11 +44,11 @@ class MODULES_EXPORT FetchHeaderList final |
void clearList(); |
bool containsNonSimpleHeader() const; |
- void sortAndCombine(); |
+ Vector<Header> sortAndCombine() const; |
- const Vector<std::unique_ptr<Header>>& list() const { return m_headerList; } |
- const Header& entry(size_t index) const { |
- return *(m_headerList[index].get()); |
+ const std::multimap<String, String, ByteCaseInsensitiveCompare>& list() |
+ const { |
+ return m_headerList; |
} |
static bool isValidHeaderName(const String&); |
@@ -53,7 +58,7 @@ class MODULES_EXPORT FetchHeaderList final |
private: |
FetchHeaderList(); |
- Vector<std::unique_ptr<Header>> m_headerList; |
+ std::multimap<String, String, ByteCaseInsensitiveCompare> m_headerList; |
}; |
} // namespace blink |