| Index: net/http/http_network_session.h
 | 
| diff --git a/net/http/http_network_session.h b/net/http/http_network_session.h
 | 
| index 04bd6ec241cf0ab0f0709188f6f361ee21a2d65a..8184e99f5b63e263f4baa203cf5ade60fd74526a 100644
 | 
| --- a/net/http/http_network_session.h
 | 
| +++ b/net/http/http_network_session.h
 | 
| @@ -1,222 +1,253 @@
 | 
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
 | 
| -// Use of this source code is governed by a BSD-style license that can be
 | 
| -// found in the LICENSE file.
 | 
| -
 | 
| -#ifndef NET_HTTP_HTTP_NETWORK_SESSION_H_
 | 
| -#define NET_HTTP_HTTP_NETWORK_SESSION_H_
 | 
| -
 | 
| -#include <set>
 | 
| -#include <string>
 | 
| -
 | 
| -#include "base/basictypes.h"
 | 
| -#include "base/memory/ref_counted.h"
 | 
| -#include "base/memory/weak_ptr.h"
 | 
| -#include "base/threading/non_thread_safe.h"
 | 
| -#include "net/base/host_port_pair.h"
 | 
| -#include "net/base/net_export.h"
 | 
| -#include "net/dns/host_resolver.h"
 | 
| -#include "net/http/http_auth_cache.h"
 | 
| -#include "net/http/http_stream_factory.h"
 | 
| -#include "net/quic/quic_stream_factory.h"
 | 
| -#include "net/spdy/spdy_session_pool.h"
 | 
| -#include "net/ssl/ssl_client_auth_cache.h"
 | 
| -
 | 
| -namespace base {
 | 
| -class Value;
 | 
| -}
 | 
| -
 | 
