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

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

Issue 1572753003: QUIC - Allow cronet apps to specify how many server configs are to be (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix comments in Patch set 4 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_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 #include <utility> 9 #include <utility>
10 10
(...skipping 568 matching lines...) Expand 10 before | Expand all | Expand 10 after
579 bool enable_non_blocking_io, 579 bool enable_non_blocking_io,
580 bool disable_disk_cache, 580 bool disable_disk_cache,
581 bool prefer_aes, 581 bool prefer_aes,
582 int max_number_of_lossy_connections, 582 int max_number_of_lossy_connections,
583 float packet_loss_threshold, 583 float packet_loss_threshold,
584 int max_disabled_reasons, 584 int max_disabled_reasons,
585 int threshold_public_resets_post_handshake, 585 int threshold_public_resets_post_handshake,
586 int threshold_timeouts_with_open_streams, 586 int threshold_timeouts_with_open_streams,
587 int socket_receive_buffer_size, 587 int socket_receive_buffer_size,
588 bool delay_tcp_race, 588 bool delay_tcp_race,
589 bool store_server_configs_in_properties, 589 int max_server_configs_stored_in_properties,
590 bool close_sessions_on_ip_change, 590 bool close_sessions_on_ip_change,
591 int idle_connection_timeout_seconds, 591 int idle_connection_timeout_seconds,
592 bool migrate_sessions_on_network_change, 592 bool migrate_sessions_on_network_change,
593 const QuicTagVector& connection_options) 593 const QuicTagVector& connection_options)
594 : require_confirmation_(true), 594 : require_confirmation_(true),
595 host_resolver_(host_resolver), 595 host_resolver_(host_resolver),
596 client_socket_factory_(client_socket_factory), 596 client_socket_factory_(client_socket_factory),
597 http_server_properties_(http_server_properties), 597 http_server_properties_(http_server_properties),
598 transport_security_state_(transport_security_state), 598 transport_security_state_(transport_security_state),
599 cert_transparency_verifier_(cert_transparency_verifier), 599 cert_transparency_verifier_(cert_transparency_verifier),
(...skipping 28 matching lines...) Expand all
628 max_timeouts_with_open_streams_(0), 628 max_timeouts_with_open_streams_(0),
629 threshold_timeouts_with_open_streams_( 629 threshold_timeouts_with_open_streams_(
630 threshold_timeouts_with_open_streams), 630 threshold_timeouts_with_open_streams),
631 threshold_public_resets_post_handshake_( 631 threshold_public_resets_post_handshake_(
632 threshold_public_resets_post_handshake), 632 threshold_public_resets_post_handshake),
633 socket_receive_buffer_size_(socket_receive_buffer_size), 633 socket_receive_buffer_size_(socket_receive_buffer_size),
634 delay_tcp_race_(delay_tcp_race), 634 delay_tcp_race_(delay_tcp_race),
635 yield_after_packets_(kQuicYieldAfterPacketsRead), 635 yield_after_packets_(kQuicYieldAfterPacketsRead),
636 yield_after_duration_(QuicTime::Delta::FromMilliseconds( 636 yield_after_duration_(QuicTime::Delta::FromMilliseconds(
637 kQuicYieldAfterDurationMilliseconds)), 637 kQuicYieldAfterDurationMilliseconds)),
638 store_server_configs_in_properties_(store_server_configs_in_properties),
639 close_sessions_on_ip_change_(close_sessions_on_ip_change), 638 close_sessions_on_ip_change_(close_sessions_on_ip_change),
640 migrate_sessions_on_network_change_( 639 migrate_sessions_on_network_change_(
641 migrate_sessions_on_network_change && 640 migrate_sessions_on_network_change &&
642 NetworkChangeNotifier::AreNetworkHandlesSupported()), 641 NetworkChangeNotifier::AreNetworkHandlesSupported()),
643 port_seed_(random_generator_->RandUint64()), 642 port_seed_(random_generator_->RandUint64()),
644 check_persisted_supports_quic_(true), 643 check_persisted_supports_quic_(true),
645 has_initialized_data_(false), 644 has_initialized_data_(false),
646 task_runner_(nullptr), 645 task_runner_(nullptr),
647 weak_factory_(this) { 646 weak_factory_(this) {
648 DCHECK(transport_security_state_); 647 DCHECK(transport_security_state_);
(...skipping 17 matching lines...) Expand all
666 #endif 665 #endif
667 UMA_HISTOGRAM_BOOLEAN("Net.QuicSession.PreferAesGcm", 666 UMA_HISTOGRAM_BOOLEAN("Net.QuicSession.PreferAesGcm",
668 has_aes_hardware_support); 667 has_aes_hardware_support);
669 if (has_aes_hardware_support || prefer_aes_) 668 if (has_aes_hardware_support || prefer_aes_)
670 crypto_config_.PreferAesGcm(); 669 crypto_config_.PreferAesGcm();
671 if (!IsEcdsaSupported()) 670 if (!IsEcdsaSupported())
672 crypto_config_.DisableEcdsa(); 671 crypto_config_.DisableEcdsa();
673 // When disk cache is used to store the server configs, HttpCache code calls 672 // When disk cache is used to store the server configs, HttpCache code calls
674 // |set_quic_server_info_factory| if |quic_server_info_factory_| wasn't 673 // |set_quic_server_info_factory| if |quic_server_info_factory_| wasn't
675 // created. 674 // created.
676 if (store_server_configs_in_properties_) { 675 if (max_server_configs_stored_in_properties > 0) {
677 quic_server_info_factory_.reset( 676 quic_server_info_factory_.reset(
678 new PropertiesBasedQuicServerInfoFactory(http_server_properties_)); 677 new PropertiesBasedQuicServerInfoFactory(http_server_properties_));
679 } 678 }
680 679
681 DCHECK( 680 DCHECK(
682 !(close_sessions_on_ip_change_ && migrate_sessions_on_network_change_)); 681 !(close_sessions_on_ip_change_ && migrate_sessions_on_network_change_));
683 if (migrate_sessions_on_network_change_) { 682 if (migrate_sessions_on_network_change_) {
684 NetworkChangeNotifier::AddNetworkObserver(this); 683 NetworkChangeNotifier::AddNetworkObserver(this);
685 } else if (close_sessions_on_ip_change_) { 684 } else if (close_sessions_on_ip_change_) {
686 NetworkChangeNotifier::AddIPAddressObserver(this); 685 NetworkChangeNotifier::AddIPAddressObserver(this);
(...skipping 872 matching lines...) Expand 10 before | Expand all | Expand 10 after
1559 key_value : http_server_properties_->alternative_service_map()) { 1558 key_value : http_server_properties_->alternative_service_map()) {
1560 for (const AlternativeServiceInfo& alternative_service_info : 1559 for (const AlternativeServiceInfo& alternative_service_info :
1561 key_value.second) { 1560 key_value.second) {
1562 if (alternative_service_info.alternative_service.protocol == QUIC) { 1561 if (alternative_service_info.alternative_service.protocol == QUIC) {
1563 quic_supported_servers_at_startup_.insert(key_value.first); 1562 quic_supported_servers_at_startup_.insert(key_value.first);
1564 break; 1563 break;
1565 } 1564 }
1566 } 1565 }
1567 } 1566 }
1568 1567
1569 if (!store_server_configs_in_properties_) 1568 if (http_server_properties_->max_server_configs_stored_in_properties() == 0)
1570 return; 1569 return;
1571 // Create a temporary QuicServerInfo object to deserialize and to populate the 1570 // Create a temporary QuicServerInfo object to deserialize and to populate the
1572 // in-memory crypto server config cache. 1571 // in-memory crypto server config cache.
1573 scoped_ptr<QuicServerInfo> server_info; 1572 scoped_ptr<QuicServerInfo> server_info;
1574 CompletionCallback callback; 1573 CompletionCallback callback;
1575 for (const auto& key_value : 1574 for (const auto& key_value :
1576 http_server_properties_->quic_server_info_map()) { 1575 http_server_properties_->quic_server_info_map()) {
1577 const QuicServerId& server_id = key_value.first; 1576 const QuicServerId& server_id = key_value.first;
1578 server_info.reset(quic_server_info_factory_->GetForServer(server_id)); 1577 server_info.reset(quic_server_info_factory_->GetForServer(server_id));
1579 if (server_info->WaitForDataReady(callback) == OK) { 1578 if (server_info->WaitForDataReady(callback) == OK) {
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1619 // Since the session was active, there's no longer an 1618 // Since the session was active, there's no longer an
1620 // HttpStreamFactoryImpl::Job running which can mark it broken, unless the TCP 1619 // HttpStreamFactoryImpl::Job running which can mark it broken, unless the TCP
1621 // job also fails. So to avoid not using QUIC when we otherwise could, we mark 1620 // job also fails. So to avoid not using QUIC when we otherwise could, we mark
1622 // it as recently broken, which means that 0-RTT will be disabled but we'll 1621 // it as recently broken, which means that 0-RTT will be disabled but we'll
1623 // still race. 1622 // still race.
1624 http_server_properties_->MarkAlternativeServiceRecentlyBroken( 1623 http_server_properties_->MarkAlternativeServiceRecentlyBroken(
1625 alternative_service); 1624 alternative_service);
1626 } 1625 }
1627 1626
1628 } // namespace net 1627 } // 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