OLD | NEW |
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/socket/ssl_client_socket_pool.h" | 5 #include "net/socket/ssl_client_socket_pool.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
9 #include "base/metrics/field_trial.h" | 9 #include "base/metrics/field_trial.h" |
10 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
191 socks_pool_(socks_pool), | 191 socks_pool_(socks_pool), |
192 http_proxy_pool_(http_proxy_pool), | 192 http_proxy_pool_(http_proxy_pool), |
193 client_socket_factory_(client_socket_factory), | 193 client_socket_factory_(client_socket_factory), |
194 context_(context.cert_verifier, | 194 context_(context.cert_verifier, |
195 context.channel_id_service, | 195 context.channel_id_service, |
196 context.transport_security_state, | 196 context.transport_security_state, |
197 context.cert_transparency_verifier, | 197 context.cert_transparency_verifier, |
198 context.cert_policy_enforcer, | 198 context.cert_policy_enforcer, |
199 (params->privacy_mode() == PRIVACY_MODE_ENABLED | 199 (params->privacy_mode() == PRIVACY_MODE_ENABLED |
200 ? "pm/" + context.ssl_session_cache_shard | 200 ? "pm/" + context.ssl_session_cache_shard |
201 : context.ssl_session_cache_shard)), | 201 : context.ssl_session_cache_shard), |
| 202 context.ssl_socket_config_service), |
202 io_callback_( | 203 io_callback_( |
203 base::Bind(&SSLConnectJob::OnIOComplete, base::Unretained(this))), | 204 base::Bind(&SSLConnectJob::OnIOComplete, base::Unretained(this))), |
204 messenger_(NULL), | 205 messenger_(NULL), |
205 get_messenger_callback_(get_messenger_callback), | 206 get_messenger_callback_(get_messenger_callback), |
206 weak_factory_(this) { | 207 weak_factory_(this) { |
207 } | 208 } |
208 | 209 |
209 SSLConnectJob::~SSLConnectJob() { | 210 SSLConnectJob::~SSLConnectJob() { |
210 if (ssl_socket_.get() && messenger_) | 211 if (ssl_socket_.get() && messenger_) |
211 messenger_->RemovePendingSocket(ssl_socket_.get()); | 212 messenger_->RemovePendingSocket(ssl_socket_.get()); |
(...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
631 TransportSecurityState* transport_security_state, | 632 TransportSecurityState* transport_security_state, |
632 CTVerifier* cert_transparency_verifier, | 633 CTVerifier* cert_transparency_verifier, |
633 CertPolicyEnforcer* cert_policy_enforcer, | 634 CertPolicyEnforcer* cert_policy_enforcer, |
634 const std::string& ssl_session_cache_shard, | 635 const std::string& ssl_session_cache_shard, |
635 ClientSocketFactory* client_socket_factory, | 636 ClientSocketFactory* client_socket_factory, |
636 TransportClientSocketPool* transport_pool, | 637 TransportClientSocketPool* transport_pool, |
637 SOCKSClientSocketPool* socks_pool, | 638 SOCKSClientSocketPool* socks_pool, |
638 HttpProxyClientSocketPool* http_proxy_pool, | 639 HttpProxyClientSocketPool* http_proxy_pool, |
639 SSLConfigService* ssl_config_service, | 640 SSLConfigService* ssl_config_service, |
640 bool enable_ssl_connect_job_waiting, | 641 bool enable_ssl_connect_job_waiting, |
641 NetLog* net_log) | 642 NetLog* net_log, |
| 643 SSLSocketConfigService* ssl_socket_config_service) |
642 : transport_pool_(transport_pool), | 644 : transport_pool_(transport_pool), |
643 socks_pool_(socks_pool), | 645 socks_pool_(socks_pool), |
644 http_proxy_pool_(http_proxy_pool), | 646 http_proxy_pool_(http_proxy_pool), |
645 base_(this, | 647 base_(this, |
646 max_sockets, | 648 max_sockets, |
647 max_sockets_per_group, | 649 max_sockets_per_group, |
648 histograms, | 650 histograms, |
649 ClientSocketPool::unused_idle_socket_timeout(), | 651 ClientSocketPool::unused_idle_socket_timeout(), |
650 ClientSocketPool::used_idle_socket_timeout(), | 652 ClientSocketPool::used_idle_socket_timeout(), |
651 new SSLConnectJobFactory( | 653 new SSLConnectJobFactory( |
652 transport_pool, | 654 transport_pool, |
653 socks_pool, | 655 socks_pool, |
654 http_proxy_pool, | 656 http_proxy_pool, |
655 client_socket_factory, | 657 client_socket_factory, |
656 SSLClientSocketContext(cert_verifier, | 658 SSLClientSocketContext(cert_verifier, |
657 channel_id_service, | 659 channel_id_service, |
658 transport_security_state, | 660 transport_security_state, |
659 cert_transparency_verifier, | 661 cert_transparency_verifier, |
660 cert_policy_enforcer, | 662 cert_policy_enforcer, |
661 ssl_session_cache_shard), | 663 ssl_session_cache_shard, |
| 664 ssl_socket_config_service), |
662 base::Bind( | 665 base::Bind( |
663 &SSLClientSocketPool::GetOrCreateSSLConnectJobMessenger, | 666 &SSLClientSocketPool::GetOrCreateSSLConnectJobMessenger, |
664 base::Unretained(this)), | 667 base::Unretained(this)), |
665 net_log)), | 668 net_log)), |
666 ssl_config_service_(ssl_config_service), | 669 ssl_config_service_(ssl_config_service), |
667 enable_ssl_connect_job_waiting_(enable_ssl_connect_job_waiting) { | 670 enable_ssl_connect_job_waiting_(enable_ssl_connect_job_waiting) { |
668 if (ssl_config_service_.get()) | 671 if (ssl_config_service_.get()) |
669 ssl_config_service_->AddObserver(this); | 672 ssl_config_service_->AddObserver(this); |
670 if (transport_pool_) | 673 if (transport_pool_) |
671 base_.AddLowerLayeredPool(transport_pool_); | 674 base_.AddLowerLayeredPool(transport_pool_); |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
840 CHECK(it != messenger_map_.end()); | 843 CHECK(it != messenger_map_.end()); |
841 delete it->second; | 844 delete it->second; |
842 messenger_map_.erase(it); | 845 messenger_map_.erase(it); |
843 } | 846 } |
844 | 847 |
845 void SSLClientSocketPool::OnSSLConfigChanged() { | 848 void SSLClientSocketPool::OnSSLConfigChanged() { |
846 FlushWithError(ERR_NETWORK_CHANGED); | 849 FlushWithError(ERR_NETWORK_CHANGED); |
847 } | 850 } |
848 | 851 |
849 } // namespace net | 852 } // namespace net |
OLD | NEW |