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

Side by Side Diff: net/quic/quic_chromium_client_session.cc

Issue 1581283002: Rename chromium-specific QUIC classes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add missing Created 4 years, 11 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
« no previous file with comments | « net/quic/quic_chromium_client_session.h ('k') | net/quic/quic_chromium_client_session_test.cc » ('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) 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> 7 #include <utility>
8 8
9 #include "base/callback_helpers.h" 9 #include "base/callback_helpers.h"
10 #include "base/location.h" 10 #include "base/location.h"
11 #include "base/metrics/histogram_macros.h" 11 #include "base/metrics/histogram_macros.h"
12 #include "base/metrics/sparse_histogram.h" 12 #include "base/metrics/sparse_histogram.h"
13 #include "base/single_thread_task_runner.h" 13 #include "base/single_thread_task_runner.h"
14 #include "base/stl_util.h" 14 #include "base/stl_util.h"
15 #include "base/strings/string_number_conversions.h" 15 #include "base/strings/string_number_conversions.h"
16 #include "base/thread_task_runner_handle.h" 16 #include "base/thread_task_runner_handle.h"
17 #include "base/values.h" 17 #include "base/values.h"
18 #include "net/base/io_buffer.h" 18 #include "net/base/io_buffer.h"
19 #include "net/base/net_errors.h" 19 #include "net/base/net_errors.h"
20 #include "net/base/network_activity_monitor.h" 20 #include "net/base/network_activity_monitor.h"
21 #include "net/http/transport_security_state.h" 21 #include "net/http/transport_security_state.h"
22 #include "net/quic/crypto/proof_verifier_chromium.h" 22 #include "net/quic/crypto/proof_verifier_chromium.h"
23 #include "net/quic/crypto/quic_server_info.h" 23 #include "net/quic/crypto/quic_server_info.h"
24 #include "net/quic/quic_connection_helper.h" 24 #include "net/quic/quic_chromium_connection_helper.h"
25 #include "net/quic/quic_crypto_client_stream_factory.h" 25 #include "net/quic/quic_crypto_client_stream_factory.h"
26 #include "net/quic/quic_server_id.h" 26 #include "net/quic/quic_server_id.h"
27 #include "net/quic/quic_stream_factory.h" 27 #include "net/quic/quic_stream_factory.h"
28 #include "net/spdy/spdy_session.h" 28 #include "net/spdy/spdy_session.h"
29 #include "net/ssl/channel_id_service.h" 29 #include "net/ssl/channel_id_service.h"
30 #include "net/ssl/ssl_connection_status_flags.h" 30 #include "net/ssl/ssl_connection_status_flags.h"
31 #include "net/ssl/ssl_info.h" 31 #include "net/ssl/ssl_info.h"
32 #include "net/udp/datagram_client_socket.h" 32 #include "net/udp/datagram_client_socket.h"
33 33
34 namespace net { 34 namespace net {
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 } // namespace 123 } // namespace
124 124
125 QuicChromiumClientSession::StreamRequest::StreamRequest() : stream_(nullptr) {} 125 QuicChromiumClientSession::StreamRequest::StreamRequest() : stream_(nullptr) {}
126 126
127 QuicChromiumClientSession::StreamRequest::~StreamRequest() { 127 QuicChromiumClientSession::StreamRequest::~StreamRequest() {
128 CancelRequest(); 128 CancelRequest();
129 } 129 }
130 130
131 int QuicChromiumClientSession::StreamRequest::StartRequest( 131 int QuicChromiumClientSession::StreamRequest::StartRequest(
132 const base::WeakPtr<QuicChromiumClientSession>& session, 132 const base::WeakPtr<QuicChromiumClientSession>& session,
133 QuicReliableClientStream** stream, 133 QuicChromiumClientStream** stream,
134 const CompletionCallback& callback) { 134 const CompletionCallback& callback) {
135 session_ = session; 135 session_ = session;
136 stream_ = stream; 136 stream_ = stream;
137 int rv = session_->TryCreateStream(this, stream_); 137 int rv = session_->TryCreateStream(this, stream_);
138 if (rv == ERR_IO_PENDING) { 138 if (rv == ERR_IO_PENDING) {
139 callback_ = callback; 139 callback_ = callback;
140 } 140 }
141 141
142 return rv; 142 return rv;
143 } 143 }
144 144
145 void QuicChromiumClientSession::StreamRequest::CancelRequest() { 145 void QuicChromiumClientSession::StreamRequest::CancelRequest() {
146 if (session_) 146 if (session_)
147 session_->CancelRequest(this); 147 session_->CancelRequest(this);
148 session_.reset(); 148 session_.reset();
149 callback_.Reset(); 149 callback_.Reset();
150 } 150 }
151 151
152 void QuicChromiumClientSession::StreamRequest::OnRequestCompleteSuccess( 152 void QuicChromiumClientSession::StreamRequest::OnRequestCompleteSuccess(
153 QuicReliableClientStream* stream) { 153 QuicChromiumClientStream* stream) {
154 session_.reset(); 154 session_.reset();
155 *stream_ = stream; 155 *stream_ = stream;
156 ResetAndReturn(&callback_).Run(OK); 156 ResetAndReturn(&callback_).Run(OK);
157 } 157 }
158 158
159 void QuicChromiumClientSession::StreamRequest::OnRequestCompleteFailure( 159 void QuicChromiumClientSession::StreamRequest::OnRequestCompleteFailure(
160 int rv) { 160 int rv) {
161 session_.reset(); 161 session_.reset();
162 ResetAndReturn(&callback_).Run(rv); 162 ResetAndReturn(&callback_).Run(rv);
163 } 163 }
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
366 observers_.insert(observer); 366 observers_.insert(observer);
367 } 367 }
368 368
369 void QuicChromiumClientSession::RemoveObserver(Observer* observer) { 369 void QuicChromiumClientSession::RemoveObserver(Observer* observer) {
370 DCHECK(ContainsKey(observers_, observer)); 370 DCHECK(ContainsKey(observers_, observer));
371 observers_.erase(observer); 371 observers_.erase(observer);
372 } 372 }
373 373
374 int QuicChromiumClientSession::TryCreateStream( 374 int QuicChromiumClientSession::TryCreateStream(
375 StreamRequest* request, 375 StreamRequest* request,
376 QuicReliableClientStream** stream) { 376 QuicChromiumClientStream** stream) {
377 if (!crypto_stream_->encryption_established()) { 377 if (!crypto_stream_->encryption_established()) {
378 DLOG(DFATAL) << "Encryption not established."; 378 DLOG(DFATAL) << "Encryption not established.";
379 return ERR_CONNECTION_CLOSED; 379 return ERR_CONNECTION_CLOSED;
380 } 380 }
381 381
382 if (goaway_received()) { 382 if (goaway_received()) {
383 DVLOG(1) << "Going away."; 383 DVLOG(1) << "Going away.";
384 return ERR_CONNECTION_CLOSED; 384 return ERR_CONNECTION_CLOSED;
385 } 385 }
386 386
(...skipping 19 matching lines...) Expand all
406 void QuicChromiumClientSession::CancelRequest(StreamRequest* request) { 406 void QuicChromiumClientSession::CancelRequest(StreamRequest* request) {
407 // Remove |request| from the queue while preserving the order of the 407 // Remove |request| from the queue while preserving the order of the
408 // other elements. 408 // other elements.
409 StreamRequestQueue::iterator it = 409 StreamRequestQueue::iterator it =
410 std::find(stream_requests_.begin(), stream_requests_.end(), request); 410 std::find(stream_requests_.begin(), stream_requests_.end(), request);
411 if (it != stream_requests_.end()) { 411 if (it != stream_requests_.end()) {
412 it = stream_requests_.erase(it); 412 it = stream_requests_.erase(it);
413 } 413 }
414 } 414 }
415 415
416 QuicReliableClientStream* 416 QuicChromiumClientStream*
417 QuicChromiumClientSession::CreateOutgoingDynamicStream(SpdyPriority priority) { 417 QuicChromiumClientSession::CreateOutgoingDynamicStream(SpdyPriority priority) {
418 if (!crypto_stream_->encryption_established()) { 418 if (!crypto_stream_->encryption_established()) {
419 DVLOG(1) << "Encryption not active so no outgoing stream created."; 419 DVLOG(1) << "Encryption not active so no outgoing stream created.";
420 return nullptr; 420 return nullptr;
421 } 421 }
422 if (GetNumOpenOutgoingStreams() >= get_max_open_streams()) { 422 if (GetNumOpenOutgoingStreams() >= get_max_open_streams()) {
423 DVLOG(1) << "Failed to create a new outgoing stream. " 423 DVLOG(1) << "Failed to create a new outgoing stream. "
424 << "Already " << GetNumOpenOutgoingStreams() << " open."; 424 << "Already " << GetNumOpenOutgoingStreams() << " open.";
425 return nullptr; 425 return nullptr;
426 } 426 }
427 if (goaway_received()) { 427 if (goaway_received()) {
428 DVLOG(1) << "Failed to create a new outgoing stream. " 428 DVLOG(1) << "Failed to create a new outgoing stream. "
429 << "Already received goaway."; 429 << "Already received goaway.";
430 return nullptr; 430 return nullptr;
431 } 431 }
432 if (going_away_) { 432 if (going_away_) {
433 RecordUnexpectedOpenStreams(CREATE_OUTGOING_RELIABLE_STREAM); 433 RecordUnexpectedOpenStreams(CREATE_OUTGOING_RELIABLE_STREAM);
434 return nullptr; 434 return nullptr;
435 } 435 }
436 return CreateOutgoingReliableStreamImpl(); 436 return CreateOutgoingReliableStreamImpl();
437 } 437 }
438 438
439 QuicReliableClientStream* 439 QuicChromiumClientStream*
440 QuicChromiumClientSession::CreateOutgoingReliableStreamImpl() { 440 QuicChromiumClientSession::CreateOutgoingReliableStreamImpl() {
441 DCHECK(connection()->connected()); 441 DCHECK(connection()->connected());
442 QuicReliableClientStream* stream = 442 QuicChromiumClientStream* stream =
443 new QuicReliableClientStream(GetNextOutgoingStreamId(), this, net_log_); 443 new QuicChromiumClientStream(GetNextOutgoingStreamId(), this, net_log_);
444 ActivateStream(stream); 444 ActivateStream(stream);
445 ++num_total_streams_; 445 ++num_total_streams_;
446 UMA_HISTOGRAM_COUNTS("Net.QuicSession.NumOpenStreams", 446 UMA_HISTOGRAM_COUNTS("Net.QuicSession.NumOpenStreams",
447 GetNumOpenOutgoingStreams()); 447 GetNumOpenOutgoingStreams());
448 // The previous histogram puts 100 in a bucket betweeen 86-113 which does 448 // The previous histogram puts 100 in a bucket betweeen 86-113 which does
449 // not shed light on if chrome ever things it has more than 100 streams open. 449 // not shed light on if chrome ever things it has more than 100 streams open.
450 UMA_HISTOGRAM_BOOLEAN("Net.QuicSession.TooManyOpenStreams", 450 UMA_HISTOGRAM_BOOLEAN("Net.QuicSession.TooManyOpenStreams",
451 GetNumOpenOutgoingStreams() > 100); 451 GetNumOpenOutgoingStreams() > 100);
452 return stream; 452 return stream;
453 } 453 }
(...skipping 408 matching lines...) Expand 10 before | Expand all | Expand 10 after
862 862
863 if (connection()->connected()) 863 if (connection()->connected())
864 connection()->CloseConnection(quic_error, false); 864 connection()->CloseConnection(quic_error, false);
865 DCHECK(!connection()->connected()); 865 DCHECK(!connection()->connected());
866 } 866 }
867 867
868 void QuicChromiumClientSession::CloseAllStreams(int net_error) { 868 void QuicChromiumClientSession::CloseAllStreams(int net_error) {
869 while (!dynamic_streams().empty()) { 869 while (!dynamic_streams().empty()) {
870 ReliableQuicStream* stream = dynamic_streams().begin()->second; 870 ReliableQuicStream* stream = dynamic_streams().begin()->second;
871 QuicStreamId id = stream->id(); 871 QuicStreamId id = stream->id();
872 static_cast<QuicReliableClientStream*>(stream)->OnError(net_error); 872 static_cast<QuicChromiumClientStream*>(stream)->OnError(net_error);
873 CloseStream(id); 873 CloseStream(id);
874 } 874 }
875 } 875 }
876 876
877 void QuicChromiumClientSession::CloseAllObservers(int net_error) { 877 void QuicChromiumClientSession::CloseAllObservers(int net_error) {
878 while (!observers_.empty()) { 878 while (!observers_.empty()) {
879 Observer* observer = *observers_.begin(); 879 Observer* observer = *observers_.begin();
880 observers_.erase(observer); 880 observers_.erase(observer);
881 observer->OnSessionClosed(net_error); 881 observer->OnSessionClosed(net_error);
882 } 882 }
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
1017 } 1017 }
1018 1018
1019 const DatagramClientSocket* QuicChromiumClientSession::GetDefaultSocket() 1019 const DatagramClientSocket* QuicChromiumClientSession::GetDefaultSocket()
1020 const { 1020 const {
1021 DCHECK(sockets_.back().get() != nullptr); 1021 DCHECK(sockets_.back().get() != nullptr);
1022 // The most recently added socket is the currently active one. 1022 // The most recently added socket is the currently active one.
1023 return sockets_.back().get(); 1023 return sockets_.back().get();
1024 } 1024 }
1025 1025
1026 } // namespace net 1026 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_chromium_client_session.h ('k') | net/quic/quic_chromium_client_session_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698