summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormmenke <mmenke@chromium.org>2015-08-10 09:35:49 -0700
committerCommit bot <commit-bot@chromium.org>2015-08-10 16:36:18 +0000
commite6d5e55d5bfe294ea69673fc9e1ff131ac724aab (patch)
tree0c8b8b311cbc7a6e8c01bad3f3f537e7b35ef2dd
parentb629aacf40bba650ffe7eeba700a8bd46f131549 (diff)
downloadchromium_src-e6d5e55d5bfe294ea69673fc9e1ff131ac724aab.zip
chromium_src-e6d5e55d5bfe294ea69673fc9e1ff131ac724aab.tar.gz
chromium_src-e6d5e55d5bfe294ea69673fc9e1ff131ac724aab.tar.bz2
Add histograms for usage of some weird HTTP/0.9 "features"
HTTP/0.9 over SSL, HTTP/0.9 on a socket previously used to receive HTTP/1.x responses. BUG=472762 Review URL: https://codereview.chromium.org/1281523007 Cr-Commit-Position: refs/heads/master@{#342631}
-rw-r--r--net/http/http_stream_parser.cc14
-rw-r--r--tools/metrics/histograms/histograms.xml3
2 files changed, 15 insertions, 2 deletions
diff --git a/net/http/http_stream_parser.cc b/net/http/http_stream_parser.cc
index bd30f55..2cf3f66 100644
--- a/net/http/http_stream_parser.cc
+++ b/net/http/http_stream_parser.cc
@@ -28,10 +28,13 @@ namespace {
enum HttpHeaderParserEvent {
HEADER_PARSER_INVOKED = 0,
- HEADER_HTTP_09_RESPONSE = 1,
+ // Obsolete: HEADER_HTTP_09_RESPONSE = 1,
HEADER_ALLOWED_TRUNCATED_HEADERS = 2,
HEADER_SKIPPED_WS_PREFIX = 3,
HEADER_SKIPPED_NON_WS_PREFIX = 4,
+ HEADER_HTTP_09_RESPONSE_OVER_HTTP = 5,
+ HEADER_HTTP_09_RESPONSE_OVER_SSL = 6,
+ HEADER_HTTP_09_ON_REUSED_SOCKET = 7,
NUM_HEADER_EVENTS
};
@@ -942,7 +945,14 @@ int HttpStreamParser::ParseResponseHeaders(int end_offset) {
} else {
// Enough data was read -- there is no status line.
headers = new HttpResponseHeaders(std::string("HTTP/0.9 200 OK"));
- RecordHeaderParserEvent(HEADER_HTTP_09_RESPONSE);
+
+ if (request_->url.SchemeIsCryptographic()) {
+ RecordHeaderParserEvent(HEADER_HTTP_09_RESPONSE_OVER_SSL);
+ } else {
+ RecordHeaderParserEvent(HEADER_HTTP_09_RESPONSE_OVER_HTTP);
+ }
+ if (connection_->is_reused())
+ RecordHeaderParserEvent(HEADER_HTTP_09_ON_REUSED_SOCKET);
}
// Check for multiple Content-Length headers with no Transfer-Encoding header.
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
index 623067d..ca88a5c0 100644
--- a/tools/metrics/histograms/histograms.xml
+++ b/tools/metrics/histograms/histograms.xml
@@ -59880,6 +59880,9 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries.
<int value="2" label="ALLOWED_TRUNCATED_HEADERS"/>
<int value="3" label="SKIPPED_WS_PREFIX"/>
<int value="4" label="SKIPPED_NON_WS_PREFIX"/>
+ <int value="5" label="HTTP_09_RESPONSE_OVER_HTTP"/>
+ <int value="6" label="HTTP_09_RESPONSE_OVER_SSL"/>
+ <int value="7" label="HEADER_HTTP_09_ON_REUSED_SOCKET"/>
</enum>
<enum name="HttpPipelineStatus" type="int">