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

Side by Side Diff: net/http/http_network_session.h

Issue 1298253002: Remove reference counting from HttpNetworkSession. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removed too much, back up a bit Created 5 years, 3 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef NET_HTTP_HTTP_NETWORK_SESSION_H_ 5 #ifndef NET_HTTP_HTTP_NETWORK_SESSION_H_
6 #define NET_HTTP_HTTP_NETWORK_SESSION_H_ 6 #define NET_HTTP_HTTP_NETWORK_SESSION_H_
7 7
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 class QuicCryptoClientStreamFactory; 49 class QuicCryptoClientStreamFactory;
50 class QuicServerInfoFactory; 50 class QuicServerInfoFactory;
51 class SOCKSClientSocketPool; 51 class SOCKSClientSocketPool;
52 class SSLClientSocketPool; 52 class SSLClientSocketPool;
53 class SSLConfigService; 53 class SSLConfigService;
54 class TransportClientSocketPool; 54 class TransportClientSocketPool;
55 class TransportSecurityState; 55 class TransportSecurityState;
56 56
57 // This class holds session objects used by HttpNetworkTransaction objects. 57 // This class holds session objects used by HttpNetworkTransaction objects.
58 class NET_EXPORT HttpNetworkSession 58 class NET_EXPORT HttpNetworkSession
59 : public base::RefCounted<HttpNetworkSession>, 59 : NON_EXPORTED_BASE(public base::NonThreadSafe) {
60 NON_EXPORTED_BASE(public base::NonThreadSafe) {
61 public: 60 public:
62 struct NET_EXPORT Params { 61 struct NET_EXPORT Params {
63 Params(); 62 Params();
64 ~Params(); 63 ~Params();
65 64
66 ClientSocketFactory* client_socket_factory; 65 ClientSocketFactory* client_socket_factory;
67 HostResolver* host_resolver; 66 HostResolver* host_resolver;
68 CertVerifier* cert_verifier; 67 CertVerifier* cert_verifier;
69 CertPolicyEnforcer* cert_policy_enforcer; 68 CertPolicyEnforcer* cert_policy_enforcer;
70 ChannelIDService* channel_id_service; 69 ChannelIDService* channel_id_service;
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 ProxyDelegate* proxy_delegate; 130 ProxyDelegate* proxy_delegate;
132 }; 131 };
133 132
134 enum SocketPoolType { 133 enum SocketPoolType {
135 NORMAL_SOCKET_POOL, 134 NORMAL_SOCKET_POOL,
136 WEBSOCKET_SOCKET_POOL, 135 WEBSOCKET_SOCKET_POOL,
137 NUM_SOCKET_POOL_TYPES 136 NUM_SOCKET_POOL_TYPES
138 }; 137 };
139 138
140 explicit HttpNetworkSession(const Params& params); 139 explicit HttpNetworkSession(const Params& params);
140 ~HttpNetworkSession();
141 141
142 HttpAuthCache* http_auth_cache() { return &http_auth_cache_; } 142 HttpAuthCache* http_auth_cache() { return &http_auth_cache_; }
143 SSLClientAuthCache* ssl_client_auth_cache() { 143 SSLClientAuthCache* ssl_client_auth_cache() {
144 return &ssl_client_auth_cache_; 144 return &ssl_client_auth_cache_;
145 } 145 }
146 146
147 void AddResponseDrainer(HttpResponseBodyDrainer* drainer); 147 void AddResponseDrainer(HttpResponseBodyDrainer* drainer);
148 148
149 void RemoveResponseDrainer(HttpResponseBodyDrainer* drainer); 149 void RemoveResponseDrainer(HttpResponseBodyDrainer* drainer);
150 150
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 bool IsProtocolEnabled(AlternateProtocol protocol) const; 203 bool IsProtocolEnabled(AlternateProtocol protocol) const;
204 204
205 // Populates |*next_protos| with protocols. 205 // Populates |*next_protos| with protocols.
206 void GetNextProtos(NextProtoVector* next_protos) const; 206 void GetNextProtos(NextProtoVector* next_protos) const;
207 207
208 // Convenience function for searching through |params_| for 208 // Convenience function for searching through |params_| for
209 // |forced_spdy_exclusions|. 209 // |forced_spdy_exclusions|.
210 bool HasSpdyExclusion(HostPortPair host_port_pair) const; 210 bool HasSpdyExclusion(HostPortPair host_port_pair) const;
211 211
212 private: 212 private:
213 friend class base::RefCounted<HttpNetworkSession>;
214 friend class HttpNetworkSessionPeer; 213 friend class HttpNetworkSessionPeer;
215 214
216 ~HttpNetworkSession();
217
218 ClientSocketPoolManager* GetSocketPoolManager(SocketPoolType pool_type); 215 ClientSocketPoolManager* GetSocketPoolManager(SocketPoolType pool_type);
219 216
220 NetLog* const net_log_; 217 NetLog* const net_log_;
221 NetworkDelegate* const network_delegate_; 218 NetworkDelegate* const network_delegate_;
222 const base::WeakPtr<HttpServerProperties> http_server_properties_; 219 const base::WeakPtr<HttpServerProperties> http_server_properties_;
223 CertVerifier* const cert_verifier_; 220 CertVerifier* const cert_verifier_;
224 HttpAuthHandlerFactory* const http_auth_handler_factory_; 221 HttpAuthHandlerFactory* const http_auth_handler_factory_;
225 222
226 // Not const since it's modified by HttpNetworkSessionPeer for testing. 223 // Not const since it's modified by HttpNetworkSessionPeer for testing.
227 ProxyService* proxy_service_; 224 ProxyService* proxy_service_;
(...skipping 11 matching lines...) Expand all
239 236
240 NextProtoVector next_protos_; 237 NextProtoVector next_protos_;
241 bool enabled_protocols_[NUM_VALID_ALTERNATE_PROTOCOLS]; 238 bool enabled_protocols_[NUM_VALID_ALTERNATE_PROTOCOLS];
242 239
243 Params params_; 240 Params params_;
244 }; 241 };
245 242
246 } // namespace net 243 } // namespace net
247 244
248 #endif // NET_HTTP_HTTP_NETWORK_SESSION_H_ 245 #endif // NET_HTTP_HTTP_NETWORK_SESSION_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698