OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 CHROME_BROWSER_IO_THREAD_H_ | 5 #ifndef CHROME_BROWSER_IO_THREAD_H_ |
6 #define CHROME_BROWSER_IO_THREAD_H_ | 6 #define CHROME_BROWSER_IO_THREAD_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include <list> | 9 #include <list> |
10 #include <string> | 10 #include <string> |
11 #include "base/basictypes.h" | 11 #include "base/basictypes.h" |
12 #include "base/memory/ref_counted.h" | 12 #include "base/memory/ref_counted.h" |
13 #include "base/memory/scoped_ptr.h" | 13 #include "base/memory/scoped_ptr.h" |
14 #include "chrome/browser/browser_process_sub_thread.h" | 14 #include "chrome/browser/browser_process_sub_thread.h" |
15 #include "chrome/common/net/predictor_common.h" | 15 #include "chrome/common/net/predictor_common.h" |
16 #include "net/base/network_change_notifier.h" | 16 #include "net/base/network_change_notifier.h" |
17 | 17 |
18 class ChromeNetLog; | 18 class ChromeNetLog; |
19 class ChromeURLRequestContextGetter; | 19 class ChromeURLRequestContextGetter; |
20 class ExtensionEventRouterForwarder; | 20 class ExtensionEventRouterForwarder; |
21 class ListValue; | 21 class ListValue; |
| 22 template<class T> class PrefMember; |
22 class PrefProxyConfigTracker; | 23 class PrefProxyConfigTracker; |
23 class PrefService; | 24 class PrefService; |
24 class SystemURLRequestContextGetter; | 25 class SystemURLRequestContextGetter; |
25 | 26 |
26 namespace chrome_browser_net { | 27 namespace chrome_browser_net { |
27 class ConnectInterceptor; | 28 class ConnectInterceptor; |
28 class Predictor; | 29 class Predictor; |
29 } // namespace chrome_browser_net | 30 } // namespace chrome_browser_net |
30 | 31 |
31 namespace net { | 32 namespace net { |
32 class CertVerifier; | 33 class CertVerifier; |
33 class DnsRRResolver; | 34 class DnsRRResolver; |
34 class HostResolver; | 35 class HostResolver; |
35 class HttpAuthHandlerFactory; | 36 class HttpAuthHandlerFactory; |
36 class HttpTransactionFactory; | 37 class HttpTransactionFactory; |
37 class NetworkDelegate; | 38 class NetworkDelegate; |
38 class ProxyConfigService; | 39 class ProxyConfigService; |
39 class ProxyScriptFetcher; | 40 class ProxyScriptFetcher; |
40 class ProxyService; | 41 class ProxyService; |
41 class SSLConfigService; | 42 class SSLConfigService; |
42 class URLRequestContext; | 43 class URLRequestContext; |
43 class URLRequestContextGetter; | 44 class URLRequestContextGetter; |
44 class URLSecurityManager; | 45 class URLSecurityManager; |
45 } // namespace net | 46 } // namespace net |
46 | 47 |
| 48 typedef PrefMember<bool> BooleanPrefMember; |
| 49 |
47 class IOThread : public BrowserProcessSubThread { | 50 class IOThread : public BrowserProcessSubThread { |
48 public: | 51 public: |
49 struct Globals { | 52 struct Globals { |
50 Globals(); | 53 Globals(); |
51 ~Globals(); | 54 ~Globals(); |
52 | 55 |
53 // The "system" NetworkDelegate, used for Profile-agnostic network events. | 56 // The "system" NetworkDelegate, used for Profile-agnostic network events. |
54 scoped_ptr<net::NetworkDelegate> system_network_delegate; | 57 scoped_ptr<net::NetworkDelegate> system_network_delegate; |
55 scoped_ptr<net::HostResolver> host_resolver; | 58 scoped_ptr<net::HostResolver> host_resolver; |
56 scoped_ptr<net::CertVerifier> cert_verifier; | 59 scoped_ptr<net::CertVerifier> cert_verifier; |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
170 | 173 |
171 // These member variables are initialized in Init() and do not change for the | 174 // These member variables are initialized in Init() and do not change for the |
172 // lifetime of the IO thread. | 175 // lifetime of the IO thread. |
173 | 176 |
174 Globals* globals_; | 177 Globals* globals_; |
175 | 178 |
176 // Observer that logs network changes to the ChromeNetLog. | 179 // Observer that logs network changes to the ChromeNetLog. |
177 scoped_ptr<net::NetworkChangeNotifier::IPAddressObserver> | 180 scoped_ptr<net::NetworkChangeNotifier::IPAddressObserver> |
178 network_change_observer_; | 181 network_change_observer_; |
179 | 182 |
| 183 scoped_ptr<BooleanPrefMember> enable_referrers_; |
| 184 |
180 // Store HTTP Auth-related policies in this thread. | 185 // Store HTTP Auth-related policies in this thread. |
181 std::string auth_schemes_; | 186 std::string auth_schemes_; |
182 bool negotiate_disable_cname_lookup_; | 187 bool negotiate_disable_cname_lookup_; |
183 bool negotiate_enable_port_; | 188 bool negotiate_enable_port_; |
184 std::string auth_server_whitelist_; | 189 std::string auth_server_whitelist_; |
185 std::string auth_delegate_whitelist_; | 190 std::string auth_delegate_whitelist_; |
186 std::string gssapi_library_name_; | 191 std::string gssapi_library_name_; |
187 | 192 |
188 // These member variables are initialized by a task posted to the IO thread, | 193 // These member variables are initialized by a task posted to the IO thread, |
189 // which gets posted by calling certain member functions of IOThread. | 194 // which gets posted by calling certain member functions of IOThread. |
(...skipping 14 matching lines...) Expand all Loading... |
204 | 209 |
205 // Keeps track of all live ChromeURLRequestContextGetters, so the | 210 // Keeps track of all live ChromeURLRequestContextGetters, so the |
206 // ChromeURLRequestContexts can be released during | 211 // ChromeURLRequestContexts can be released during |
207 // IOThread::CleanUp(). | 212 // IOThread::CleanUp(). |
208 std::list<ChromeURLRequestContextGetter*> url_request_context_getters_; | 213 std::list<ChromeURLRequestContextGetter*> url_request_context_getters_; |
209 | 214 |
210 DISALLOW_COPY_AND_ASSIGN(IOThread); | 215 DISALLOW_COPY_AND_ASSIGN(IOThread); |
211 }; | 216 }; |
212 | 217 |
213 #endif // CHROME_BROWSER_IO_THREAD_H_ | 218 #endif // CHROME_BROWSER_IO_THREAD_H_ |
OLD | NEW |