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

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

Issue 5386001: Cache certificate verification results in memory. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Upload before checkin Created 10 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
« no previous file with comments | « net/socket_stream/socket_stream.h ('k') | net/spdy/spdy_test_util.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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 43
44 void SocketStream::ResponseHeaders::Realloc(size_t new_size) { 44 void SocketStream::ResponseHeaders::Realloc(size_t new_size) {
45 headers_.reset(static_cast<char*>(realloc(headers_.release(), new_size))); 45 headers_.reset(static_cast<char*>(realloc(headers_.release(), new_size)));
46 } 46 }
47 47
48 SocketStream::SocketStream(const GURL& url, Delegate* delegate) 48 SocketStream::SocketStream(const GURL& url, Delegate* delegate)
49 : delegate_(delegate), 49 : delegate_(delegate),
50 url_(url), 50 url_(url),
51 max_pending_send_allowed_(kMaxPendingSendAllowed), 51 max_pending_send_allowed_(kMaxPendingSendAllowed),
52 next_state_(STATE_NONE), 52 next_state_(STATE_NONE),
53 host_resolver_(NULL),
54 cert_verifier_(NULL),
53 http_auth_handler_factory_(NULL), 55 http_auth_handler_factory_(NULL),
54 factory_(ClientSocketFactory::GetDefaultFactory()), 56 factory_(ClientSocketFactory::GetDefaultFactory()),
55 proxy_mode_(kDirectConnection), 57 proxy_mode_(kDirectConnection),
56 proxy_url_(url), 58 proxy_url_(url),
57 pac_request_(NULL), 59 pac_request_(NULL),
58 ALLOW_THIS_IN_INITIALIZER_LIST( 60 ALLOW_THIS_IN_INITIALIZER_LIST(
59 io_callback_(this, &SocketStream::OnIOCompleted)), 61 io_callback_(this, &SocketStream::OnIOCompleted)),
60 ALLOW_THIS_IN_INITIALIZER_LIST( 62 ALLOW_THIS_IN_INITIALIZER_LIST(
61 read_callback_(this, &SocketStream::OnReadCompleted)), 63 read_callback_(this, &SocketStream::OnReadCompleted)),
62 ALLOW_THIS_IN_INITIALIZER_LIST( 64 ALLOW_THIS_IN_INITIALIZER_LIST(
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 net_log_ = BoundNetLog::Make( 114 net_log_ = BoundNetLog::Make(
113 context->net_log(), 115 context->net_log(),
114 NetLog::SOURCE_SOCKET_STREAM); 116 NetLog::SOURCE_SOCKET_STREAM);
115 117
116 net_log_.BeginEvent(NetLog::TYPE_REQUEST_ALIVE, NULL); 118 net_log_.BeginEvent(NetLog::TYPE_REQUEST_ALIVE, NULL);
117 } 119 }
118 } 120 }
119 121
120 if (context_) { 122 if (context_) {
121 host_resolver_ = context_->host_resolver(); 123 host_resolver_ = context_->host_resolver();
124 cert_verifier_ = context_->cert_verifier();
122 http_auth_handler_factory_ = context_->http_auth_handler_factory(); 125 http_auth_handler_factory_ = context_->http_auth_handler_factory();
123 } 126 }
124 } 127 }
125 128
126 void SocketStream::Connect() { 129 void SocketStream::Connect() {
127 DCHECK(MessageLoop::current()) << 130 DCHECK(MessageLoop::current()) <<
128 "The current MessageLoop must exist"; 131 "The current MessageLoop must exist";
129 DCHECK_EQ(MessageLoop::TYPE_IO, MessageLoop::current()->type()) << 132 DCHECK_EQ(MessageLoop::TYPE_IO, MessageLoop::current()->type()) <<
130 "The current MessageLoop must be TYPE_IO"; 133 "The current MessageLoop must be TYPE_IO";
131 if (context_) 134 if (context_)
(...skipping 661 matching lines...) Expand 10 before | Expand all | Expand 10 after
793 } 796 }
794 return result; 797 return result;
795 } 798 }
796 799
797 int SocketStream::DoSSLConnect() { 800 int SocketStream::DoSSLConnect() {
798 DCHECK(factory_); 801 DCHECK(factory_);
799 // TODO(agl): look into plumbing SSLHostInfo here. 802 // TODO(agl): look into plumbing SSLHostInfo here.
800 socket_.reset(factory_->CreateSSLClientSocket(socket_.release(), 803 socket_.reset(factory_->CreateSSLClientSocket(socket_.release(),
801 HostPortPair::FromURL(url_), 804 HostPortPair::FromURL(url_),
802 ssl_config_, 805 ssl_config_,
803 NULL /* ssl_host_info */)); 806 NULL /* ssl_host_info */,
807 cert_verifier_));
804 next_state_ = STATE_SSL_CONNECT_COMPLETE; 808 next_state_ = STATE_SSL_CONNECT_COMPLETE;
805 metrics_->OnSSLConnection(); 809 metrics_->OnSSLConnection();
806 return socket_->Connect(&io_callback_); 810 return socket_->Connect(&io_callback_);
807 } 811 }
808 812
809 int SocketStream::DoSSLConnectComplete(int result) { 813 int SocketStream::DoSSLConnectComplete(int result) {
810 if (IsCertificateError(result)) { 814 if (IsCertificateError(result)) {
811 if (socket_->IsConnectedAndIdle()) { 815 if (socket_->IsConnectedAndIdle()) {
812 result = HandleCertificateError(result); 816 result = HandleCertificateError(result);
813 } else { 817 } else {
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
1023 1027
1024 SSLConfigService* SocketStream::ssl_config_service() const { 1028 SSLConfigService* SocketStream::ssl_config_service() const {
1025 return context_->ssl_config_service(); 1029 return context_->ssl_config_service();
1026 } 1030 }
1027 1031
1028 ProxyService* SocketStream::proxy_service() const { 1032 ProxyService* SocketStream::proxy_service() const {
1029 return context_->proxy_service(); 1033 return context_->proxy_service();
1030 } 1034 }
1031 1035
1032 } // namespace net 1036 } // namespace net
OLDNEW
« no previous file with comments | « net/socket_stream/socket_stream.h ('k') | net/spdy/spdy_test_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698