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

Unified Diff: net/http/http_network_session.h

Issue 2907463002: Split HttpNetworkSession::Params into two structs. (Closed)
Patch Set: Response to comments Created 3 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/http/http_network_layer_unittest.cc ('k') | net/http/http_network_session.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/http/http_network_session.h
diff --git a/net/http/http_network_session.h b/net/http/http_network_session.h
index 89234cbd7d3848ac89a6dfd2c5270971aaed642e..9e4a4841d60890e6796275bd639036e6e90d99ae 100644
--- a/net/http/http_network_session.h
+++ b/net/http/http_network_session.h
@@ -78,26 +78,15 @@ class NET_EXPORT HttpNetworkSession
: NON_EXPORTED_BASE(public base::NonThreadSafe),
public base::MemoryCoordinatorClient {
public:
+ // Self-contained structure with all the simple configuration options
+ // supported by the HttpNetworkSession.
struct NET_EXPORT Params {
Params();
Params(const Params& other);
~Params();
- ClientSocketFactory* client_socket_factory;
- HostResolver* host_resolver;
- CertVerifier* cert_verifier;
bool enable_server_push_cancellation;
- ChannelIDService* channel_id_service;
- TransportSecurityState* transport_security_state;
- CTVerifier* cert_transparency_verifier;
- CTPolicyEnforcer* ct_policy_enforcer;
- ProxyService* proxy_service;
- SSLConfigService* ssl_config_service;
- HttpAuthHandlerFactory* http_auth_handler_factory;
- HttpServerProperties* http_server_properties;
- NetLog* net_log;
HostMappingRules host_mapping_rules;
- SocketPerformanceWatcherFactory* socket_performance_watcher_factory;
bool ignore_certificate_errors;
uint16_t testing_fixed_http_port;
uint16_t testing_fixed_https_port;
@@ -127,12 +116,6 @@ class NET_EXPORT HttpNetworkSession
std::string quic_user_agent_id;
// Limit on the size of QUIC packets.
size_t quic_max_packet_length;
- // Source of time for QUIC connections.
- QuicClock* quic_clock;
- // Source of entropy for QUIC connections.
- QuicRandom* quic_random;
- // Optional factory to use for creating QuicCryptoClientStreams.
- QuicCryptoClientStreamFactory* quic_crypto_client_stream_factory;
// Maximum number of server configs that are to be stored in
// HttpServerProperties, instead of the disk cache.
size_t quic_max_server_configs_stored_in_properties;
@@ -179,7 +162,6 @@ class NET_EXPORT HttpNetworkSession
// If true, estimate the initial RTT for QUIC connections based on network.
bool quic_estimate_initial_rtt;
- ProxyDelegate* proxy_delegate;
// Enable support for Token Binding.
bool enable_token_binding;
@@ -188,13 +170,44 @@ class NET_EXPORT HttpNetworkSession
bool http_09_on_non_default_ports_enabled;
};
+ // Structure with pointers to the dependencies of the HttpNetworkSession.
+ // These objects must all outlive the HttpNetworkSession.
+ struct NET_EXPORT Context {
+ Context();
+ Context(const Context& other);
+ ~Context();
+
+ ClientSocketFactory* client_socket_factory;
+ HostResolver* host_resolver;
+ CertVerifier* cert_verifier;
+ ChannelIDService* channel_id_service;
+ TransportSecurityState* transport_security_state;
+ CTVerifier* cert_transparency_verifier;
+ CTPolicyEnforcer* ct_policy_enforcer;
+ ProxyService* proxy_service;
+ SSLConfigService* ssl_config_service;
+ HttpAuthHandlerFactory* http_auth_handler_factory;
+ HttpServerProperties* http_server_properties;
+ NetLog* net_log;
+ SocketPerformanceWatcherFactory* socket_performance_watcher_factory;
+
+ // Source of time for QUIC connections.
+ QuicClock* quic_clock;
+ // Source of entropy for QUIC connections.
+ QuicRandom* quic_random;
+ // Optional factory to use for creating QuicCryptoClientStreams.
+ QuicCryptoClientStreamFactory* quic_crypto_client_stream_factory;
+
+ ProxyDelegate* proxy_delegate;
+ };
+
enum SocketPoolType {
NORMAL_SOCKET_POOL,
WEBSOCKET_SOCKET_POOL,
NUM_SOCKET_POOL_TYPES
};
- explicit HttpNetworkSession(const Params& params);
+ HttpNetworkSession(const Params& params, const Context& context);
~HttpNetworkSession() override;
HttpAuthCache* http_auth_cache() { return &http_auth_cache_; }
@@ -258,6 +271,8 @@ class NET_EXPORT HttpNetworkSession
// Returns the original Params used to construct this session.
const Params& params() const { return params_; }
+ // Returns the original Context used to construct this session.
+ const Context& context() const { return context_; }
bool IsProtocolEnabled(NextProto protocol) const;
@@ -320,6 +335,7 @@ class NET_EXPORT HttpNetworkSession
NextProtoVector next_protos_;
Params params_;
+ Context context_;
std::unique_ptr<base::MemoryPressureListener> memory_pressure_listener_;
};
« no previous file with comments | « net/http/http_network_layer_unittest.cc ('k') | net/http/http_network_session.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698