This change plumbs an equality function object type through the quiche linked hash map type. This will enable future changes to the hashing behavior of SpdyHeaderBlock.

gfe-relnote: Adds a class template parameter with an appropriate default. No functional change intended.
PiperOrigin-RevId: 287990478
Change-Id: Icd72f36561fc31f2f7092306b960e4d8721aa774
diff --git a/spdy/core/spdy_header_block.h b/spdy/core/spdy_header_block.h
index b02284f..56ee1d5 100644
--- a/spdy/core/spdy_header_block.h
+++ b/spdy/core/spdy_header_block.h
@@ -7,6 +7,7 @@
 
 #include <stddef.h>
 
+#include <functional>
 #include <list>
 #include <string>
 #include <utility>
@@ -81,7 +82,10 @@
     size_t separator_size_ = 0;
   };
 
-  typedef SpdyLinkedHashMap<SpdyStringPiece, HeaderValue, SpdyStringPieceHash>
+  typedef SpdyLinkedHashMap<SpdyStringPiece,
+                            HeaderValue,
+                            SpdyStringPieceHash,
+                            std::equal_to<SpdyStringPiece>>
       MapType;
 
  public:
diff --git a/spdy/platform/api/spdy_containers.h b/spdy/platform/api/spdy_containers.h
index 9a90556..1449c3c 100644
--- a/spdy/platform/api/spdy_containers.h
+++ b/spdy/platform/api/spdy_containers.h
@@ -24,8 +24,8 @@
 using SpdyHashSet = SpdyHashSetImpl<ElementType, Hasher, Eq>;
 
 // A map which offers insertion-ordered iteration.
-template <typename Key, typename Value, typename Hash = SpdyHash<Key>>
-using SpdyLinkedHashMap = SpdyLinkedHashMapImpl<Key, Value, Hash>;
+template <typename Key, typename Value, typename Hash, typename Eq>
+using SpdyLinkedHashMap = SpdyLinkedHashMapImpl<Key, Value, Hash, Eq>;
 
 // A vector optimized for small sizes. Provides the same APIs as a std::vector.
 template <typename T, size_t N, typename A = std::allocator<T>>