| -namespace net {
 | 
| -
 | 
| -class CertVerifier;
 | 
| -class ClientSocketFactory;
 | 
| -class ClientSocketPoolManager;
 | 
| -class HostResolver;
 | 
| -class HpackHuffmanAggregator;
 | 
| -class HttpAuthHandlerFactory;
 | 
| -class HttpNetworkSessionPeer;
 | 
| -class HttpProxyClientSocketPool;
 | 
| -class HttpResponseBodyDrainer;
 | 
| -class HttpServerProperties;
 | 
| -class NetLog;
 | 
| -class NetworkDelegate;
 | 
| -class ServerBoundCertService;
 | 
| -class ProxyService;
 | 
| -class QuicClock;
 | 
| -class QuicCryptoClientStreamFactory;
 | 
| -class QuicServerInfoFactory;
 | 
| -class SOCKSClientSocketPool;
 | 
| -class SSLClientSocketPool;
 | 
| -class SSLConfigService;
 | 
| -class TransportClientSocketPool;
 | 
| -class TransportSecurityState;
 | 
| -
 | 
| -// This class holds session objects used by HttpNetworkTransaction objects.
 | 
| -class NET_EXPORT HttpNetworkSession
 | 
| -    : public base::RefCounted<HttpNetworkSession>,
 | 
| -      NON_EXPORTED_BASE(public base::NonThreadSafe) {
 | 
| - public:
 | 
| -  struct NET_EXPORT Params {
 | 
| -    Params();
 | 
| -    ~Params();
 | 
| -
 | 
| -    ClientSocketFactory* client_socket_factory;
 | 
| -    HostResolver* host_resolver;
 | 
| -    CertVerifier* cert_verifier;
 | 
| -    ServerBoundCertService* server_bound_cert_service;
 | 
| -    TransportSecurityState* transport_security_state;
 | 
| -    CTVerifier* cert_transparency_verifier;
 | 
| -    ProxyService* proxy_service;
 | 
| -    std::string ssl_session_cache_shard;
 | 
| -    SSLConfigService* ssl_config_service;
 | 
| -    HttpAuthHandlerFactory* http_auth_handler_factory;
 | 
| -    NetworkDelegate* network_delegate;
 | 
| -    base::WeakPtr<HttpServerProperties> http_server_properties;
 | 
| -    NetLog* net_log;
 | 
| -    HostMappingRules* host_mapping_rules;
 | 
| -    bool force_http_pipelining;
 | 
| -    bool ignore_certificate_errors;
 | 
| -    bool http_pipelining_enabled;
 | 
| -    uint16 testing_fixed_http_port;
 | 
| -    uint16 testing_fixed_https_port;
 | 
| -    bool force_spdy_single_domain;
 | 
| -    bool enable_spdy_compression;
 | 
| -    bool enable_spdy_ping_based_connection_checking;
 | 
| -    NextProto spdy_default_protocol;
 | 
| -    size_t spdy_stream_initial_recv_window_size;
 | 
| -    size_t spdy_initial_max_concurrent_streams;
 | 
| -    size_t spdy_max_concurrent_streams_limit;
 | 
| -    SpdySessionPool::TimeFunc time_func;
 | 
| -    std::string trusted_spdy_proxy;
 | 
| -    bool enable_quic;
 | 
| -    bool enable_quic_https;
 | 
| -    bool enable_quic_port_selection;
 | 
| -    bool enable_quic_pacing;
 | 
| -    bool enable_quic_time_based_loss_detection;
 | 
| -    bool enable_quic_persist_server_info;
 | 
| -    HostPortPair origin_to_force_quic_on;
 | 
| -    QuicClock* quic_clock;  // Will be owned by QuicStreamFactory.
 | 
| -    QuicRandom* quic_random;
 | 
| -    size_t quic_max_packet_length;
 | 
| -    bool enable_user_alternate_protocol_ports;
 | 
| -    QuicCryptoClientStreamFactory* quic_crypto_client_stream_factory;
 | 
| -    QuicVersionVector quic_supported_versions;
 | 
| -  };
 | 
| -
 | 
| -  enum SocketPoolType {
 | 
| -    NORMAL_SOCKET_POOL,
 | 
| -    WEBSOCKET_SOCKET_POOL,
 | 
| -    NUM_SOCKET_POOL_TYPES
 | 
| -  };
 | 
| -
 | 
| -  explicit HttpNetworkSession(const Params& params);
 | 
| -
 | 
| -  HttpAuthCache* http_auth_cache() { return &http_auth_cache_; }
 | 
| -  SSLClientAuthCache* ssl_client_auth_cache() {
 | 
| -    return &ssl_client_auth_cache_;
 | 
| -  }
 | 
| -
 | 
| -  void AddResponseDrainer(HttpResponseBodyDrainer* drainer);
 | 
| -
 | 
| -  void RemoveResponseDrainer(HttpResponseBodyDrainer* drainer);
 | 
| -
 | 
| -  TransportClientSocketPool* GetTransportSocketPool(SocketPoolType pool_type);
 | 
| -  SSLClientSocketPool* GetSSLSocketPool(SocketPoolType pool_type);
 | 
| -  SOCKSClientSocketPool* GetSocketPoolForSOCKSProxy(
 | 
| -      SocketPoolType pool_type,
 | 
| -      const HostPortPair& socks_proxy);
 | 
| -  HttpProxyClientSocketPool* GetSocketPoolForHTTPProxy(
 | 
| -      SocketPoolType pool_type,
 | 
| -      const HostPortPair& http_proxy);
 | 
| -  SSLClientSocketPool* GetSocketPoolForSSLWithProxy(
 | 
| -      SocketPoolType pool_type,
 | 
| -      const HostPortPair& proxy_server);
 | 
| -
 | 
| -  CertVerifier* cert_verifier() { return cert_verifier_; }
 | 
| -  ProxyService* proxy_service() { return proxy_service_; }
 | 
| -  SSLConfigService* ssl_config_service() { return ssl_config_service_.get(); }
 | 
| -  SpdySessionPool* spdy_session_pool() { return &spdy_session_pool_; }
 | 
| -  QuicStreamFactory* quic_stream_factory() { return &quic_stream_factory_; }
 | 
| -  HttpAuthHandlerFactory* http_auth_handler_factory() {
 | 
| -    return http_auth_handler_factory_;
 | 
| -  }
 | 
| -  NetworkDelegate* network_delegate() {
 | 
| -    return network_delegate_;
 | 
| -  }
 | 
| -  base::WeakPtr<HttpServerProperties> http_server_properties() {
 | 
| -    return http_server_properties_;
 | 
| -  }
 | 
| -  HttpStreamFactory* http_stream_factory() {
 | 
| -    return http_stream_factory_.get();
 | 
| -  }
 | 
| -  HttpStreamFactory* http_stream_factory_for_websocket() {
 | 
| -    return http_stream_factory_for_websocket_.get();
 | 
| -  }
 | 
| -  NetLog* net_log() {
 | 
| -    return net_log_;
 | 
| -  }
 | 
| -  HpackHuffmanAggregator* huffman_aggregator() {
 | 
| -    return huffman_aggregator_.get();
 | 
| -  }
 | 
| -
 | 
| -  // Creates a Value summary of the state of the socket pools. The caller is
 | 
| -  // responsible for deleting the returned value.
 | 
| -  base::Value* SocketPoolInfoToValue() const;
 | 
| -
 | 
| -  // Creates a Value summary of the state of the SPDY sessions. The caller is
 | 
| -  // responsible for deleting the returned value.
 | 
| -  base::Value* SpdySessionPoolInfoToValue() const;
 | 
| -
 | 
| -  // Creates a Value summary of the state of the QUIC sessions and
 | 
| -  // configuration. The caller is responsible for deleting the returned value.
 | 
| -  base::Value* QuicInfoToValue() const;
 | 
| -
 | 
| -  void CloseAllConnections();
 | 
| -  void CloseIdleConnections();
 | 
| -
 | 
| -  bool force_http_pipelining() const { return force_http_pipelining_; }
 | 
| -
 | 
| -  // Returns the original Params used to construct this session.
 | 
| -  const Params& params() const { return params_; }
 | 
| -
 | 
| -  void set_http_pipelining_enabled(bool enable) {
 | 
| -    params_.http_pipelining_enabled = enable;
 | 
| -  }
 | 
| -
 | 
| - private:
 | 
| -  friend class base::RefCounted<HttpNetworkSession>;
 | 
| -  friend class HttpNetworkSessionPeer;
 | 
| -
 | 
| -  ~HttpNetworkSession();
 | 
| -
 | 
| -  ClientSocketPoolManager* GetSocketPoolManager(SocketPoolType pool_type);
 | 
| -
 | 
| -  NetLog* const net_log_;
 | 
| -  NetworkDelegate* const network_delegate_;
 | 
| -  const base::WeakPtr<HttpServerProperties> http_server_properties_;
 | 
| -  CertVerifier* const cert_verifier_;
 | 
| -  HttpAuthHandlerFactory* const http_auth_handler_factory_;
 | 
| -  bool force_http_pipelining_;
 | 
| -
 | 
| -  // Not const since it's modified by HttpNetworkSessionPeer for testing.
 | 
| -  ProxyService* proxy_service_;
 | 
| -  const scoped_refptr<SSLConfigService> ssl_config_service_;
 | 
| -
 | 
| -  HttpAuthCache http_auth_cache_;
 | 
| -  SSLClientAuthCache ssl_client_auth_cache_;
 | 
| -  scoped_ptr<ClientSocketPoolManager> normal_socket_pool_manager_;
 | 
| -  scoped_ptr<ClientSocketPoolManager> websocket_socket_pool_manager_;
 | 
| -  QuicStreamFactory quic_stream_factory_;
 | 
| -  SpdySessionPool spdy_session_pool_;
 | 
| -  scoped_ptr<HttpStreamFactory> http_stream_factory_;
 | 
| -  scoped_ptr<HttpStreamFactory> http_stream_factory_for_websocket_;
 | 
| -  std::set<HttpResponseBodyDrainer*> response_drainers_;
 | 
| -
 | 
| -  // TODO(jgraettinger): Remove when Huffman collection is complete.
 | 
| -  scoped_ptr<HpackHuffmanAggregator> huffman_aggregator_;
 | 
| -
 | 
| -  Params params_;
 | 
| -};
 | 
| -
 | 
| -}  // namespace net
 | 
