OLD | NEW |
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_URL_REQUEST_URL_REQUEST_CONTEXT_STORAGE_H_ | 5 #ifndef NET_URL_REQUEST_URL_REQUEST_CONTEXT_STORAGE_H_ |
6 #define NET_URL_REQUEST_URL_REQUEST_CONTEXT_STORAGE_H_ | 6 #define NET_URL_REQUEST_URL_REQUEST_CONTEXT_STORAGE_H_ |
7 | 7 |
8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
9 #include "base/memory/ref_counted.h" | 9 #include "base/memory/ref_counted.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
11 #include "net/base/net_export.h" | 11 #include "net/base/net_export.h" |
12 | 12 |
13 namespace net { | 13 namespace net { |
14 | 14 |
15 class CertVerifier; | 15 class CertVerifier; |
16 class ChannelIDService; | 16 class ChannelIDService; |
17 class CookieStore; | 17 class CookieStore; |
18 class FtpTransactionFactory; | 18 class FtpTransactionFactory; |
19 class HostResolver; | 19 class HostResolver; |
20 class HttpAuthHandlerFactory; | 20 class HttpAuthHandlerFactory; |
| 21 class HttpNetworkSession; |
21 class HttpServerProperties; | 22 class HttpServerProperties; |
22 class HttpTransactionFactory; | 23 class HttpTransactionFactory; |
23 class HttpUserAgentSettings; | 24 class HttpUserAgentSettings; |
24 class NetLog; | 25 class NetLog; |
25 class NetworkDelegate; | 26 class NetworkDelegate; |
26 class ProxyService; | 27 class ProxyService; |
27 class SdchManager; | 28 class SdchManager; |
28 class SSLConfigService; | 29 class SSLConfigService; |
29 class TransportSecurityState; | 30 class TransportSecurityState; |
30 class URLRequestContext; | 31 class URLRequestContext; |
(...skipping 21 matching lines...) Expand all Loading... |
52 void set_http_auth_handler_factory( | 53 void set_http_auth_handler_factory( |
53 scoped_ptr<HttpAuthHandlerFactory> http_auth_handler_factory); | 54 scoped_ptr<HttpAuthHandlerFactory> http_auth_handler_factory); |
54 void set_proxy_service(scoped_ptr<ProxyService> proxy_service); | 55 void set_proxy_service(scoped_ptr<ProxyService> proxy_service); |
55 void set_ssl_config_service(SSLConfigService* ssl_config_service); | 56 void set_ssl_config_service(SSLConfigService* ssl_config_service); |
56 void set_network_delegate(scoped_ptr<NetworkDelegate> network_delegate); | 57 void set_network_delegate(scoped_ptr<NetworkDelegate> network_delegate); |
57 void set_http_server_properties( | 58 void set_http_server_properties( |
58 scoped_ptr<HttpServerProperties> http_server_properties); | 59 scoped_ptr<HttpServerProperties> http_server_properties); |
59 void set_cookie_store(CookieStore* cookie_store); | 60 void set_cookie_store(CookieStore* cookie_store); |
60 void set_transport_security_state( | 61 void set_transport_security_state( |
61 scoped_ptr<TransportSecurityState> transport_security_state); | 62 scoped_ptr<TransportSecurityState> transport_security_state); |
| 63 void set_http_network_session( |
| 64 scoped_ptr<HttpNetworkSession> http_network_session); |
62 void set_http_transaction_factory( | 65 void set_http_transaction_factory( |
63 scoped_ptr<HttpTransactionFactory> http_transaction_factory); | 66 scoped_ptr<HttpTransactionFactory> http_transaction_factory); |
64 void set_job_factory(scoped_ptr<URLRequestJobFactory> job_factory); | 67 void set_job_factory(scoped_ptr<URLRequestJobFactory> job_factory); |
65 void set_throttler_manager( | 68 void set_throttler_manager( |
66 scoped_ptr<URLRequestThrottlerManager> throttler_manager); | 69 scoped_ptr<URLRequestThrottlerManager> throttler_manager); |
67 void set_backoff_manager( | 70 void set_backoff_manager( |
68 scoped_ptr<URLRequestBackoffManager> backoff_manager); | 71 scoped_ptr<URLRequestBackoffManager> backoff_manager); |
69 void set_http_user_agent_settings( | 72 void set_http_user_agent_settings( |
70 scoped_ptr<HttpUserAgentSettings> http_user_agent_settings); | 73 scoped_ptr<HttpUserAgentSettings> http_user_agent_settings); |
71 void set_sdch_manager(scoped_ptr<SdchManager> sdch_manager); | 74 void set_sdch_manager(scoped_ptr<SdchManager> sdch_manager); |
72 | 75 |
| 76 // Everything else can be access through the URLRequestContext, but this |
| 77 // cannot. Having an accessor for it makes usage a little cleaner. |
| 78 HttpNetworkSession* http_network_session() const { |
| 79 return http_network_session_.get(); |
| 80 } |
| 81 |
73 private: | 82 private: |
74 // We use a raw pointer to prevent reference cycles, since | 83 // We use a raw pointer to prevent reference cycles, since |
75 // URLRequestContextStorage can often be contained within a URLRequestContext | 84 // URLRequestContextStorage can often be contained within a URLRequestContext |
76 // subclass. | 85 // subclass. |
77 URLRequestContext* const context_; | 86 URLRequestContext* const context_; |
78 | 87 |
79 // Owned members. | 88 // Owned members. |
80 scoped_ptr<NetLog> net_log_; | 89 scoped_ptr<NetLog> net_log_; |
81 scoped_ptr<HostResolver> host_resolver_; | 90 scoped_ptr<HostResolver> host_resolver_; |
82 scoped_ptr<CertVerifier> cert_verifier_; | 91 scoped_ptr<CertVerifier> cert_verifier_; |
83 // The ChannelIDService must outlive the HttpTransactionFactory. | 92 // The ChannelIDService must outlive the HttpTransactionFactory. |
84 scoped_ptr<ChannelIDService> channel_id_service_; | 93 scoped_ptr<ChannelIDService> channel_id_service_; |
85 scoped_ptr<HttpAuthHandlerFactory> http_auth_handler_factory_; | 94 scoped_ptr<HttpAuthHandlerFactory> http_auth_handler_factory_; |
86 scoped_ptr<ProxyService> proxy_service_; | 95 scoped_ptr<ProxyService> proxy_service_; |
87 // TODO(willchan): Remove refcounting on these members. | 96 // TODO(willchan): Remove refcounting on these members. |
88 scoped_refptr<SSLConfigService> ssl_config_service_; | 97 scoped_refptr<SSLConfigService> ssl_config_service_; |
89 scoped_ptr<NetworkDelegate> network_delegate_; | 98 scoped_ptr<NetworkDelegate> network_delegate_; |
90 scoped_ptr<HttpServerProperties> http_server_properties_; | 99 scoped_ptr<HttpServerProperties> http_server_properties_; |
91 scoped_ptr<HttpUserAgentSettings> http_user_agent_settings_; | 100 scoped_ptr<HttpUserAgentSettings> http_user_agent_settings_; |
92 scoped_refptr<CookieStore> cookie_store_; | 101 scoped_refptr<CookieStore> cookie_store_; |
93 scoped_ptr<TransportSecurityState> transport_security_state_; | 102 scoped_ptr<TransportSecurityState> transport_security_state_; |
94 | 103 |
| 104 // Not actually pointed at by the URLRequestContext, but may be used (but not |
| 105 // owned) by the HttpTransactionFactory. |
| 106 scoped_ptr<HttpNetworkSession> http_network_session_; |
| 107 |
95 scoped_ptr<HttpTransactionFactory> http_transaction_factory_; | 108 scoped_ptr<HttpTransactionFactory> http_transaction_factory_; |
96 scoped_ptr<URLRequestJobFactory> job_factory_; | 109 scoped_ptr<URLRequestJobFactory> job_factory_; |
97 scoped_ptr<URLRequestThrottlerManager> throttler_manager_; | 110 scoped_ptr<URLRequestThrottlerManager> throttler_manager_; |
98 scoped_ptr<URLRequestBackoffManager> backoff_manager_; | 111 scoped_ptr<URLRequestBackoffManager> backoff_manager_; |
99 scoped_ptr<SdchManager> sdch_manager_; | 112 scoped_ptr<SdchManager> sdch_manager_; |
100 | 113 |
101 DISALLOW_COPY_AND_ASSIGN(URLRequestContextStorage); | 114 DISALLOW_COPY_AND_ASSIGN(URLRequestContextStorage); |
102 }; | 115 }; |
103 | 116 |
104 } // namespace net | 117 } // namespace net |
105 | 118 |
106 #endif // NET_URL_REQUEST_URL_REQUEST_CONTEXT_STORAGE_H_ | 119 #endif // NET_URL_REQUEST_URL_REQUEST_CONTEXT_STORAGE_H_ |
OLD | NEW |