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/quic/quic_chromium_client_session.h" | 5 #include "net/quic/quic_chromium_client_session.h" |
6 | 6 |
| 7 #include <utility> |
| 8 |
7 #include "base/callback_helpers.h" | 9 #include "base/callback_helpers.h" |
8 #include "base/location.h" | 10 #include "base/location.h" |
9 #include "base/metrics/histogram_macros.h" | 11 #include "base/metrics/histogram_macros.h" |
10 #include "base/metrics/sparse_histogram.h" | 12 #include "base/metrics/sparse_histogram.h" |
11 #include "base/single_thread_task_runner.h" | 13 #include "base/single_thread_task_runner.h" |
12 #include "base/stl_util.h" | 14 #include "base/stl_util.h" |
13 #include "base/strings/string_number_conversions.h" | 15 #include "base/strings/string_number_conversions.h" |
14 #include "base/thread_task_runner_handle.h" | 16 #include "base/thread_task_runner_handle.h" |
15 #include "base/values.h" | 17 #include "base/values.h" |
16 #include "net/base/io_buffer.h" | 18 #include "net/base/io_buffer.h" |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
103 int cert_verify_flags, | 105 int cert_verify_flags, |
104 bool require_confirmation, | 106 bool require_confirmation, |
105 NetLogCaptureMode /* capture_mode */) { | 107 NetLogCaptureMode /* capture_mode */) { |
106 scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue()); | 108 scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue()); |
107 dict->SetString("host", server_id->host()); | 109 dict->SetString("host", server_id->host()); |
108 dict->SetInteger("port", server_id->port()); | 110 dict->SetInteger("port", server_id->port()); |
109 dict->SetBoolean("privacy_mode", | 111 dict->SetBoolean("privacy_mode", |
110 server_id->privacy_mode() == PRIVACY_MODE_ENABLED); | 112 server_id->privacy_mode() == PRIVACY_MODE_ENABLED); |
111 dict->SetBoolean("require_confirmation", require_confirmation); | 113 dict->SetBoolean("require_confirmation", require_confirmation); |
112 dict->SetInteger("cert_verify_flags", cert_verify_flags); | 114 dict->SetInteger("cert_verify_flags", cert_verify_flags); |
113 return dict.Pass(); | 115 return std::move(dict); |
114 } | 116 } |
115 | 117 |
116 } // namespace | 118 } // namespace |
117 | 119 |
118 QuicChromiumClientSession::StreamRequest::StreamRequest() : stream_(nullptr) {} | 120 QuicChromiumClientSession::StreamRequest::StreamRequest() : stream_(nullptr) {} |
119 | 121 |
120 QuicChromiumClientSession::StreamRequest::~StreamRequest() { | 122 QuicChromiumClientSession::StreamRequest::~StreamRequest() { |
121 CancelRequest(); | 123 CancelRequest(); |
122 } | 124 } |
123 | 125 |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
171 QuicCryptoClientConfig* crypto_config, | 173 QuicCryptoClientConfig* crypto_config, |
172 const char* const connection_description, | 174 const char* const connection_description, |
173 base::TimeTicks dns_resolution_end_time, | 175 base::TimeTicks dns_resolution_end_time, |
174 base::TaskRunner* task_runner, | 176 base::TaskRunner* task_runner, |
175 scoped_ptr<SocketPerformanceWatcher> socket_performance_watcher, | 177 scoped_ptr<SocketPerformanceWatcher> socket_performance_watcher, |
176 NetLog* net_log) | 178 NetLog* net_log) |
177 : QuicClientSessionBase(connection, config), | 179 : QuicClientSessionBase(connection, config), |
178 server_id_(server_id), | 180 server_id_(server_id), |
179 require_confirmation_(false), | 181 require_confirmation_(false), |
180 stream_factory_(stream_factory), | 182 stream_factory_(stream_factory), |
181 socket_(socket.Pass()), | 183 socket_(std::move(socket)), |
182 transport_security_state_(transport_security_state), | 184 transport_security_state_(transport_security_state), |
183 server_info_(server_info.Pass()), | 185 server_info_(std::move(server_info)), |
184 num_total_streams_(0), | 186 num_total_streams_(0), |
185 task_runner_(task_runner), | 187 task_runner_(task_runner), |
186 net_log_(BoundNetLog::Make(net_log, NetLog::SOURCE_QUIC_SESSION)), | 188 net_log_(BoundNetLog::Make(net_log, NetLog::SOURCE_QUIC_SESSION)), |
187 packet_reader_(socket_.get(), | 189 packet_reader_(socket_.get(), |
188 clock, | 190 clock, |
189 this, | 191 this, |
190 yield_after_packets, | 192 yield_after_packets, |
191 yield_after_duration, | 193 yield_after_duration, |
192 net_log_), | 194 net_log_), |
193 dns_resolution_end_time_(dns_resolution_end_time), | 195 dns_resolution_end_time_(dns_resolution_end_time), |
194 logger_(new QuicConnectionLogger(this, | 196 logger_(new QuicConnectionLogger(this, |
195 connection_description, | 197 connection_description, |
196 socket_performance_watcher.Pass(), | 198 std::move(socket_performance_watcher), |
197 net_log_)), | 199 net_log_)), |
198 going_away_(false), | 200 going_away_(false), |
199 disabled_reason_(QUIC_DISABLED_NOT), | 201 disabled_reason_(QUIC_DISABLED_NOT), |
200 weak_factory_(this) { | 202 weak_factory_(this) { |
201 crypto_stream_.reset( | 203 crypto_stream_.reset( |
202 crypto_client_stream_factory | 204 crypto_client_stream_factory |
203 ? crypto_client_stream_factory->CreateQuicCryptoClientStream( | 205 ? crypto_client_stream_factory->CreateQuicCryptoClientStream( |
204 server_id, this, crypto_config) | 206 server_id, this, crypto_config) |
205 : new QuicCryptoClientStream( | 207 : new QuicCryptoClientStream( |
206 server_id, this, | 208 server_id, this, |
(...skipping 600 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
807 | 809 |
808 void QuicChromiumClientSession::OnProofVerifyDetailsAvailable( | 810 void QuicChromiumClientSession::OnProofVerifyDetailsAvailable( |
809 const ProofVerifyDetails& verify_details) { | 811 const ProofVerifyDetails& verify_details) { |
810 const ProofVerifyDetailsChromium* verify_details_chromium = | 812 const ProofVerifyDetailsChromium* verify_details_chromium = |
811 reinterpret_cast<const ProofVerifyDetailsChromium*>(&verify_details); | 813 reinterpret_cast<const ProofVerifyDetailsChromium*>(&verify_details); |
812 cert_verify_result_.reset(new CertVerifyResult); | 814 cert_verify_result_.reset(new CertVerifyResult); |
813 cert_verify_result_->CopyFrom(verify_details_chromium->cert_verify_result); | 815 cert_verify_result_->CopyFrom(verify_details_chromium->cert_verify_result); |
814 pinning_failure_log_ = verify_details_chromium->pinning_failure_log; | 816 pinning_failure_log_ = verify_details_chromium->pinning_failure_log; |
815 scoped_ptr<ct::CTVerifyResult> ct_verify_result_copy( | 817 scoped_ptr<ct::CTVerifyResult> ct_verify_result_copy( |
816 new ct::CTVerifyResult(verify_details_chromium->ct_verify_result)); | 818 new ct::CTVerifyResult(verify_details_chromium->ct_verify_result)); |
817 ct_verify_result_ = ct_verify_result_copy.Pass(); | 819 ct_verify_result_ = std::move(ct_verify_result_copy); |
818 logger_->OnCertificateVerified(*cert_verify_result_); | 820 logger_->OnCertificateVerified(*cert_verify_result_); |
819 } | 821 } |
820 | 822 |
821 void QuicChromiumClientSession::StartReading() { | 823 void QuicChromiumClientSession::StartReading() { |
822 packet_reader_.StartReading(); | 824 packet_reader_.StartReading(); |
823 } | 825 } |
824 | 826 |
825 void QuicChromiumClientSession::CloseSessionOnError(int error, | 827 void QuicChromiumClientSession::CloseSessionOnError(int error, |
826 QuicErrorCode quic_error) { | 828 QuicErrorCode quic_error) { |
827 RecordAndCloseSessionOnError(error, quic_error); | 829 RecordAndCloseSessionOnError(error, quic_error); |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
880 scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue()); | 882 scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue()); |
881 dict->SetString("version", QuicVersionToString(connection()->version())); | 883 dict->SetString("version", QuicVersionToString(connection()->version())); |
882 dict->SetInteger("open_streams", GetNumOpenOutgoingStreams()); | 884 dict->SetInteger("open_streams", GetNumOpenOutgoingStreams()); |
883 scoped_ptr<base::ListValue> stream_list(new base::ListValue()); | 885 scoped_ptr<base::ListValue> stream_list(new base::ListValue()); |
884 for (base::hash_map<QuicStreamId, ReliableQuicStream*>::const_iterator it = | 886 for (base::hash_map<QuicStreamId, ReliableQuicStream*>::const_iterator it = |
885 dynamic_streams().begin(); | 887 dynamic_streams().begin(); |
886 it != dynamic_streams().end(); ++it) { | 888 it != dynamic_streams().end(); ++it) { |
887 stream_list->Append( | 889 stream_list->Append( |
888 new base::StringValue(base::UintToString(it->second->id()))); | 890 new base::StringValue(base::UintToString(it->second->id()))); |
889 } | 891 } |
890 dict->Set("active_streams", stream_list.Pass()); | 892 dict->Set("active_streams", std::move(stream_list)); |
891 | 893 |
892 dict->SetInteger("total_streams", num_total_streams_); | 894 dict->SetInteger("total_streams", num_total_streams_); |
893 dict->SetString("peer_address", peer_address().ToString()); | 895 dict->SetString("peer_address", peer_address().ToString()); |
894 dict->SetString("connection_id", base::Uint64ToString(connection_id())); | 896 dict->SetString("connection_id", base::Uint64ToString(connection_id())); |
895 dict->SetBoolean("connected", connection()->connected()); | 897 dict->SetBoolean("connected", connection()->connected()); |
896 const QuicConnectionStats& stats = connection()->GetStats(); | 898 const QuicConnectionStats& stats = connection()->GetStats(); |
897 dict->SetInteger("packets_sent", stats.packets_sent); | 899 dict->SetInteger("packets_sent", stats.packets_sent); |
898 dict->SetInteger("packets_received", stats.packets_received); | 900 dict->SetInteger("packets_received", stats.packets_received); |
899 dict->SetInteger("packets_lost", stats.packets_lost); | 901 dict->SetInteger("packets_lost", stats.packets_lost); |
900 SSLInfo ssl_info; | 902 SSLInfo ssl_info; |
901 dict->SetBoolean("secure", GetSSLInfo(&ssl_info) && ssl_info.cert.get()); | 903 dict->SetBoolean("secure", GetSSLInfo(&ssl_info) && ssl_info.cert.get()); |
902 | 904 |
903 scoped_ptr<base::ListValue> alias_list(new base::ListValue()); | 905 scoped_ptr<base::ListValue> alias_list(new base::ListValue()); |
904 for (std::set<HostPortPair>::const_iterator it = aliases.begin(); | 906 for (std::set<HostPortPair>::const_iterator it = aliases.begin(); |
905 it != aliases.end(); it++) { | 907 it != aliases.end(); it++) { |
906 alias_list->Append(new base::StringValue(it->ToString())); | 908 alias_list->Append(new base::StringValue(it->ToString())); |
907 } | 909 } |
908 dict->Set("aliases", alias_list.Pass()); | 910 dict->Set("aliases", std::move(alias_list)); |
909 | 911 |
910 return dict.Pass(); | 912 return std::move(dict); |
911 } | 913 } |
912 | 914 |
913 base::WeakPtr<QuicChromiumClientSession> | 915 base::WeakPtr<QuicChromiumClientSession> |
914 QuicChromiumClientSession::GetWeakPtr() { | 916 QuicChromiumClientSession::GetWeakPtr() { |
915 return weak_factory_.GetWeakPtr(); | 917 return weak_factory_.GetWeakPtr(); |
916 } | 918 } |
917 | 919 |
918 void QuicChromiumClientSession::OnReadError( | 920 void QuicChromiumClientSession::OnReadError( |
919 int result, | 921 int result, |
920 const DatagramClientSocket* socket) { | 922 const DatagramClientSocket* socket) { |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
980 return; | 982 return; |
981 | 983 |
982 // TODO(rch): re-enable this code once beta is cut. | 984 // TODO(rch): re-enable this code once beta is cut. |
983 // if (stream_factory_) | 985 // if (stream_factory_) |
984 // stream_factory_->OnSessionConnectTimeout(this); | 986 // stream_factory_->OnSessionConnectTimeout(this); |
985 // CloseAllStreams(ERR_QUIC_HANDSHAKE_FAILED); | 987 // CloseAllStreams(ERR_QUIC_HANDSHAKE_FAILED); |
986 // DCHECK_EQ(0u, GetNumOpenOutgoingStreams()); | 988 // DCHECK_EQ(0u, GetNumOpenOutgoingStreams()); |
987 } | 989 } |
988 | 990 |
989 } // namespace net | 991 } // namespace net |
OLD | NEW |