| Index: net/quic/quic_stream_factory.cc
|
| diff --git a/net/quic/quic_stream_factory.cc b/net/quic/quic_stream_factory.cc
|
| index 27ce25d344127deaca02ada8fef68c64717ea944..51681adfbf9c2e7adee54aa1d6420d7483dc758a 100644
|
| --- a/net/quic/quic_stream_factory.cc
|
| +++ b/net/quic/quic_stream_factory.cc
|
| @@ -327,6 +327,12 @@ int QuicStreamFactory::Create(const HostPortProxyPair& host_port_proxy_pair,
|
| return ERR_IO_PENDING;
|
| }
|
|
|
| + // Create crypto config and start the process of loading QUIC server
|
| + // information from disk cache.
|
| + QuicCryptoClientConfig* crypto_config =
|
| + GetOrCreateCryptoConfig(host_port_proxy_pair);
|
| + DCHECK(crypto_config);
|
| +
|
| scoped_ptr<Job> job(new Job(this, host_resolver_, host_port_proxy_pair,
|
| is_https, cert_verifier, net_log));
|
| int rv = job->Run(base::Bind(&QuicStreamFactory::OnJobComplete,
|
| @@ -627,7 +633,13 @@ QuicCryptoClientConfig* QuicStreamFactory::GetOrCreateCryptoConfig(
|
| } else {
|
| // TODO(rtenneti): if two quic_sessions for the same host_port_proxy_pair
|
| // share the same crypto_config, will it cause issues?
|
| - crypto_config = new QuicCryptoClientConfig(quic_server_info_factory_);
|
| + crypto_config = new QuicCryptoClientConfig();
|
| + if (quic_server_info_factory_) {
|
| + QuicCryptoClientConfig::CachedState* cached =
|
| + crypto_config->Create(host_port_proxy_pair.first.host(),
|
| + quic_server_info_factory_);
|
| + DCHECK(cached);
|
| + }
|
| crypto_config->SetDefaults();
|
| all_crypto_configs_[host_port_proxy_pair] = crypto_config;
|
| PopulateFromCanonicalConfig(host_port_proxy_pair, crypto_config);
|
|
|