HttpServer: Handling of multiple header fields with the same name and multiple values of "Connection".

BUG=370437

Review URL: https://codereview.chromium.org/274813002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269619 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/net/server/http_server_request_info.cc b/net/server/http_server_request_info.cc
index 67965f2..8b65bee5 100644
--- a/net/server/http_server_request_info.cc
+++ b/net/server/http_server_request_info.cc
@@ -22,4 +22,21 @@
   return std::string();
 }
 
+bool HttpServerRequestInfo::HasHeaderValue(
+    const std::string& header_name,
+    const std::string& header_value) const {
+  DCHECK_EQ(StringToLowerASCII(header_value), header_value);
+  std::string complete_value = GetHeaderValue(header_name);
+  StringToLowerASCII(&complete_value);
+  std::vector<std::string> value_items;
+  Tokenize(complete_value, ",", &value_items);
+  for (std::vector<std::string>::iterator it = value_items.begin();
+      it != value_items.end(); ++it) {
+    base::TrimString(*it, " \t", &*it);
+    if (*it == header_value)
+      return true;
+  }
+  return false;
+}
+
 }  // namespace net