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 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 | 7 |
8 #include <map> | 8 #include <map> |
9 #include <set> | 9 #include <set> |
10 #include <string> | 10 #include <string> |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
57 | 57 |
58 namespace net { | 58 namespace net { |
59 class CertPolicyEnforcer; | 59 class CertPolicyEnforcer; |
60 class CertVerifier; | 60 class CertVerifier; |
61 class ChannelIDService; | 61 class ChannelIDService; |
62 class CookieStore; | 62 class CookieStore; |
63 class CTVerifier; | 63 class CTVerifier; |
64 class FtpTransactionFactory; | 64 class FtpTransactionFactory; |
65 class HostMappingRules; | 65 class HostMappingRules; |
66 class HostResolver; | 66 class HostResolver; |
67 class HttpAuthHandlerFactory; | 67 class HttpAuthHandlerRegistryFactory; |
68 class HttpNetworkSession; | 68 class HttpNetworkSession; |
69 class HttpServerProperties; | 69 class HttpServerProperties; |
70 class HttpTransactionFactory; | 70 class HttpTransactionFactory; |
71 class HttpUserAgentSettings; | 71 class HttpUserAgentSettings; |
72 class NetworkDelegate; | 72 class NetworkDelegate; |
73 class NetworkQualityEstimator; | 73 class NetworkQualityEstimator; |
74 class ProxyConfigService; | 74 class ProxyConfigService; |
75 class ProxyService; | 75 class ProxyService; |
76 class SSLConfigService; | 76 class SSLConfigService; |
77 class TransportSecurityState; | 77 class TransportSecurityState; |
78 class URLRequestBackoffManager; | 78 class URLRequestBackoffManager; |
79 class URLRequestContext; | 79 class URLRequestContext; |
80 class URLRequestContextGetter; | 80 class URLRequestContextGetter; |
81 class URLRequestJobFactory; | 81 class URLRequestJobFactory; |
82 class URLSecurityManager; | 82 class HttpAuthPreferences; |
83 } // namespace net | 83 } // namespace net |
84 | 84 |
85 namespace net_log { | 85 namespace net_log { |
86 class ChromeNetLog; | 86 class ChromeNetLog; |
87 } | 87 } |
88 | 88 |
89 namespace policy { | 89 namespace policy { |
90 class PolicyService; | 90 class PolicyService; |
91 } // namespace policy | 91 } // namespace policy |
92 | 92 |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
161 scoped_ptr<net::ProxyService> proxy_script_fetcher_proxy_service; | 161 scoped_ptr<net::ProxyService> proxy_script_fetcher_proxy_service; |
162 scoped_ptr<net::HttpNetworkSession> | 162 scoped_ptr<net::HttpNetworkSession> |
163 proxy_script_fetcher_http_network_session; | 163 proxy_script_fetcher_http_network_session; |
164 scoped_ptr<net::HttpTransactionFactory> | 164 scoped_ptr<net::HttpTransactionFactory> |
165 proxy_script_fetcher_http_transaction_factory; | 165 proxy_script_fetcher_http_transaction_factory; |
166 scoped_ptr<net::FtpTransactionFactory> | 166 scoped_ptr<net::FtpTransactionFactory> |
167 proxy_script_fetcher_ftp_transaction_factory; | 167 proxy_script_fetcher_ftp_transaction_factory; |
168 scoped_ptr<net::URLRequestJobFactory> | 168 scoped_ptr<net::URLRequestJobFactory> |
169 proxy_script_fetcher_url_request_job_factory; | 169 proxy_script_fetcher_url_request_job_factory; |
170 scoped_ptr<net::URLRequestBackoffManager> url_request_backoff_manager; | 170 scoped_ptr<net::URLRequestBackoffManager> url_request_backoff_manager; |
171 scoped_ptr<net::URLSecurityManager> url_security_manager; | 171 scoped_ptr<net::HttpAuthPreferences> http_auth_preferences; |
172 // TODO(willchan): Remove proxy script fetcher context since it's not | 172 // TODO(willchan): Remove proxy script fetcher context since it's not |
173 // necessary now that I got rid of refcounting URLRequestContexts. | 173 // necessary now that I got rid of refcounting URLRequestContexts. |
174 // | 174 // |
175 // The first URLRequestContext is |system_url_request_context|. We introduce | 175 // The first URLRequestContext is |system_url_request_context|. We introduce |
176 // |proxy_script_fetcher_context| for the second context. It has a direct | 176 // |proxy_script_fetcher_context| for the second context. It has a direct |
177 // ProxyService, since we always directly connect to fetch the PAC script. | 177 // ProxyService, since we always directly connect to fetch the PAC script. |
178 scoped_ptr<net::URLRequestContext> proxy_script_fetcher_context; | 178 scoped_ptr<net::URLRequestContext> proxy_script_fetcher_context; |
179 scoped_ptr<net::ProxyService> system_proxy_service; | 179 scoped_ptr<net::ProxyService> system_proxy_service; |
180 scoped_ptr<net::HttpNetworkSession> system_http_network_session; | 180 scoped_ptr<net::HttpNetworkSession> system_http_network_session; |
181 scoped_ptr<net::HttpTransactionFactory> system_http_transaction_factory; | 181 scoped_ptr<net::HttpTransactionFactory> system_http_transaction_factory; |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
316 // Global state must be initialized on the IO thread, then this | 316 // Global state must be initialized on the IO thread, then this |
317 // method must be invoked on the UI thread. | 317 // method must be invoked on the UI thread. |
318 void InitSystemRequestContext(); | 318 void InitSystemRequestContext(); |
319 | 319 |
320 // Lazy initialization of system request context for | 320 // Lazy initialization of system request context for |
321 // SystemURLRequestContextGetter. To be called on IO thread only | 321 // SystemURLRequestContextGetter. To be called on IO thread only |
322 // after global state has been initialized on the IO thread, and | 322 // after global state has been initialized on the IO thread, and |
323 // SystemRequestContext state has been initialized on the UI thread. | 323 // SystemRequestContext state has been initialized on the UI thread. |
324 void InitSystemRequestContextOnIOThread(); | 324 void InitSystemRequestContextOnIOThread(); |
325 | 325 |
326 net::HttpAuthHandlerFactory* CreateDefaultAuthHandlerFactory( | 326 void CreateDefaultAuthHandlerFactory(); |
327 net::HostResolver* resolver); | |
328 | 327 |
329 // Returns an SSLConfigService instance. | 328 // Returns an SSLConfigService instance. |
330 net::SSLConfigService* GetSSLConfigService(); | 329 net::SSLConfigService* GetSSLConfigService(); |
331 | 330 |
332 void ChangedToOnTheRecordOnIOThread(); | 331 void ChangedToOnTheRecordOnIOThread(); |
333 | 332 |
334 void UpdateDnsClientEnabled(); | 333 void UpdateDnsClientEnabled(); |
| 334 void UpdateServerWhitelist(); |
| 335 void UpdateDelegateWhitelist(); |
| 336 void UpdateAndroidAuthNegotiateAccountType(); |
| 337 void UpdateNegotiateDisableCnameLookup(); |
| 338 void UpdateNegotiateEnablePort(); |
335 | 339 |
336 // Configures QUIC options based on the flags in |command_line| as | 340 // Configures QUIC options based on the flags in |command_line| as |
337 // well as the QUIC field trial group. | 341 // well as the QUIC field trial group. |
338 void ConfigureQuic(const base::CommandLine& command_line); | 342 void ConfigureQuic(const base::CommandLine& command_line); |
339 | 343 |
340 extensions::EventRouterForwarder* extension_event_router_forwarder() { | 344 extensions::EventRouterForwarder* extension_event_router_forwarder() { |
341 #if defined(ENABLE_EXTENSIONS) | 345 #if defined(ENABLE_EXTENSIONS) |
342 return extension_event_router_forwarder_; | 346 return extension_event_router_forwarder_; |
343 #else | 347 #else |
344 return NULL; | 348 return NULL; |
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
501 class LoggingNetworkChangeObserver; | 505 class LoggingNetworkChangeObserver; |
502 scoped_ptr<LoggingNetworkChangeObserver> network_change_observer_; | 506 scoped_ptr<LoggingNetworkChangeObserver> network_change_observer_; |
503 | 507 |
504 BooleanPrefMember system_enable_referrers_; | 508 BooleanPrefMember system_enable_referrers_; |
505 | 509 |
506 BooleanPrefMember dns_client_enabled_; | 510 BooleanPrefMember dns_client_enabled_; |
507 | 511 |
508 BooleanPrefMember quick_check_enabled_; | 512 BooleanPrefMember quick_check_enabled_; |
509 | 513 |
510 // Store HTTP Auth-related policies in this thread. | 514 // Store HTTP Auth-related policies in this thread. |
| 515 // TODO(aberent) Make the list of auth schemes a PrefMember, so that the |
| 516 // policy can change after startup (https://crbug/549273). |
511 std::string auth_schemes_; | 517 std::string auth_schemes_; |
512 bool negotiate_disable_cname_lookup_; | 518 BooleanPrefMember negotiate_disable_cname_lookup_; |
513 bool negotiate_enable_port_; | 519 BooleanPrefMember negotiate_enable_port_; |
514 std::string auth_server_whitelist_; | 520 StringPrefMember auth_server_whitelist_; |
515 std::string auth_delegate_whitelist_; | 521 StringPrefMember auth_delegate_whitelist_; |
| 522 |
| 523 #if defined(OS_ANDROID) |
| 524 StringPrefMember auth_android_negotiate_account_type_; |
| 525 #endif |
| 526 #if defined(OS_POSIX) && !defined(OS_ANDROID) |
| 527 // No PrefMember for the GSSAPI library name, since changing it after startup |
| 528 // requires unloading the existing GSSAPI library, which could cause all sorts |
| 529 // of problems for, for example, active Negotiate transactions. |
516 std::string gssapi_library_name_; | 530 std::string gssapi_library_name_; |
517 std::string auth_android_negotiate_account_type_; | 531 #endif |
518 | 532 |
519 // This is an instance of the default SSLConfigServiceManager for the current | 533 // This is an instance of the default SSLConfigServiceManager for the current |
520 // platform and it gets SSL preferences from local_state object. | 534 // platform and it gets SSL preferences from local_state object. |
521 scoped_ptr<ssl_config::SSLConfigServiceManager> ssl_config_service_manager_; | 535 scoped_ptr<ssl_config::SSLConfigServiceManager> ssl_config_service_manager_; |
522 | 536 |
523 // These member variables are initialized by a task posted to the IO thread, | 537 // These member variables are initialized by a task posted to the IO thread, |
524 // which gets posted by calling certain member functions of IOThread. | 538 // which gets posted by calling certain member functions of IOThread. |
525 scoped_ptr<net::ProxyConfigService> system_proxy_config_service_; | 539 scoped_ptr<net::ProxyConfigService> system_proxy_config_service_; |
526 | 540 |
527 scoped_ptr<PrefProxyConfigTracker> pref_proxy_config_tracker_; | 541 scoped_ptr<PrefProxyConfigTracker> pref_proxy_config_tracker_; |
528 | 542 |
529 scoped_refptr<net::URLRequestContextGetter> | 543 scoped_refptr<net::URLRequestContextGetter> |
530 system_url_request_context_getter_; | 544 system_url_request_context_getter_; |
531 | 545 |
532 // True if SPDY is disabled by policy. | 546 // True if SPDY is disabled by policy. |
533 bool is_spdy_disabled_by_policy_; | 547 bool is_spdy_disabled_by_policy_; |
534 | 548 |
535 // True if QUIC is allowed by policy. | 549 // True if QUIC is allowed by policy. |
536 bool is_quic_allowed_by_policy_; | 550 bool is_quic_allowed_by_policy_; |
537 | 551 |
538 const base::TimeTicks creation_time_; | 552 const base::TimeTicks creation_time_; |
539 | 553 |
540 base::WeakPtrFactory<IOThread> weak_factory_; | 554 base::WeakPtrFactory<IOThread> weak_factory_; |
541 | 555 |
542 DISALLOW_COPY_AND_ASSIGN(IOThread); | 556 DISALLOW_COPY_AND_ASSIGN(IOThread); |
543 }; | 557 }; |
544 | 558 |
545 #endif // CHROME_BROWSER_IO_THREAD_H_ | 559 #endif // CHROME_BROWSER_IO_THREAD_H_ |
OLD | NEW |