| Index: trunk/src/net/quic/quic_client_session.cc | 
| =================================================================== | 
| --- trunk/src/net/quic/quic_client_session.cc	(revision 290384) | 
| +++ trunk/src/net/quic/quic_client_session.cc	(working copy) | 
| @@ -13,6 +13,7 @@ | 
| #include "base/values.h" | 
| #include "net/base/io_buffer.h" | 
| #include "net/base/net_errors.h" | 
| +#include "net/http/transport_security_state.h" | 
| #include "net/quic/crypto/proof_verifier_chromium.h" | 
| #include "net/quic/crypto/quic_server_info.h" | 
| #include "net/quic/quic_connection_helper.h" | 
| @@ -20,6 +21,7 @@ | 
| #include "net/quic/quic_default_packet_writer.h" | 
| #include "net/quic/quic_server_id.h" | 
| #include "net/quic/quic_stream_factory.h" | 
| +#include "net/spdy/spdy_session.h" | 
| #include "net/ssl/channel_id_service.h" | 
| #include "net/ssl/ssl_connection_status_flags.h" | 
| #include "net/ssl/ssl_info.h" | 
| @@ -138,6 +140,7 @@ | 
| scoped_ptr<QuicDefaultPacketWriter> writer, | 
| QuicStreamFactory* stream_factory, | 
| QuicCryptoClientStreamFactory* crypto_client_stream_factory, | 
| +    TransportSecurityState* transport_security_state, | 
| scoped_ptr<QuicServerInfo> server_info, | 
| const QuicServerId& server_id, | 
| const QuicConfig& config, | 
| @@ -151,6 +154,7 @@ | 
| socket_(socket.Pass()), | 
| writer_(writer.Pass()), | 
| read_buffer_(new IOBufferWithSize(kMaxPacketSize)), | 
| +      transport_security_state_(transport_security_state), | 
| server_info_(server_info.Pass()), | 
| read_pending_(false), | 
| num_total_streams_(0), | 
| @@ -489,28 +493,8 @@ | 
| return true; | 
| } | 
|  | 
| -  // Disable pooling for secure sessions. | 
| -  // TODO(rch): re-enable this. | 
| -  return false; | 
| -#if 0 | 
| -  bool unused = false; | 
| -  // Pooling is prohibited if the server cert is not valid for the new domain, | 
| -  // and for connections on which client certs were sent. It is also prohibited | 
| -  // when channel ID was sent if the hosts are from different eTLDs+1. | 
| -  if (!ssl_info.cert->VerifyNameMatch(hostname, &unused)) | 
| -    return false; | 
| - | 
| -  if (ssl_info.client_cert_sent) | 
| -    return false; | 
| - | 
| -  if (ssl_info.channel_id_sent && | 
| -      ChannelIDService::GetDomainForHost(hostname) != | 
| -      ChannelIDService::GetDomainForHost(server_host_port_.host())) { | 
| -    return false; | 
| -  } | 
| - | 
| -  return true; | 
| -#endif | 
| +  return SpdySession::CanPool(transport_security_state_, ssl_info, | 
| +                              server_host_port_.host(), hostname); | 
| } | 
|  | 
| QuicDataStream* QuicClientSession::CreateIncomingDataStream( | 
|  |