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