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

Side by Side Diff: net/socket/ssl_client_socket_pool.cc

Issue 76443006: Certificate Transparency: Threading the CT verifier into the SSL client socket. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Reverted changes to cert_status_flags, added error code Created 7 years 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 #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 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 BoundNetLog::Make(net_log, NetLog::SOURCE_CONNECT_JOB)), 116 BoundNetLog::Make(net_log, NetLog::SOURCE_CONNECT_JOB)),
117 params_(params), 117 params_(params),
118 transport_pool_(transport_pool), 118 transport_pool_(transport_pool),
119 socks_pool_(socks_pool), 119 socks_pool_(socks_pool),
120 http_proxy_pool_(http_proxy_pool), 120 http_proxy_pool_(http_proxy_pool),
121 client_socket_factory_(client_socket_factory), 121 client_socket_factory_(client_socket_factory),
122 host_resolver_(host_resolver), 122 host_resolver_(host_resolver),
123 context_(context.cert_verifier, 123 context_(context.cert_verifier,
124 context.server_bound_cert_service, 124 context.server_bound_cert_service,
125 context.transport_security_state, 125 context.transport_security_state,
126 context.cert_transparency_verifier,
126 (params->privacy_mode() == kPrivacyModeEnabled 127 (params->privacy_mode() == kPrivacyModeEnabled
127 ? "pm/" + context.ssl_session_cache_shard 128 ? "pm/" + context.ssl_session_cache_shard
128 : context.ssl_session_cache_shard)), 129 : context.ssl_session_cache_shard)),
129 callback_(base::Bind(&SSLConnectJob::OnIOComplete, 130 callback_(base::Bind(&SSLConnectJob::OnIOComplete,
130 base::Unretained(this))) {} 131 base::Unretained(this))) {}
131 132
132 SSLConnectJob::~SSLConnectJob() {} 133 SSLConnectJob::~SSLConnectJob() {}
133 134
134 LoadState SSLConnectJob::GetLoadState() const { 135 LoadState SSLConnectJob::GetLoadState() const {
135 switch (next_state_) { 136 switch (next_state_) {
(...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after
501 } 502 }
502 503
503 SSLClientSocketPool::SSLClientSocketPool( 504 SSLClientSocketPool::SSLClientSocketPool(
504 int max_sockets, 505 int max_sockets,
505 int max_sockets_per_group, 506 int max_sockets_per_group,
506 ClientSocketPoolHistograms* histograms, 507 ClientSocketPoolHistograms* histograms,
507 HostResolver* host_resolver, 508 HostResolver* host_resolver,
508 CertVerifier* cert_verifier, 509 CertVerifier* cert_verifier,
509 ServerBoundCertService* server_bound_cert_service, 510 ServerBoundCertService* server_bound_cert_service,
510 TransportSecurityState* transport_security_state, 511 TransportSecurityState* transport_security_state,
512 CTVerifier* cert_transparency_verifier,
511 const std::string& ssl_session_cache_shard, 513 const std::string& ssl_session_cache_shard,
512 ClientSocketFactory* client_socket_factory, 514 ClientSocketFactory* client_socket_factory,
513 TransportClientSocketPool* transport_pool, 515 TransportClientSocketPool* transport_pool,
514 SOCKSClientSocketPool* socks_pool, 516 SOCKSClientSocketPool* socks_pool,
515 HttpProxyClientSocketPool* http_proxy_pool, 517 HttpProxyClientSocketPool* http_proxy_pool,
516 SSLConfigService* ssl_config_service, 518 SSLConfigService* ssl_config_service,
517 NetLog* net_log) 519 NetLog* net_log)
518 : transport_pool_(transport_pool), 520 : transport_pool_(transport_pool),
519 socks_pool_(socks_pool), 521 socks_pool_(socks_pool),
520 http_proxy_pool_(http_proxy_pool), 522 http_proxy_pool_(http_proxy_pool),
521 base_(this, max_sockets, max_sockets_per_group, histograms, 523 base_(this, max_sockets, max_sockets_per_group, histograms,
522 ClientSocketPool::unused_idle_socket_timeout(), 524 ClientSocketPool::unused_idle_socket_timeout(),
523 ClientSocketPool::used_idle_socket_timeout(), 525 ClientSocketPool::used_idle_socket_timeout(),
524 new SSLConnectJobFactory(transport_pool, 526 new SSLConnectJobFactory(transport_pool,
525 socks_pool, 527 socks_pool,
526 http_proxy_pool, 528 http_proxy_pool,
527 client_socket_factory, 529 client_socket_factory,
528 host_resolver, 530 host_resolver,
529 SSLClientSocketContext( 531 SSLClientSocketContext(
530 cert_verifier, 532 cert_verifier,
531 server_bound_cert_service, 533 server_bound_cert_service,
532 transport_security_state, 534 transport_security_state,
535 cert_transparency_verifier,
533 ssl_session_cache_shard), 536 ssl_session_cache_shard),
534 net_log)), 537 net_log)),
535 ssl_config_service_(ssl_config_service) { 538 ssl_config_service_(ssl_config_service) {
536 if (ssl_config_service_.get()) 539 if (ssl_config_service_.get())
537 ssl_config_service_->AddObserver(this); 540 ssl_config_service_->AddObserver(this);
538 if (transport_pool_) 541 if (transport_pool_)
539 base_.AddLowerLayeredPool(transport_pool_); 542 base_.AddLowerLayeredPool(transport_pool_);
540 if (socks_pool_) 543 if (socks_pool_)
541 base_.AddLowerLayeredPool(socks_pool_); 544 base_.AddLowerLayeredPool(socks_pool_);
542 if (http_proxy_pool_) 545 if (http_proxy_pool_)
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
674 if (base_.CloseOneIdleSocket()) 677 if (base_.CloseOneIdleSocket())
675 return true; 678 return true;
676 return base_.CloseOneIdleConnectionInHigherLayeredPool(); 679 return base_.CloseOneIdleConnectionInHigherLayeredPool();
677 } 680 }
678 681
679 void SSLClientSocketPool::OnSSLConfigChanged() { 682 void SSLClientSocketPool::OnSSLConfigChanged() {
680 FlushWithError(ERR_NETWORK_CHANGED); 683 FlushWithError(ERR_NETWORK_CHANGED);
681 } 684 }
682 685
683 } // namespace net 686 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698