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

Side by Side Diff: net/socket_stream/socket_stream.cc

Issue 16501002: Give more request types a TransportSecurityState. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Moar call sites. Created 7 years, 6 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 | Annotate | Revision Log
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 // TODO(ukai): code is similar with http_network_transaction.cc. We should 5 // TODO(ukai): code is similar with http_network_transaction.cc. We should
6 // think about ways to share code, if possible. 6 // think about ways to share code, if possible.
7 7
8 #include "net/socket_stream/socket_stream.h" 8 #include "net/socket_stream/socket_stream.h"
9 9
10 #include <set> 10 #include <set>
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 SocketStream::ResponseHeaders::~ResponseHeaders() { data_ = NULL; } 87 SocketStream::ResponseHeaders::~ResponseHeaders() { data_ = NULL; }
88 88
89 SocketStream::SocketStream(const GURL& url, Delegate* delegate) 89 SocketStream::SocketStream(const GURL& url, Delegate* delegate)
90 : delegate_(delegate), 90 : delegate_(delegate),
91 url_(url), 91 url_(url),
92 max_pending_send_allowed_(kMaxPendingSendAllowed), 92 max_pending_send_allowed_(kMaxPendingSendAllowed),
93 context_(NULL), 93 context_(NULL),
94 next_state_(STATE_NONE), 94 next_state_(STATE_NONE),
95 host_resolver_(NULL), 95 host_resolver_(NULL),
96 cert_verifier_(NULL), 96 cert_verifier_(NULL),
97 transport_security_state_(NULL),
97 server_bound_cert_service_(NULL), 98 server_bound_cert_service_(NULL),
98 factory_(ClientSocketFactory::GetDefaultFactory()), 99 factory_(ClientSocketFactory::GetDefaultFactory()),
99 proxy_mode_(kDirectConnection), 100 proxy_mode_(kDirectConnection),
100 proxy_url_(url), 101 proxy_url_(url),
101 pac_request_(NULL), 102 pac_request_(NULL),
102 privacy_mode_(kPrivacyModeDisabled), 103 privacy_mode_(kPrivacyModeDisabled),
103 // Unretained() is required; without it, Bind() creates a circular 104 // Unretained() is required; without it, Bind() creates a circular
104 // dependency and the SocketStream object will not be freed. 105 // dependency and the SocketStream object will not be freed.
105 io_callback_(base::Bind(&SocketStream::OnIOCompleted, 106 io_callback_(base::Bind(&SocketStream::OnIOCompleted,
106 base::Unretained(this))), 107 base::Unretained(this))),
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 context->net_log(), 153 context->net_log(),
153 NetLog::SOURCE_SOCKET_STREAM); 154 NetLog::SOURCE_SOCKET_STREAM);
154 155
155 net_log_.BeginEvent(NetLog::TYPE_REQUEST_ALIVE); 156 net_log_.BeginEvent(NetLog::TYPE_REQUEST_ALIVE);
156 } 157 }
157 } 158 }
158 159
159 if (context_) { 160 if (context_) {
160 host_resolver_ = context_->host_resolver(); 161 host_resolver_ = context_->host_resolver();
161 cert_verifier_ = context_->cert_verifier(); 162 cert_verifier_ = context_->cert_verifier();
163 transport_security_state_ = context_->transport_security_state();
162 server_bound_cert_service_ = context_->server_bound_cert_service(); 164 server_bound_cert_service_ = context_->server_bound_cert_service();
163 } 165 }
164 } 166 }
165 167
166 void SocketStream::CheckPrivacyMode() { 168 void SocketStream::CheckPrivacyMode() {
167 if (context_ && context_->network_delegate()) { 169 if (context_ && context_->network_delegate()) {
168 bool enable = context_->network_delegate()->CanEnablePrivacyMode(url_, 170 bool enable = context_->network_delegate()->CanEnablePrivacyMode(url_,
169 url_); 171 url_);
170 privacy_mode_ = enable ? kPrivacyModeEnabled : kPrivacyModeDisabled; 172 privacy_mode_ = enable ? kPrivacyModeEnabled : kPrivacyModeDisabled;
171 // Disable Channel ID if privacy mode is enabled. 173 // Disable Channel ID if privacy mode is enabled.
(...skipping 813 matching lines...) Expand 10 before | Expand all | Expand 10 after
985 } else { 987 } else {
986 next_state_ = STATE_CLOSE; 988 next_state_ = STATE_CLOSE;
987 } 989 }
988 return result; 990 return result;
989 } 991 }
990 992
991 int SocketStream::DoSecureProxyConnect() { 993 int SocketStream::DoSecureProxyConnect() {
992 DCHECK(factory_); 994 DCHECK(factory_);
993 SSLClientSocketContext ssl_context; 995 SSLClientSocketContext ssl_context;
994 ssl_context.cert_verifier = cert_verifier_; 996 ssl_context.cert_verifier = cert_verifier_;
997 ssl_context.transport_security_state = transport_security_state_;
995 ssl_context.server_bound_cert_service = server_bound_cert_service_; 998 ssl_context.server_bound_cert_service = server_bound_cert_service_;
996 socket_.reset(factory_->CreateSSLClientSocket( 999 socket_.reset(factory_->CreateSSLClientSocket(
997 socket_.release(), 1000 socket_.release(),
998 proxy_info_.proxy_server().host_port_pair(), 1001 proxy_info_.proxy_server().host_port_pair(),
999 proxy_ssl_config_, 1002 proxy_ssl_config_,
1000 ssl_context)); 1003 ssl_context));
1001 next_state_ = STATE_SECURE_PROXY_CONNECT_COMPLETE; 1004 next_state_ = STATE_SECURE_PROXY_CONNECT_COMPLETE;
1002 metrics_->OnCountConnectionType(SocketStreamMetrics::SECURE_PROXY_CONNECTION); 1005 metrics_->OnCountConnectionType(SocketStreamMetrics::SECURE_PROXY_CONNECTION);
1003 return socket_->Connect(io_callback_); 1006 return socket_->Connect(io_callback_);
1004 } 1007 }
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1038 } else { 1041 } else {
1039 next_state_ = STATE_CLOSE; 1042 next_state_ = STATE_CLOSE;
1040 } 1043 }
1041 return result; 1044 return result;
1042 } 1045 }
1043 1046
1044 int SocketStream::DoSSLConnect() { 1047 int SocketStream::DoSSLConnect() {
1045 DCHECK(factory_); 1048 DCHECK(factory_);
1046 SSLClientSocketContext ssl_context; 1049 SSLClientSocketContext ssl_context;
1047 ssl_context.cert_verifier = cert_verifier_; 1050 ssl_context.cert_verifier = cert_verifier_;
1051 ssl_context.transport_security_state = transport_security_state_;
1048 ssl_context.server_bound_cert_service = server_bound_cert_service_; 1052 ssl_context.server_bound_cert_service = server_bound_cert_service_;
1049 socket_.reset(factory_->CreateSSLClientSocket(socket_.release(), 1053 socket_.reset(factory_->CreateSSLClientSocket(socket_.release(),
1050 HostPortPair::FromURL(url_), 1054 HostPortPair::FromURL(url_),
1051 server_ssl_config_, 1055 server_ssl_config_,
1052 ssl_context)); 1056 ssl_context));
1053 next_state_ = STATE_SSL_CONNECT_COMPLETE; 1057 next_state_ = STATE_SSL_CONNECT_COMPLETE;
1054 metrics_->OnCountConnectionType(SocketStreamMetrics::SSL_CONNECTION); 1058 metrics_->OnCountConnectionType(SocketStreamMetrics::SSL_CONNECTION);
1055 return socket_->Connect(io_callback_); 1059 return socket_->Connect(io_callback_);
1056 } 1060 }
1057 1061
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
1322 1326
1323 SSLConfigService* SocketStream::ssl_config_service() const { 1327 SSLConfigService* SocketStream::ssl_config_service() const {
1324 return context_->ssl_config_service(); 1328 return context_->ssl_config_service();
1325 } 1329 }
1326 1330
1327 ProxyService* SocketStream::proxy_service() const { 1331 ProxyService* SocketStream::proxy_service() const {
1328 return context_->proxy_service(); 1332 return context_->proxy_service();
1329 } 1333 }
1330 1334
1331 } // namespace net 1335 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698