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

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

Issue 2347163002: s/NPN/ALPN/ (Closed)
Patch Set: Re: #12. Created 4 years, 3 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.h ('k') | net/http/http_stream_factory.h » ('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_response_info.h" 5 #include "net/http/http_response_info.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/pickle.h" 8 #include "base/pickle.h"
9 #include "base/time/time.h" 9 #include "base/time/time.h"
10 #include "net/base/auth.h" 10 #include "net/base/auth.h"
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 62
63 // This bit is set if the response info has vary header data. 63 // This bit is set if the response info has vary header data.
64 RESPONSE_INFO_HAS_VARY_DATA = 1 << 11, 64 RESPONSE_INFO_HAS_VARY_DATA = 1 << 11,
65 65
66 // This bit is set if the request was cancelled before completion. 66 // This bit is set if the request was cancelled before completion.
67 RESPONSE_INFO_TRUNCATED = 1 << 12, 67 RESPONSE_INFO_TRUNCATED = 1 << 12,
68 68
69 // This bit is set if the response was received via SPDY. 69 // This bit is set if the response was received via SPDY.
70 RESPONSE_INFO_WAS_SPDY = 1 << 13, 70 RESPONSE_INFO_WAS_SPDY = 1 << 13,
71 71
72 // This bit is set if the request has NPN negotiated. 72 // This bit is set if the request has ALPN negotiated.
73 RESPONSE_INFO_WAS_NPN = 1 << 14, 73 RESPONSE_INFO_WAS_ALPN = 1 << 14,
74 74
75 // This bit is set if the request was fetched via an explicit proxy. 75 // This bit is set if the request was fetched via an explicit proxy.
76 RESPONSE_INFO_WAS_PROXY = 1 << 15, 76 RESPONSE_INFO_WAS_PROXY = 1 << 15,
77 77
78 // This bit is set if the response info has an SSL connection status field. 78 // This bit is set if the response info has an SSL connection status field.
79 // This contains the ciphersuite used to fetch the resource as well as the 79 // This contains the ciphersuite used to fetch the resource as well as the
80 // protocol version, compression method and whether SSLv3 fallback was used. 80 // protocol version, compression method and whether SSLv3 fallback was used.
81 RESPONSE_INFO_HAS_SSL_CONNECTION_STATUS = 1 << 16, 81 RESPONSE_INFO_HAS_SSL_CONNECTION_STATUS = 1 << 16,
82 82
83 // This bit is set if the response info has protocol version. 83 // This bit is set if the response info has protocol version.
84 RESPONSE_INFO_HAS_NPN_NEGOTIATED_PROTOCOL = 1 << 17, 84 RESPONSE_INFO_HAS_ALPN_NEGOTIATED_PROTOCOL = 1 << 17,
85 85
86 // This bit is set if the response info has connection info. 86 // This bit is set if the response info has connection info.
87 RESPONSE_INFO_HAS_CONNECTION_INFO = 1 << 18, 87 RESPONSE_INFO_HAS_CONNECTION_INFO = 1 << 18,
88 88
89 // This bit is set if the request has http authentication. 89 // This bit is set if the request has http authentication.
90 RESPONSE_INFO_USE_HTTP_AUTHENTICATION = 1 << 19, 90 RESPONSE_INFO_USE_HTTP_AUTHENTICATION = 1 << 19,
91 91
92 // This bit is set if ssl_info has SCTs. 92 // This bit is set if ssl_info has SCTs.
93 RESPONSE_INFO_HAS_SIGNED_CERTIFICATE_TIMESTAMPS = 1 << 20, 93 RESPONSE_INFO_HAS_SIGNED_CERTIFICATE_TIMESTAMPS = 1 << 20,
94 94
95 RESPONSE_INFO_UNUSED_SINCE_PREFETCH = 1 << 21, 95 RESPONSE_INFO_UNUSED_SINCE_PREFETCH = 1 << 21,
96 96
97 // This bit is set if the response has a key-exchange-info field at the end. 97 // This bit is set if the response has a key-exchange-info field at the end.
98 RESPONSE_INFO_HAS_KEY_EXCHANGE_INFO = 1 << 22, 98 RESPONSE_INFO_HAS_KEY_EXCHANGE_INFO = 1 << 22,
99 99
100 // This bit is set if ssl_info recorded that PKP was bypassed due to a local 100 // This bit is set if ssl_info recorded that PKP was bypassed due to a local
101 // trust anchor. 101 // trust anchor.
102 RESPONSE_INFO_PKP_BYPASSED = 1 << 23, 102 RESPONSE_INFO_PKP_BYPASSED = 1 << 23,
103 103
104 // TODO(darin): Add other bits to indicate alternate request methods. 104 // TODO(darin): Add other bits to indicate alternate request methods.
105 // For now, we don't support storing those. 105 // For now, we don't support storing those.
106 }; 106 };
107 107
108 HttpResponseInfo::HttpResponseInfo() 108 HttpResponseInfo::HttpResponseInfo()
109 : was_cached(false), 109 : was_cached(false),
110 cache_entry_status(CacheEntryStatus::ENTRY_UNDEFINED), 110 cache_entry_status(CacheEntryStatus::ENTRY_UNDEFINED),
111 server_data_unavailable(false), 111 server_data_unavailable(false),
112 network_accessed(false), 112 network_accessed(false),
113 was_fetched_via_spdy(false), 113 was_fetched_via_spdy(false),
114 was_npn_negotiated(false), 114 was_alpn_negotiated(false),
115 was_fetched_via_proxy(false), 115 was_fetched_via_proxy(false),
116 did_use_http_auth(false), 116 did_use_http_auth(false),
117 unused_since_prefetch(false), 117 unused_since_prefetch(false),
118 async_revalidation_required(false), 118 async_revalidation_required(false),
119 connection_info(CONNECTION_INFO_UNKNOWN) {} 119 connection_info(CONNECTION_INFO_UNKNOWN) {}
120 120
121 HttpResponseInfo::HttpResponseInfo(const HttpResponseInfo& rhs) 121 HttpResponseInfo::HttpResponseInfo(const HttpResponseInfo& rhs)
122 : was_cached(rhs.was_cached), 122 : was_cached(rhs.was_cached),
123 cache_entry_status(rhs.cache_entry_status), 123 cache_entry_status(rhs.cache_entry_status),
124 server_data_unavailable(rhs.server_data_unavailable), 124 server_data_unavailable(rhs.server_data_unavailable),
125 network_accessed(rhs.network_accessed), 125 network_accessed(rhs.network_accessed),
126 was_fetched_via_spdy(rhs.was_fetched_via_spdy), 126 was_fetched_via_spdy(rhs.was_fetched_via_spdy),
127 was_npn_negotiated(rhs.was_npn_negotiated), 127 was_alpn_negotiated(rhs.was_alpn_negotiated),
128 was_fetched_via_proxy(rhs.was_fetched_via_proxy), 128 was_fetched_via_proxy(rhs.was_fetched_via_proxy),
129 proxy_server(rhs.proxy_server), 129 proxy_server(rhs.proxy_server),
130 did_use_http_auth(rhs.did_use_http_auth), 130 did_use_http_auth(rhs.did_use_http_auth),
131 unused_since_prefetch(rhs.unused_since_prefetch), 131 unused_since_prefetch(rhs.unused_since_prefetch),
132 async_revalidation_required(rhs.async_revalidation_required), 132 async_revalidation_required(rhs.async_revalidation_required),
133 socket_address(rhs.socket_address), 133 socket_address(rhs.socket_address),
134 npn_negotiated_protocol(rhs.npn_negotiated_protocol), 134 alpn_negotiated_protocol(rhs.alpn_negotiated_protocol),
135 connection_info(rhs.connection_info), 135 connection_info(rhs.connection_info),
136 request_time(rhs.request_time), 136 request_time(rhs.request_time),
137 response_time(rhs.response_time), 137 response_time(rhs.response_time),
138 auth_challenge(rhs.auth_challenge), 138 auth_challenge(rhs.auth_challenge),
139 cert_request_info(rhs.cert_request_info), 139 cert_request_info(rhs.cert_request_info),
140 ssl_info(rhs.ssl_info), 140 ssl_info(rhs.ssl_info),
141 headers(rhs.headers), 141 headers(rhs.headers),
142 vary_data(rhs.vary_data), 142 vary_data(rhs.vary_data),
143 metadata(rhs.metadata) {} 143 metadata(rhs.metadata) {}
144 144
145 HttpResponseInfo::~HttpResponseInfo() { 145 HttpResponseInfo::~HttpResponseInfo() {
146 } 146 }
147 147
148 HttpResponseInfo& HttpResponseInfo::operator=(const HttpResponseInfo& rhs) { 148 HttpResponseInfo& HttpResponseInfo::operator=(const HttpResponseInfo& rhs) {
149 was_cached = rhs.was_cached; 149 was_cached = rhs.was_cached;
150 cache_entry_status = rhs.cache_entry_status; 150 cache_entry_status = rhs.cache_entry_status;
151 server_data_unavailable = rhs.server_data_unavailable; 151 server_data_unavailable = rhs.server_data_unavailable;
152 network_accessed = rhs.network_accessed; 152 network_accessed = rhs.network_accessed;
153 was_fetched_via_spdy = rhs.was_fetched_via_spdy; 153 was_fetched_via_spdy = rhs.was_fetched_via_spdy;
154 proxy_server = rhs.proxy_server; 154 proxy_server = rhs.proxy_server;
155 was_npn_negotiated = rhs.was_npn_negotiated; 155 was_alpn_negotiated = rhs.was_alpn_negotiated;
156 was_fetched_via_proxy = rhs.was_fetched_via_proxy; 156 was_fetched_via_proxy = rhs.was_fetched_via_proxy;
157 did_use_http_auth = rhs.did_use_http_auth; 157 did_use_http_auth = rhs.did_use_http_auth;
158 unused_since_prefetch = rhs.unused_since_prefetch; 158 unused_since_prefetch = rhs.unused_since_prefetch;
159 async_revalidation_required = rhs.async_revalidation_required; 159 async_revalidation_required = rhs.async_revalidation_required;
160 socket_address = rhs.socket_address; 160 socket_address = rhs.socket_address;
161 npn_negotiated_protocol = rhs.npn_negotiated_protocol; 161 alpn_negotiated_protocol = rhs.alpn_negotiated_protocol;
162 connection_info = rhs.connection_info; 162 connection_info = rhs.connection_info;
163 request_time = rhs.request_time; 163 request_time = rhs.request_time;
164 response_time = rhs.response_time; 164 response_time = rhs.response_time;
165 auth_challenge = rhs.auth_challenge; 165 auth_challenge = rhs.auth_challenge;
166 cert_request_info = rhs.cert_request_info; 166 cert_request_info = rhs.cert_request_info;
167 ssl_info = rhs.ssl_info; 167 ssl_info = rhs.ssl_info;
168 headers = rhs.headers; 168 headers = rhs.headers;
169 vary_data = rhs.vary_data; 169 vary_data = rhs.vary_data;
170 metadata = rhs.metadata; 170 metadata = rhs.metadata;
171 return *this; 171 return *this;
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 if (!iter.ReadUInt16(&socket_address_port)) 262 if (!iter.ReadUInt16(&socket_address_port))
263 return false; 263 return false;
264 socket_address = HostPortPair(socket_address_host, socket_address_port); 264 socket_address = HostPortPair(socket_address_host, socket_address_port);
265 } else if (version > 1) { 265 } else if (version > 1) {
266 // socket_address was not always present in version 1 of the response 266 // socket_address was not always present in version 1 of the response
267 // info, so we don't fail if it can't be read. 267 // info, so we don't fail if it can't be read.
268 return false; 268 return false;
269 } 269 }
270 270
271 // Read protocol-version. 271 // Read protocol-version.
272 if (flags & RESPONSE_INFO_HAS_NPN_NEGOTIATED_PROTOCOL) { 272 if (flags & RESPONSE_INFO_HAS_ALPN_NEGOTIATED_PROTOCOL) {
273 if (!iter.ReadString(&npn_negotiated_protocol)) 273 if (!iter.ReadString(&alpn_negotiated_protocol))
274 return false; 274 return false;
275 } 275 }
276 276
277 // Read connection info. 277 // Read connection info.
278 if (flags & RESPONSE_INFO_HAS_CONNECTION_INFO) { 278 if (flags & RESPONSE_INFO_HAS_CONNECTION_INFO) {
279 int value; 279 int value;
280 if (!iter.ReadInt(&value)) 280 if (!iter.ReadInt(&value))
281 return false; 281 return false;
282 282
283 if (value > static_cast<int>(CONNECTION_INFO_UNKNOWN) && 283 if (value > static_cast<int>(CONNECTION_INFO_UNKNOWN) &&
284 value < static_cast<int>(NUM_OF_CONNECTION_INFOS)) { 284 value < static_cast<int>(NUM_OF_CONNECTION_INFOS)) {
285 connection_info = static_cast<ConnectionInfo>(value); 285 connection_info = static_cast<ConnectionInfo>(value);
286 } 286 }
287 } 287 }
288 288
289 // Read key_exchange_info 289 // Read key_exchange_info
290 if (flags & RESPONSE_INFO_HAS_KEY_EXCHANGE_INFO) { 290 if (flags & RESPONSE_INFO_HAS_KEY_EXCHANGE_INFO) {
291 int key_exchange_info; 291 int key_exchange_info;
292 if (!iter.ReadInt(&key_exchange_info)) 292 if (!iter.ReadInt(&key_exchange_info))
293 return false; 293 return false;
294 ssl_info.key_exchange_info = key_exchange_info; 294 ssl_info.key_exchange_info = key_exchange_info;
295 } 295 }
296 296
297 was_fetched_via_spdy = (flags & RESPONSE_INFO_WAS_SPDY) != 0; 297 was_fetched_via_spdy = (flags & RESPONSE_INFO_WAS_SPDY) != 0;
298 298
299 was_npn_negotiated = (flags & RESPONSE_INFO_WAS_NPN) != 0; 299 was_alpn_negotiated = (flags & RESPONSE_INFO_WAS_ALPN) != 0;
300 300
301 was_fetched_via_proxy = (flags & RESPONSE_INFO_WAS_PROXY) != 0; 301 was_fetched_via_proxy = (flags & RESPONSE_INFO_WAS_PROXY) != 0;
302 302
303 *response_truncated = (flags & RESPONSE_INFO_TRUNCATED) != 0; 303 *response_truncated = (flags & RESPONSE_INFO_TRUNCATED) != 0;
304 304
305 did_use_http_auth = (flags & RESPONSE_INFO_USE_HTTP_AUTHENTICATION) != 0; 305 did_use_http_auth = (flags & RESPONSE_INFO_USE_HTTP_AUTHENTICATION) != 0;
306 306
307 unused_since_prefetch = (flags & RESPONSE_INFO_UNUSED_SINCE_PREFETCH) != 0; 307 unused_since_prefetch = (flags & RESPONSE_INFO_UNUSED_SINCE_PREFETCH) != 0;
308 308
309 ssl_info.pkp_bypassed = (flags & RESPONSE_INFO_PKP_BYPASSED) != 0; 309 ssl_info.pkp_bypassed = (flags & RESPONSE_INFO_PKP_BYPASSED) != 0;
(...skipping 14 matching lines...) Expand all
324 flags |= RESPONSE_INFO_HAS_KEY_EXCHANGE_INFO; 324 flags |= RESPONSE_INFO_HAS_KEY_EXCHANGE_INFO;
325 if (ssl_info.connection_status != 0) 325 if (ssl_info.connection_status != 0)
326 flags |= RESPONSE_INFO_HAS_SSL_CONNECTION_STATUS; 326 flags |= RESPONSE_INFO_HAS_SSL_CONNECTION_STATUS;
327 } 327 }
328 if (vary_data.is_valid()) 328 if (vary_data.is_valid())
329 flags |= RESPONSE_INFO_HAS_VARY_DATA; 329 flags |= RESPONSE_INFO_HAS_VARY_DATA;
330 if (response_truncated) 330 if (response_truncated)
331 flags |= RESPONSE_INFO_TRUNCATED; 331 flags |= RESPONSE_INFO_TRUNCATED;
332 if (was_fetched_via_spdy) 332 if (was_fetched_via_spdy)
333 flags |= RESPONSE_INFO_WAS_SPDY; 333 flags |= RESPONSE_INFO_WAS_SPDY;
334 if (was_npn_negotiated) { 334 if (was_alpn_negotiated) {
335 flags |= RESPONSE_INFO_WAS_NPN; 335 flags |= RESPONSE_INFO_WAS_ALPN;
336 flags |= RESPONSE_INFO_HAS_NPN_NEGOTIATED_PROTOCOL; 336 flags |= RESPONSE_INFO_HAS_ALPN_NEGOTIATED_PROTOCOL;
337 } 337 }
338 if (was_fetched_via_proxy) 338 if (was_fetched_via_proxy)
339 flags |= RESPONSE_INFO_WAS_PROXY; 339 flags |= RESPONSE_INFO_WAS_PROXY;
340 if (connection_info != CONNECTION_INFO_UNKNOWN) 340 if (connection_info != CONNECTION_INFO_UNKNOWN)
341 flags |= RESPONSE_INFO_HAS_CONNECTION_INFO; 341 flags |= RESPONSE_INFO_HAS_CONNECTION_INFO;
342 if (did_use_http_auth) 342 if (did_use_http_auth)
343 flags |= RESPONSE_INFO_USE_HTTP_AUTHENTICATION; 343 flags |= RESPONSE_INFO_USE_HTTP_AUTHENTICATION;
344 if (unused_since_prefetch) 344 if (unused_since_prefetch)
345 flags |= RESPONSE_INFO_UNUSED_SINCE_PREFETCH; 345 flags |= RESPONSE_INFO_UNUSED_SINCE_PREFETCH;
346 if (!ssl_info.signed_certificate_timestamps.empty()) 346 if (!ssl_info.signed_certificate_timestamps.empty())
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
383 } 383 }
384 } 384 }
385 } 385 }
386 386
387 if (vary_data.is_valid()) 387 if (vary_data.is_valid())
388 vary_data.Persist(pickle); 388 vary_data.Persist(pickle);
389 389
390 pickle->WriteString(socket_address.host()); 390 pickle->WriteString(socket_address.host());
391 pickle->WriteUInt16(socket_address.port()); 391 pickle->WriteUInt16(socket_address.port());
392 392
393 if (was_npn_negotiated) 393 if (was_alpn_negotiated)
394 pickle->WriteString(npn_negotiated_protocol); 394 pickle->WriteString(alpn_negotiated_protocol);
395 395
396 if (connection_info != CONNECTION_INFO_UNKNOWN) 396 if (connection_info != CONNECTION_INFO_UNKNOWN)
397 pickle->WriteInt(static_cast<int>(connection_info)); 397 pickle->WriteInt(static_cast<int>(connection_info));
398 398
399 if (ssl_info.is_valid() && ssl_info.key_exchange_info != 0) 399 if (ssl_info.is_valid() && ssl_info.key_exchange_info != 0)
400 pickle->WriteInt(ssl_info.key_exchange_info); 400 pickle->WriteInt(ssl_info.key_exchange_info);
401 } 401 }
402 402
403 HttpResponseInfo::ConnectionInfo HttpResponseInfo::ConnectionInfoFromNextProto( 403 HttpResponseInfo::ConnectionInfo HttpResponseInfo::ConnectionInfoFromNextProto(
404 NextProto next_proto) { 404 NextProto next_proto) {
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
445 case CONNECTION_INFO_HTTP1_0: 445 case CONNECTION_INFO_HTTP1_0:
446 return "http/1.0"; 446 return "http/1.0";
447 case NUM_OF_CONNECTION_INFOS: 447 case NUM_OF_CONNECTION_INFOS:
448 break; 448 break;
449 } 449 }
450 NOTREACHED(); 450 NOTREACHED();
451 return ""; 451 return "";
452 } 452 }
453 453
454 } // namespace net 454 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_response_info.h ('k') | net/http/http_stream_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698