From 2b0703754b5fc68539fee3c70f1a4dbe9edc763e Mon Sep 17 00:00:00 2001 From: "rtenneti@chromium.org" Date: Wed, 5 Feb 2014 07:38:36 +0000 Subject: QUIC - Start the process for reading crypto config data from disk cache as early as possible (even before host resokution has started). Create QuicServerInfo in QuicStreamFactory and pass the ownership to QuicCryptoClientConfig::CachedState. This is a parital release. Will be hooking up persisting and reading of the data (including waiting for the disk read to finish) in the next release. R=wtc@chromium.org Review URL: https://codereview.chromium.org/149413008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@248905 0039d316-1c4b-4281-b951-d872f2087c98 --- net/quic/crypto/quic_crypto_client_config.cc | 48 ++++++++++++++-------------- 1 file changed, 24 insertions(+), 24 deletions(-) (limited to 'net/quic/crypto/quic_crypto_client_config.cc') diff --git a/net/quic/crypto/quic_crypto_client_config.cc b/net/quic/crypto/quic_crypto_client_config.cc index 84dfee0..8763910 100644 --- a/net/quic/crypto/quic_crypto_client_config.cc +++ b/net/quic/crypto/quic_crypto_client_config.cc @@ -29,13 +29,7 @@ using std::vector; namespace net { -QuicCryptoClientConfig::QuicCryptoClientConfig() - : quic_server_info_factory_(NULL) { -} - -QuicCryptoClientConfig::QuicCryptoClientConfig( - QuicServerInfoFactory* quic_server_info_factory) - : quic_server_info_factory_(quic_server_info_factory) { +QuicCryptoClientConfig::QuicCryptoClientConfig() { } QuicCryptoClientConfig::~QuicCryptoClientConfig() { @@ -46,17 +40,13 @@ QuicCryptoClientConfig::CachedState::CachedState() : server_config_valid_(false), generation_counter_(0) {} -QuicCryptoClientConfig::CachedState::~CachedState() {} - -void QuicCryptoClientConfig::CachedState::LoadFromDiskCache( - QuicServerInfoFactory* quic_server_info_factory, - const string& server_hostname) { - DCHECK(quic_server_info_factory); - quic_server_info_.reset( - quic_server_info_factory->GetForHost(server_hostname)); +QuicCryptoClientConfig::CachedState::CachedState( + scoped_ptr quic_server_info) + : server_config_valid_(false), + generation_counter_(0), + quic_server_info_(quic_server_info.Pass()) {} - // TODO(rtenneti): Need to flesh out reading data from disk cache. -} +QuicCryptoClientConfig::CachedState::~CachedState() {} bool QuicCryptoClientConfig::CachedState::IsComplete(QuicWallTime now) const { if (server_config_.empty() || !server_config_valid_) { @@ -239,6 +229,22 @@ void QuicCryptoClientConfig::SetDefaults() { aead[0] = kAESG; } +QuicCryptoClientConfig::CachedState* QuicCryptoClientConfig::Create( + const string& server_hostname, + QuicServerInfoFactory* quic_server_info_factory) { + DCHECK(cached_states_.find(server_hostname) == cached_states_.end()); + scoped_ptr quic_server_info; + if (quic_server_info_factory) { + quic_server_info.reset( + quic_server_info_factory->GetForHost(server_hostname)); + quic_server_info->Start(); + } + + CachedState* cached = new CachedState(quic_server_info.Pass()); + cached_states_.insert(make_pair(server_hostname, cached)); + return cached; +} + QuicCryptoClientConfig::CachedState* QuicCryptoClientConfig::LookupOrCreate( const string& server_hostname) { map::const_iterator it = @@ -246,13 +252,7 @@ QuicCryptoClientConfig::CachedState* QuicCryptoClientConfig::LookupOrCreate( if (it != cached_states_.end()) { return it->second; } - - CachedState* cached = new CachedState; - if (quic_server_info_factory_) { - cached->LoadFromDiskCache(quic_server_info_factory_, server_hostname); - } - cached_states_.insert(make_pair(server_hostname, cached)); - return cached; + return Create(server_hostname, NULL); } void QuicCryptoClientConfig::FillInchoateClientHello( -- cgit v1.1