Index: net/spdy/spdy_http_utils.cc |
diff --git a/net/spdy/spdy_http_utils.cc b/net/spdy/spdy_http_utils.cc |
deleted file mode 100644 |
index 5fb469288d971c748bd0f98497b9c47555f4b195..0000000000000000000000000000000000000000 |
--- a/net/spdy/spdy_http_utils.cc |
+++ /dev/null |
@@ -1,169 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "net/spdy/spdy_http_utils.h" |
- |
-#include <vector> |
- |
-#include "base/strings/string_number_conversions.h" |
-#include "base/strings/string_split.h" |
-#include "base/strings/string_util.h" |
-#include "base/time/time.h" |
-#include "net/base/escape.h" |
-#include "net/base/load_flags.h" |
-#include "net/base/url_util.h" |
-#include "net/http/http_request_headers.h" |
-#include "net/http/http_request_info.h" |
-#include "net/http/http_response_headers.h" |
-#include "net/http/http_response_info.h" |
-#include "net/http/http_util.h" |
-#include "net/spdy/platform/api/spdy_string.h" |
-#include "net/spdy/platform/api/spdy_string_piece.h" |
- |
-namespace net { |
- |
-namespace { |
- |
-void AddSpdyHeader(const SpdyString& name, |
- const SpdyString& value, |
- SpdyHeaderBlock* headers) { |
- if (headers->find(name) == headers->end()) { |
- (*headers)[name] = value; |
- } else { |
- SpdyString joint_value = (*headers)[name].as_string(); |
- joint_value.append(1, '\0'); |
- joint_value.append(value); |
- (*headers)[name] = joint_value; |
- } |
-} |
- |
-} // namespace |
- |
-bool SpdyHeadersToHttpResponse(const SpdyHeaderBlock& headers, |
- HttpResponseInfo* response) { |
- // The ":status" header is required. |
- SpdyHeaderBlock::const_iterator it = headers.find(":status"); |
- if (it == headers.end()) |
- return false; |
- SpdyString status = it->second.as_string(); |
- SpdyString raw_headers("HTTP/1.1 "); |
- raw_headers.append(status); |
- raw_headers.push_back('\0'); |
- for (it = headers.begin(); it != headers.end(); ++it) { |
- // For each value, if the server sends a NUL-separated |
- // list of values, we separate that back out into |
- // individual headers for each value in the list. |
- // e.g. |
- // Set-Cookie "foo\0bar" |
- // becomes |
- // Set-Cookie: foo\0 |
- // Set-Cookie: bar\0 |
- SpdyString value = it->second.as_string(); |
- size_t start = 0; |
- size_t end = 0; |
- do { |
- end = value.find('\0', start); |
- SpdyString tval; |
- if (end != value.npos) |
- tval = value.substr(start, (end - start)); |
- else |
- tval = value.substr(start); |
- if (it->first[0] == ':') |
- raw_headers.append(it->first.as_string().substr(1)); |
- else |
- raw_headers.append(it->first.as_string()); |
- raw_headers.push_back(':'); |
- raw_headers.append(tval); |
- raw_headers.push_back('\0'); |
- start = end + 1; |
- } while (end != value.npos); |
- } |
- |
- response->headers = new HttpResponseHeaders(raw_headers); |
- response->was_fetched_via_spdy = true; |
- return true; |
-} |
- |
-void CreateSpdyHeadersFromHttpRequest(const HttpRequestInfo& info, |
- const HttpRequestHeaders& request_headers, |
- bool direct, |
- SpdyHeaderBlock* headers) { |
- (*headers)[":method"] = info.method; |
- if (info.method == "CONNECT") { |
- (*headers)[":authority"] = GetHostAndPort(info.url); |
- } else { |
- (*headers)[":authority"] = GetHostAndOptionalPort(info.url); |
- (*headers)[":scheme"] = info.url.scheme(); |
- (*headers)[":path"] = info.url.PathForRequest(); |
- } |
- |
- HttpRequestHeaders::Iterator it(request_headers); |
- while (it.GetNext()) { |
- SpdyString name = base::ToLowerASCII(it.name()); |
- if (name.empty() || name[0] == ':' || name == "connection" || |
- name == "proxy-connection" || name == "transfer-encoding" || |
- name == "host") { |
- continue; |
- } |
- AddSpdyHeader(name, it.value(), headers); |
- } |
-} |
- |
-static_assert(HIGHEST - LOWEST < 4 && HIGHEST - MINIMUM_PRIORITY < 6, |
- "request priority incompatible with spdy"); |
- |
-SpdyPriority ConvertRequestPriorityToSpdyPriority( |
- const RequestPriority priority) { |
- DCHECK_GE(priority, MINIMUM_PRIORITY); |
- DCHECK_LE(priority, MAXIMUM_PRIORITY); |
- return static_cast<SpdyPriority>(MAXIMUM_PRIORITY - priority + |
- kV3HighestPriority); |
-} |
- |
-NET_EXPORT_PRIVATE RequestPriority |
-ConvertSpdyPriorityToRequestPriority(SpdyPriority priority) { |
- // Handle invalid values gracefully. |
- return ((priority - kV3HighestPriority) > |
- (MAXIMUM_PRIORITY - MINIMUM_PRIORITY)) |
- ? IDLE |
- : static_cast<RequestPriority>(MAXIMUM_PRIORITY - |
- (priority - kV3HighestPriority)); |
-} |
- |
-NET_EXPORT_PRIVATE void ConvertHeaderBlockToHttpRequestHeaders( |
- const SpdyHeaderBlock& spdy_headers, |
- HttpRequestHeaders* http_headers) { |
- for (const auto& it : spdy_headers) { |
- SpdyStringPiece key = it.first; |
- if (key[0] == ':') { |
- key.remove_prefix(1); |
- } |
- std::vector<SpdyStringPiece> values = base::SplitStringPiece( |
- it.second, "\0", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); |
- for (const auto& value : values) { |
- http_headers->SetHeader(key, value); |
- } |
- } |
-} |
- |
-GURL GetUrlFromHeaderBlock(const SpdyHeaderBlock& headers) { |
- SpdyHeaderBlock::const_iterator it = headers.find(":scheme"); |
- if (it == headers.end()) |
- return GURL(); |
- SpdyString url = it->second.as_string(); |
- url.append("://"); |
- |
- it = headers.find(":authority"); |
- if (it == headers.end()) |
- return GURL(); |
- url.append(it->second.as_string()); |
- |
- it = headers.find(":path"); |
- if (it == headers.end()) |
- return GURL(); |
- url.append(it->second.as_string()); |
- return GURL(url); |
-} |
- |
-} // namespace net |