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

Side by Side Diff: net/http/http_stream_parser.cc

Issue 2140253002: Add metrics to track HTTP/0.9 usage for main frames and subresources (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@2785
Patch Set: Created 4 years, 5 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 unified diff | Download patch
« no previous file with comments | « net/http/http_response_info.cc ('k') | net/http/http_stream_parser_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/http/http_stream_parser.h" 5 #include "net/http/http_stream_parser.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
(...skipping 982 matching lines...) Expand 10 before | Expand all | Expand 10 after
993 } 993 }
994 994
995 // Check for multiple Content-Disposition or Location headers. If they exist, 995 // Check for multiple Content-Disposition or Location headers. If they exist,
996 // it's also a potential response smuggling attack. 996 // it's also a potential response smuggling attack.
997 if (HeadersContainMultipleCopiesOfField(*headers, "Content-Disposition")) 997 if (HeadersContainMultipleCopiesOfField(*headers, "Content-Disposition"))
998 return ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION; 998 return ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION;
999 if (HeadersContainMultipleCopiesOfField(*headers, "Location")) 999 if (HeadersContainMultipleCopiesOfField(*headers, "Location"))
1000 return ERR_RESPONSE_HEADERS_MULTIPLE_LOCATION; 1000 return ERR_RESPONSE_HEADERS_MULTIPLE_LOCATION;
1001 1001
1002 response_->headers = headers; 1002 response_->headers = headers;
1003 response_->connection_info = HttpResponseInfo::CONNECTION_INFO_HTTP1; 1003 if (headers->GetHttpVersion() == HttpVersion(0, 9)) {
1004 response_->connection_info = HttpResponseInfo::CONNECTION_INFO_HTTP0_9;
1005 } else if (headers->GetHttpVersion() == HttpVersion(1, 0)) {
1006 response_->connection_info = HttpResponseInfo::CONNECTION_INFO_HTTP1_0;
1007 } else if (headers->GetHttpVersion() == HttpVersion(1, 1)) {
1008 response_->connection_info = HttpResponseInfo::CONNECTION_INFO_HTTP1_1;
1009 }
1004 response_->vary_data.Init(*request_, *response_->headers); 1010 response_->vary_data.Init(*request_, *response_->headers);
1005 DVLOG(1) << __FUNCTION__ << "()" 1011 DVLOG(1) << __FUNCTION__ << "()"
1006 << " content_length = \"" << response_->headers->GetContentLength() 1012 << " content_length = \"" << response_->headers->GetContentLength()
1007 << "\n\"" 1013 << "\n\""
1008 << " headers = \"" << GetResponseHeaderLines(*response_->headers) 1014 << " headers = \"" << GetResponseHeaderLines(*response_->headers)
1009 << "\""; 1015 << "\"";
1010 return OK; 1016 return OK;
1011 } 1017 }
1012 1018
1013 void HttpStreamParser::CalculateResponseBodySize() { 1019 void HttpStreamParser::CalculateResponseBodySize() {
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
1182 } 1188 }
1183 1189
1184 void HttpStreamParser::ValidateStatusLine(const std::string& status_line) { 1190 void HttpStreamParser::ValidateStatusLine(const std::string& status_line) {
1185 HttpStatusLineValidator::StatusLineStatus status = 1191 HttpStatusLineValidator::StatusLineStatus status =
1186 HttpStatusLineValidator::ValidateStatusLine(status_line); 1192 HttpStatusLineValidator::ValidateStatusLine(status_line);
1187 UMA_HISTOGRAM_ENUMERATION("Net.HttpStatusLineStatus", status, 1193 UMA_HISTOGRAM_ENUMERATION("Net.HttpStatusLineStatus", status,
1188 HttpStatusLineValidator::STATUS_LINE_MAX); 1194 HttpStatusLineValidator::STATUS_LINE_MAX);
1189 } 1195 }
1190 1196
1191 } // namespace net 1197 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_response_info.cc ('k') | net/http/http_stream_parser_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698