| -
 | 
| -#endif  // NET_HTTP_HTTP_NETWORK_SESSION_H_
 | 
| +// Copyright (c) 2012 The Chromium Authors. All rights reserved.
 | 
| +// Use of this source code is governed by a BSD-style license that can be
 | 
| +// found in the LICENSE file.
 | 
| +
 | 
| +#ifndef NET_HTTP_HTTP_NETWORK_SESSION_H_
 | 
| +#define NET_HTTP_HTTP_NETWORK_SESSION_H_
 | 
| +
 | 
| +#include <set>
 | 
| +#include <string>
 | 
| +#include <vector>
 | 
| +
 | 
| +#include "base/basictypes.h"
 | 
| +#include "base/memory/ref_counted.h"
 | 
| +#include "base/memory/weak_ptr.h"
 | 
| +#include "base/threading/non_thread_safe.h"
 | 
| +#include "net/base/host_port_pair.h"
 | 
| +#include "net/base/net_export.h"
 | 
| +#include "net/dns/host_resolver.h"
 | 
| +#include "net/http/http_auth_cache.h"
 | 
| +#include "net/http/http_stream_factory.h"
 | 
| +#include "net/quic/quic_stream_factory.h"
 | 
| +#include "net/socket/next_proto.h"
 | 
| +#include "net/spdy/spdy_session_pool.h"
 | 
