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

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

Issue 1165283004: Add a new prefer_aes finch options for QUIC. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years, 6 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_stream_factory.h ('k') | net/quic/quic_stream_factory_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_stream_factory.h" 5 #include "net/quic/quic_stream_factory.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <set> 8 #include <set>
9 9
10 #include "base/cpu.h" 10 #include "base/cpu.h"
(...skipping 535 matching lines...) Expand 10 before | Expand all | Expand 10 after
546 size_t max_packet_length, 546 size_t max_packet_length,
547 const std::string& user_agent_id, 547 const std::string& user_agent_id,
548 const QuicVersionVector& supported_versions, 548 const QuicVersionVector& supported_versions,
549 bool enable_port_selection, 549 bool enable_port_selection,
550 bool always_require_handshake_confirmation, 550 bool always_require_handshake_confirmation,
551 bool disable_connection_pooling, 551 bool disable_connection_pooling,
552 float load_server_info_timeout_srtt_multiplier, 552 float load_server_info_timeout_srtt_multiplier,
553 bool enable_connection_racing, 553 bool enable_connection_racing,
554 bool enable_non_blocking_io, 554 bool enable_non_blocking_io,
555 bool disable_disk_cache, 555 bool disable_disk_cache,
556 bool prefer_aes,
556 int max_number_of_lossy_connections, 557 int max_number_of_lossy_connections,
557 float packet_loss_threshold, 558 float packet_loss_threshold,
558 int socket_receive_buffer_size, 559 int socket_receive_buffer_size,
559 const QuicTagVector& connection_options) 560 const QuicTagVector& connection_options)
560 : require_confirmation_(true), 561 : require_confirmation_(true),
561 host_resolver_(host_resolver), 562 host_resolver_(host_resolver),
562 client_socket_factory_(client_socket_factory), 563 client_socket_factory_(client_socket_factory),
563 http_server_properties_(http_server_properties), 564 http_server_properties_(http_server_properties),
564 transport_security_state_(transport_security_state), 565 transport_security_state_(transport_security_state),
565 quic_server_info_factory_(nullptr), 566 quic_server_info_factory_(nullptr),
566 quic_crypto_client_stream_factory_(quic_crypto_client_stream_factory), 567 quic_crypto_client_stream_factory_(quic_crypto_client_stream_factory),
567 random_generator_(random_generator), 568 random_generator_(random_generator),
568 clock_(clock), 569 clock_(clock),
569 max_packet_length_(max_packet_length), 570 max_packet_length_(max_packet_length),
570 config_(InitializeQuicConfig(connection_options)), 571 config_(InitializeQuicConfig(connection_options)),
571 supported_versions_(supported_versions), 572 supported_versions_(supported_versions),
572 enable_port_selection_(enable_port_selection), 573 enable_port_selection_(enable_port_selection),
573 always_require_handshake_confirmation_( 574 always_require_handshake_confirmation_(
574 always_require_handshake_confirmation), 575 always_require_handshake_confirmation),
575 disable_connection_pooling_(disable_connection_pooling), 576 disable_connection_pooling_(disable_connection_pooling),
576 load_server_info_timeout_srtt_multiplier_( 577 load_server_info_timeout_srtt_multiplier_(
577 load_server_info_timeout_srtt_multiplier), 578 load_server_info_timeout_srtt_multiplier),
578 enable_connection_racing_(enable_connection_racing), 579 enable_connection_racing_(enable_connection_racing),
579 enable_non_blocking_io_(enable_non_blocking_io), 580 enable_non_blocking_io_(enable_non_blocking_io),
580 disable_disk_cache_(disable_disk_cache), 581 disable_disk_cache_(disable_disk_cache),
582 prefer_aes_(prefer_aes),
581 max_number_of_lossy_connections_(max_number_of_lossy_connections), 583 max_number_of_lossy_connections_(max_number_of_lossy_connections),
582 packet_loss_threshold_(packet_loss_threshold), 584 packet_loss_threshold_(packet_loss_threshold),
583 socket_receive_buffer_size_(socket_receive_buffer_size), 585 socket_receive_buffer_size_(socket_receive_buffer_size),
584 port_seed_(random_generator_->RandUint64()), 586 port_seed_(random_generator_->RandUint64()),
585 check_persisted_supports_quic_(true), 587 check_persisted_supports_quic_(true),
586 task_runner_(nullptr), 588 task_runner_(nullptr),
587 weak_factory_(this) { 589 weak_factory_(this) {
588 DCHECK(transport_security_state_); 590 DCHECK(transport_security_state_);
589 crypto_config_.set_user_agent_id(user_agent_id); 591 crypto_config_.set_user_agent_id(user_agent_id);
590 crypto_config_.AddCanonicalSuffix(".c.youtube.com"); 592 crypto_config_.AddCanonicalSuffix(".c.youtube.com");
591 crypto_config_.AddCanonicalSuffix(".googlevideo.com"); 593 crypto_config_.AddCanonicalSuffix(".googlevideo.com");
592 crypto_config_.AddCanonicalSuffix(".googleusercontent.com"); 594 crypto_config_.AddCanonicalSuffix(".googleusercontent.com");
593 crypto_config_.SetProofVerifier( 595 crypto_config_.SetProofVerifier(
594 new ProofVerifierChromium(cert_verifier, transport_security_state)); 596 new ProofVerifierChromium(cert_verifier, transport_security_state));
595 // TODO(rtenneti): http://crbug.com/487355. Temporary fix for b/20760730 until 597 // TODO(rtenneti): http://crbug.com/487355. Temporary fix for b/20760730 until
596 // channel_id_service is supported in cronet. 598 // channel_id_service is supported in cronet.
597 if (channel_id_service) { 599 if (channel_id_service) {
598 crypto_config_.SetChannelIDSource( 600 crypto_config_.SetChannelIDSource(
599 new ChannelIDSourceChromium(channel_id_service)); 601 new ChannelIDSourceChromium(channel_id_service));
600 } 602 }
601 base::CPU cpu; 603 base::CPU cpu;
602 bool has_aes_hardware_support = cpu.has_aesni() && cpu.has_avx(); 604 bool has_aes_hardware_support = cpu.has_aesni() && cpu.has_avx();
603 UMA_HISTOGRAM_BOOLEAN("Net.QuicSession.PreferAesGcm", 605 UMA_HISTOGRAM_BOOLEAN("Net.QuicSession.PreferAesGcm",
604 has_aes_hardware_support); 606 has_aes_hardware_support);
605 if (has_aes_hardware_support) 607 if (has_aes_hardware_support || prefer_aes_)
606 crypto_config_.PreferAesGcm(); 608 crypto_config_.PreferAesGcm();
607 if (!IsEcdsaSupported()) 609 if (!IsEcdsaSupported())
608 crypto_config_.DisableEcdsa(); 610 crypto_config_.DisableEcdsa();
609 } 611 }
610 612
611 QuicStreamFactory::~QuicStreamFactory() { 613 QuicStreamFactory::~QuicStreamFactory() {
612 CloseAllSessions(ERR_ABORTED); 614 CloseAllSessions(ERR_ABORTED);
613 while (!all_sessions_.empty()) { 615 while (!all_sessions_.empty()) {
614 delete all_sessions_.begin()->first; 616 delete all_sessions_.begin()->first;
615 all_sessions_.erase(all_sessions_.begin()); 617 all_sessions_.erase(all_sessions_.begin());
(...skipping 638 matching lines...) Expand 10 before | Expand all | Expand 10 after
1254 // Since the session was active, there's no longer an 1256 // Since the session was active, there's no longer an
1255 // HttpStreamFactoryImpl::Job running which can mark it broken, unless the TCP 1257 // HttpStreamFactoryImpl::Job running which can mark it broken, unless the TCP
1256 // job also fails. So to avoid not using QUIC when we otherwise could, we mark 1258 // job also fails. So to avoid not using QUIC when we otherwise could, we mark
1257 // it as recently broken, which means that 0-RTT will be disabled but we'll 1259 // it as recently broken, which means that 0-RTT will be disabled but we'll
1258 // still race. 1260 // still race.
1259 http_server_properties_->MarkAlternativeServiceRecentlyBroken( 1261 http_server_properties_->MarkAlternativeServiceRecentlyBroken(
1260 alternative_service); 1262 alternative_service);
1261 } 1263 }
1262 1264
1263 } // namespace net 1265 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_stream_factory.h ('k') | net/quic/quic_stream_factory_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698