Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(408)

Unified Diff: net/spdy/spdy_http_utils.cc

Issue 992733002: Remove //net (except for Android test stuff) and sdch (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/spdy/spdy_http_utils.h ('k') | net/spdy/spdy_http_utils_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 c604880473c7c41666bf79e5b8a87e52033ceaf1..0000000000000000000000000000000000000000
--- a/net/spdy/spdy_http_utils.cc
+++ /dev/null
@@ -1,211 +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 <string>
-
-#include "base/strings/string_number_conversions.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/net_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"
-
-namespace net {
-
-namespace {
-
-void AddSpdyHeader(const std::string& name,
- const std::string& value,
- SpdyHeaderBlock* headers) {
- if (headers->find(name) == headers->end()) {
- (*headers)[name] = value;
- } else {
- (*headers)[name] += '\0' + value;
- }
-}
-
-} // namespace
-
-bool SpdyHeadersToHttpResponse(const SpdyHeaderBlock& headers,
- SpdyMajorVersion protocol_version,
- HttpResponseInfo* response) {
- std::string status_key = (protocol_version >= SPDY3) ? ":status" : "status";
- std::string version_key =
- (protocol_version >= SPDY3) ? ":version" : "version";
- std::string version;
- std::string status;
-
- // The "status" header is required. "version" is required below SPDY4.
- SpdyHeaderBlock::const_iterator it;
- it = headers.find(status_key);
- if (it == headers.end())
- return false;
- status = it->second;
-
- if (protocol_version >= SPDY4) {
- version = "HTTP/1.1";
- } else {
- it = headers.find(version_key);
- if (it == headers.end())
- return false;
- version = it->second;
- }
- std::string raw_headers(version);
- raw_headers.push_back(' ');
- 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
- std::string value = it->second;
- size_t start = 0;
- size_t end = 0;
- do {
- end = value.find('\0', start);
- std::string tval;
- if (end != value.npos)
- tval = value.substr(start, (end - start));
- else
- tval = value.substr(start);
- if (protocol_version >= 3 && it->first[0] == ':')
- raw_headers.append(it->first.substr(1));
- else
- raw_headers.append(it->first);
- 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,
- SpdyMajorVersion protocol_version,
- bool direct,
- SpdyHeaderBlock* headers) {
-
- HttpRequestHeaders::Iterator it(request_headers);
- while (it.GetNext()) {
- std::string name = base::StringToLowerASCII(it.name());
- if (name == "connection" || name == "proxy-connection" ||
- name == "transfer-encoding" || name == "host") {
- continue;
- }
- AddSpdyHeader(name, it.value(), headers);
- }
- static const char kHttpProtocolVersion[] = "HTTP/1.1";
-
- if (protocol_version < SPDY3) {
- (*headers)["version"] = kHttpProtocolVersion;
- (*headers)["method"] = info.method;
- (*headers)["host"] = GetHostAndOptionalPort(info.url);
- (*headers)["scheme"] = info.url.scheme();
- if (direct)
- (*headers)["url"] = HttpUtil::PathForRequest(info.url);
- else
- (*headers)["url"] = HttpUtil::SpecForRequest(info.url);
- } else {
- if (protocol_version < SPDY4) {
- (*headers)[":version"] = kHttpProtocolVersion;
- (*headers)[":host"] = GetHostAndOptionalPort(info.url);
- } else {
- (*headers)[":authority"] = GetHostAndOptionalPort(info.url);
- }
- (*headers)[":method"] = info.method;
- (*headers)[":scheme"] = info.url.scheme();
- (*headers)[":path"] = HttpUtil::PathForRequest(info.url);
- }
-}
-
-void CreateSpdyHeadersFromHttpResponse(
- const HttpResponseHeaders& response_headers,
- SpdyMajorVersion protocol_version,
- SpdyHeaderBlock* headers) {
- std::string status_key = (protocol_version >= SPDY3) ? ":status" : "status";
- std::string version_key =
- (protocol_version >= SPDY3) ? ":version" : "version";
-
- const std::string status_line = response_headers.GetStatusLine();
- std::string::const_iterator after_version =
- std::find(status_line.begin(), status_line.end(), ' ');
- if (protocol_version < SPDY4) {
- (*headers)[version_key] = std::string(status_line.begin(), after_version);
- }
- (*headers)[status_key] = std::string(after_version + 1, status_line.end());
-
- void* iter = NULL;
- std::string raw_name, value;
- while (response_headers.EnumerateHeaderLines(&iter, &raw_name, &value)) {
- std::string name = base::StringToLowerASCII(raw_name);
- AddSpdyHeader(name, value, headers);
- }
-}
-
-static_assert(HIGHEST - LOWEST < 4 && HIGHEST - MINIMUM_PRIORITY < 5,
- "request priority incompatible with spdy");
-
-SpdyPriority ConvertRequestPriorityToSpdyPriority(
- const RequestPriority priority,
- SpdyMajorVersion protocol_version) {
- DCHECK_GE(priority, MINIMUM_PRIORITY);
- DCHECK_LE(priority, MAXIMUM_PRIORITY);
- return static_cast<SpdyPriority>(MAXIMUM_PRIORITY - priority);
-}
-
-NET_EXPORT_PRIVATE RequestPriority ConvertSpdyPriorityToRequestPriority(
- SpdyPriority priority,
- SpdyMajorVersion protocol_version) {
- // Handle invalid values gracefully.
- // Note that SpdyPriority is not an enum, hence the magic constants.
- return (priority >= 5) ?
- IDLE : static_cast<RequestPriority>(4 - priority);
-}
-
-GURL GetUrlFromHeaderBlock(const SpdyHeaderBlock& headers,
- SpdyMajorVersion protocol_version,
- bool pushed) {
- const char* scheme_header = protocol_version >= SPDY3 ? ":scheme" : "scheme";
- const char* host_header = protocol_version >= SPDY4 ? ":authority" :
- (protocol_version >= SPDY3 ? ":host" : "host");
- const char* path_header = protocol_version >= SPDY3 ? ":path" : "url";
-
- std::string scheme;
- std::string host_port;
- std::string path;
- SpdyHeaderBlock::const_iterator it;
- it = headers.find(scheme_header);
- if (it != headers.end())
- scheme = it->second;
- it = headers.find(host_header);
- if (it != headers.end())
- host_port = it->second;
- it = headers.find(path_header);
- if (it != headers.end())
- path = it->second;
-
- std::string url = (scheme.empty() || host_port.empty() || path.empty())
- ? std::string()
- : scheme + "://" + host_port + path;
- return GURL(url);
-}
-
-} // namespace net
« no previous file with comments | « net/spdy/spdy_http_utils.h ('k') | net/spdy/spdy_http_utils_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698