| +#include "net/ssl/ssl_client_auth_cache.h"
 | 
| +
 | 
| +namespace base {
 | 
| +class Value;
 | 
| +}
 | 
| +
 | 
| +namespace net {
 | 
| +
 | 
| +class CertVerifier;
 | 
| +class ClientSocketFactory;
 | 
| +class ClientSocketPoolManager;
 | 
| +class CTVerifier;
 | 
| +class HostResolver;
 | 
| +class HpackHuffmanAggregator;
 | 
| +class HttpAuthHandlerFactory;
 | 
| +class HttpNetworkSessionPeer;
 | 
| +class HttpProxyClientSocketPool;
 | 
| +class HttpResponseBodyDrainer;
 | 
| +class HttpServerProperties;
 | 
| +class NetLog;
 | 
| +class NetworkDelegate;
 | 
| +class ServerBoundCertService;
 | 
| +class ProxyService;
 | 
| +class QuicClock;
 | 
| +class QuicCryptoClientStreamFactory;
 | 
| +class QuicServerInfoFactory;
 | 
| +class SOCKSClientSocketPool;
 | 
| +class SSLClientSocketPool;
 | 
| +class SSLConfigService;
 | 
| +class TransportClientSocketPool;
 | 
| +class TransportSecurityState;
 | 
| +
 | 
| +// This class holds session objects used by HttpNetworkTransaction objects.
 | 
| +class NET_EXPORT HttpNetworkSession
 | 
| +    : public base::RefCounted<HttpNetworkSession>,
 | 
| +      NON_EXPORTED_BASE(public base::NonThreadSafe) {
 | 
| + public:
 | 
| +  struct NET_EXPORT Params {
 | 
| +    Params();
 | 
| +    ~Params();
 | 
| +
 | 
| +    ClientSocketFactory* client_socket_factory;
 | 
| +    HostResolver* host_resolver;
 | 
| +    CertVerifier* cert_verifier;
 | 
| +    ServerBoundCertService* server_bound_cert_service;
 | 
| +    TransportSecurityState* transport_security_state;
 | 
| +    CTVerifier* cert_transparency_verifier;
 | 
| +    ProxyService* proxy_service;
 | 
| +    std::string ssl_session_cache_shard;
 | 
| +    SSLConfigService* ssl_config_service;
 | 
| +    HttpAuthHandlerFactory* http_auth_handler_factory;
 | 
| +    NetworkDelegate* network_delegate;
 | 
| +    base::WeakPtr<HttpServerProperties> http_server_properties;
 | 
| +    NetLog* net_log;
 | 
| +    HostMappingRules* host_mapping_rules;
 | 
| +    bool force_http_pipelining;
 | 
| +    bool ignore_certificate_errors;
 | 
| +    bool http_pipelining_enabled;
 | 
| +    uint16 testing_fixed_http_port;
 | 
| +    uint16 testing_fixed_https_port;
 | 
| +
 | 
| +    bool force_spdy_single_domain;
 | 
| +    bool enable_spdy_compression;
 | 
| +    bool enable_spdy_ping_based_connection_checking;
 | 
| +    NextProto spdy_default_protocol;
 | 
| +    // The protocols supported by NPN (next protocol negotiation) during the
 | 
| +    // SSL handshake as well as by HTTP Alternate-Protocol.
 | 
| +    // TODO(mmenke):  This is currently empty by default, and alternate
 | 
| +    //                protocols are disabled.  We should use some reasonable
 | 
| +    //                defaults.
 | 
| +    NextProtoVector next_protos;
 | 
| +    size_t spdy_stream_initial_recv_window_size;
 | 
| +    size_t spdy_initial_max_concurrent_streams;
 | 
| +    size_t spdy_max_concurrent_streams_limit;
 | 
| +    SpdySessionPool::TimeFunc time_func;
 | 
| +    std::string trusted_spdy_proxy;
 | 
| +    // Controls whether or not ssl is used when in SPDY mode.
 | 
| +    bool force_spdy_over_ssl;
 | 
| +    // Controls whether or not SPDY is used without NPN.
 | 
| +    bool force_spdy_always;
 | 
| +    // URLs to exclude from forced SPDY.
 | 
| +    std::set<HostPortPair> forced_spdy_exclusions;
 | 
| +    // Noe: Using this in the case of NPN for HTTP only results in the browser
 | 
| +    // trying SSL and then falling back to http.
 | 
| +    bool use_alternate_protocols;
 | 
| +
 | 
| +    bool enable_quic;
 | 
| +    bool enable_quic_https;
 | 
| +    bool enable_quic_port_selection;
 | 
| +    bool enable_quic_pacing;
 | 
| +    bool enable_quic_time_based_loss_detection;
 | 
| +    bool enable_quic_persist_server_info;
 | 
| +    HostPortPair origin_to_force_quic_on;
 | 
| +    QuicClock* quic_clock;  // Will be owned by QuicStreamFactory.
 | 
| +    QuicRandom* quic_random;
 | 
| +    size_t quic_max_packet_length;
 | 
| +    bool enable_user_alternate_protocol_ports;
 | 
| +    QuicCryptoClientStreamFactory* quic_crypto_client_stream_factory;
 | 
| +    QuicVersionVector quic_supported_versions;
 | 
| +  };
 | 
| +
 | 
| +  enum SocketPoolType {
 | 
| +    NORMAL_SOCKET_POOL,
 | 
| +    WEBSOCKET_SOCKET_POOL,
 | 
| +    NUM_SOCKET_POOL_TYPES
 | 
| +  };
 | 
| +
 | 
| +  explicit HttpNetworkSession(const Params& params);
 | 
| +
 | 
| +  HttpAuthCache* http_auth_cache() { return &http_auth_cache_; }
 | 
| +  SSLClientAuthCache* ssl_client_auth_cache() {
 | 
| +    return &ssl_client_auth_cache_;
 | 
| +  }
 | 
| +
 | 
| +  void AddResponseDrainer(HttpResponseBodyDrainer* drainer);
 | 
| +
 | 
| +  void RemoveResponseDrainer(HttpResponseBodyDrainer* drainer);
 | 
| +
 | 
| +  TransportClientSocketPool* GetTransportSocketPool(SocketPoolType pool_type);
 | 
| +  SSLClientSocketPool* GetSSLSocketPool(SocketPoolType pool_type);
 | 
| +  SOCKSClientSocketPool* GetSocketPoolForSOCKSProxy(
 | 
| +      SocketPoolType pool_type,
 | 
| +      const HostPortPair& socks_proxy);
 | 
| +  HttpProxyClientSocketPool* GetSocketPoolForHTTPProxy(
 | 
| +      SocketPoolType pool_type,
 | 
| +      const HostPortPair& http_proxy);
 | 
| +  SSLClientSocketPool* GetSocketPoolForSSLWithProxy(
 | 
| +      SocketPoolType pool_type,
 | 
| +      const HostPortPair& proxy_server);
 | 
| +
 | 
| +  CertVerifier* cert_verifier() { return cert_verifier_; }
 | 
| +  ProxyService* proxy_service() { return proxy_service_; }
 | 
| +  SSLConfigService* ssl_config_service() { return ssl_config_service_.get(); }
 | 
| +  SpdySessionPool* spdy_session_pool() { return &spdy_session_pool_; }
 | 
| +  QuicStreamFactory* quic_stream_factory() { return &quic_stream_factory_; }
 | 
| +  HttpAuthHandlerFactory* http_auth_handler_factory() {
 | 
| +    return http_auth_handler_factory_;
 | 
| +  }
 | 
| +  NetworkDelegate* network_delegate() {
 | 
| +    return network_delegate_;
 | 
| +  }
 | 
| +  base::WeakPtr<HttpServerProperties> http_server_properties() {
 | 
| +    return http_server_properties_;
 | 
| +  }
 | 
| +  HttpStreamFactory* http_stream_factory() {
 | 
| +    return http_stream_factory_.get();
 | 
| +  }
 | 
| +  HttpStreamFactory* http_stream_factory_for_websocket() {
 | 
| +    return http_stream_factory_for_websocket_.get();
 | 
| +  }
 | 
| +  NetLog* net_log() {
 | 
| +    return net_log_;
 | 
| +  }
 | 
| +  HpackHuffmanAggregator* huffman_aggregator() {
 | 
| +    return huffman_aggregator_.get();
 | 
| +  }
 | 
| +
 | 
| +  // Creates a Value summary of the state of the socket pools. The caller is
 | 
| +  // responsible for deleting the returned value.
 | 
| +  base::Value* SocketPoolInfoToValue() const;
 | 
| +
 | 
| +  // Creates a Value summary of the state of the SPDY sessions. The caller is
 | 
| +  // responsible for deleting the returned value.
 | 
| +  base::Value* SpdySessionPoolInfoToValue() const;
 | 
| +
 | 
| +  // Creates a Value summary of the state of the QUIC sessions and
 | 
| +  // configuration. The caller is responsible for deleting the returned value.
 | 
| +  base::Value* QuicInfoToValue() const;
 | 
| +
 | 
| +  void CloseAllConnections();
 | 
| +  void CloseIdleConnections();
 | 
| +
 | 
| +  bool force_http_pipelining() const { return force_http_pipelining_; }
 | 
| +
 | 
| +  // Returns the original Params used to construct this session.
 | 
| +  const Params& params() const { return params_; }
 | 
| +
 | 
| +  void set_http_pipelining_enabled(bool enable) {
 | 
| +    params_.http_pipelining_enabled = enable;
 | 
| +  }
 | 
| +
 | 
| +  bool IsProtocolEnabled(AlternateProtocol protocol) const;
 | 
| +
 | 
| +  void GetNextProtos(std::vector<std::string>* next_protos) const;
 | 
| +
 | 
| +  // Convenience function for searching through |params_| for
 | 
| +  // |forced_spdy_exclusions|.
 | 
| +  bool HasSpdyExclusion(HostPortPair host_port_pair) const;
 | 
| +
 | 
| + private:
 | 
| +  friend class base::RefCounted<HttpNetworkSession>;
 | 
| +  friend class HttpNetworkSessionPeer;
 | 
| +
 | 
| +  ~HttpNetworkSession();
 | 
| +
 | 
| +  ClientSocketPoolManager* GetSocketPoolManager(SocketPoolType pool_type);
 | 
| +
 | 
| +  NetLog* const net_log_;
 | 
| +  NetworkDelegate* const network_delegate_;
 | 
| +  const base::WeakPtr<HttpServerProperties> http_server_properties_;
 | 
| +  CertVerifier* const cert_verifier_;
 | 
| +  HttpAuthHandlerFactory* const http_auth_handler_factory_;
 | 
| +  bool force_http_pipelining_;
 | 
| +
 | 
| +  // Not const since it's modified by HttpNetworkSessionPeer for testing.
 | 
| +  ProxyService* proxy_service_;
 | 
| +  const scoped_refptr<SSLConfigService> ssl_config_service_;
 | 
| +
 | 
| +  HttpAuthCache http_auth_cache_;
 | 
| +  SSLClientAuthCache ssl_client_auth_cache_;
 | 
| +  scoped_ptr<ClientSocketPoolManager> normal_socket_pool_manager_;
 | 
| +  scoped_ptr<ClientSocketPoolManager> websocket_socket_pool_manager_;
 | 
| +  QuicStreamFactory quic_stream_factory_;
 | 
| +  SpdySessionPool spdy_session_pool_;
 | 
| +  scoped_ptr<HttpStreamFactory> http_stream_factory_;
 | 
| +  scoped_ptr<HttpStreamFactory> http_stream_factory_for_websocket_;
 | 
| +  std::set<HttpResponseBodyDrainer*> response_drainers_;
 | 
| +
 | 
| +  // TODO(jgraettinger): Remove when Huffman collection is complete.
 | 
| +  scoped_ptr<HpackHuffmanAggregator> huffman_aggregator_;
 | 
| +
 | 
| +  std::vector<std::string> next_protos_;
 | 
| +  bool enabled_protocols_[NUM_VALID_ALTERNATE_PROTOCOLS];
 | 
| +
 | 
| +  Params params_;
 | 
| +};
 | 
| +
 | 
| +}  // namespace net
 | 
| +
 | 
| +#endif  // NET_HTTP_HTTP_NETWORK_SESSION_H_
 | 
| 
 |