| 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 <stddef.h> | 8 #include <stddef.h> |
| 9 #include <stdint.h> | 9 #include <stdint.h> |
| 10 | 10 |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 #include "content/public/browser/browser_thread.h" | 30 #include "content/public/browser/browser_thread.h" |
| 31 #include "content/public/browser/browser_thread_delegate.h" | 31 #include "content/public/browser/browser_thread_delegate.h" |
| 32 #include "extensions/features/features.h" | 32 #include "extensions/features/features.h" |
| 33 #include "net/base/network_change_notifier.h" | 33 #include "net/base/network_change_notifier.h" |
| 34 #include "net/http/http_network_session.h" | 34 #include "net/http/http_network_session.h" |
| 35 #include "net/nqe/network_quality_estimator.h" | 35 #include "net/nqe/network_quality_estimator.h" |
| 36 | 36 |
| 37 class PrefProxyConfigTracker; | 37 class PrefProxyConfigTracker; |
| 38 class PrefService; | 38 class PrefService; |
| 39 class PrefRegistrySimple; | 39 class PrefRegistrySimple; |
| 40 class SystemURLRequestContextGetter; | |
| 41 | 40 |
| 42 #if defined(OS_ANDROID) | 41 #if defined(OS_ANDROID) |
| 43 namespace chrome { | 42 namespace chrome { |
| 44 namespace android { | 43 namespace android { |
| 45 class ExternalDataUseObserver; | 44 class ExternalDataUseObserver; |
| 46 } | 45 } |
| 47 } | 46 } |
| 48 #endif // defined(OS_ANDROID) | 47 #endif // defined(OS_ANDROID) |
| 49 | 48 |
| 50 namespace base { | 49 namespace base { |
| 51 class CommandLine; | 50 class CommandLine; |
| 52 } | 51 } |
| 53 | 52 |
| 54 namespace certificate_transparency { | 53 namespace certificate_transparency { |
| 55 class TreeStateTracker; | 54 class TreeStateTracker; |
| 56 } | 55 } |
| 57 | 56 |
| 57 namespace chrome { |
| 58 class TestingIOThreadState; |
| 59 } |
| 60 |
| 58 namespace chrome_browser_net { | 61 namespace chrome_browser_net { |
| 59 class DnsProbeService; | 62 class DnsProbeService; |
| 60 } | 63 } |
| 61 | 64 |
| 62 namespace data_usage { | 65 namespace data_usage { |
| 63 class DataUseAggregator; | 66 class DataUseAggregator; |
| 64 } | 67 } |
| 65 | 68 |
| 66 namespace data_use_measurement { | 69 namespace data_use_measurement { |
| 67 class ChromeDataUseAscriber; | 70 class ChromeDataUseAscriber; |
| (...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 262 // preferences/policy/commandline. | 265 // preferences/policy/commandline. |
| 263 // | 266 // |
| 264 // For a description of what these features are, and how they are | 267 // For a description of what these features are, and how they are |
| 265 // configured, see the comments in pref_names.cc for | 268 // configured, see the comments in pref_names.cc for |
| 266 // |kQuickCheckEnabled| and |kPacHttpsUrlStrippingEnabled | 269 // |kQuickCheckEnabled| and |kPacHttpsUrlStrippingEnabled |
| 267 // respectively. | 270 // respectively. |
| 268 bool WpadQuickCheckEnabled() const; | 271 bool WpadQuickCheckEnabled() const; |
| 269 bool PacHttpsUrlStrippingEnabled() const; | 272 bool PacHttpsUrlStrippingEnabled() const; |
| 270 | 273 |
| 271 private: | 274 private: |
| 272 // Provide SystemURLRequestContextGetter with access to | |
| 273 // InitSystemRequestContext(). | |
| 274 friend class SystemURLRequestContextGetter; | |
| 275 | |
| 276 friend class test::IOThreadPeer; | 275 friend class test::IOThreadPeer; |
| 276 friend class chrome::TestingIOThreadState; |
| 277 | 277 |
| 278 // BrowserThreadDelegate implementation, runs on the IO thread. | 278 // BrowserThreadDelegate implementation, runs on the IO thread. |
| 279 // This handles initialization and destruction of state that must | 279 // This handles initialization and destruction of state that must |
| 280 // live on the IO thread. | 280 // live on the IO thread. |
| 281 void Init() override; | 281 void Init() override; |
| 282 void CleanUp() override; | 282 void CleanUp() override; |
| 283 | 283 |
| 284 // Global state must be initialized on the IO thread, then this | |
| 285 // method must be invoked on the UI thread. | |
| 286 void InitSystemRequestContext(); | |
| 287 | |
| 288 // Lazy initialization of system request context for | |
| 289 // SystemURLRequestContextGetter. To be called on IO thread only | |
| 290 // after global state has been initialized on the IO thread, and | |
| 291 // SystemRequestContext state has been initialized on the UI thread. | |
| 292 void InitSystemRequestContextOnIOThread(); | |
| 293 | |
| 294 void CreateDefaultAuthHandlerFactory(); | 284 void CreateDefaultAuthHandlerFactory(); |
| 295 | 285 |
| 296 // Returns an SSLConfigService instance. | 286 // Returns an SSLConfigService instance. |
| 297 net::SSLConfigService* GetSSLConfigService(); | 287 net::SSLConfigService* GetSSLConfigService(); |
| 298 | 288 |
| 299 void ChangedToOnTheRecordOnIOThread(); | 289 void ChangedToOnTheRecordOnIOThread(); |
| 300 | 290 |
| 301 void UpdateDnsClientEnabled(); | 291 void UpdateDnsClientEnabled(); |
| 302 void UpdateServerWhitelist(); | 292 void UpdateServerWhitelist(); |
| 303 void UpdateDelegateWhitelist(); | 293 void UpdateDelegateWhitelist(); |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 412 bool http_09_on_non_default_ports_enabled_; | 402 bool http_09_on_non_default_ports_enabled_; |
| 413 | 403 |
| 414 const base::TimeTicks creation_time_; | 404 const base::TimeTicks creation_time_; |
| 415 | 405 |
| 416 base::WeakPtrFactory<IOThread> weak_factory_; | 406 base::WeakPtrFactory<IOThread> weak_factory_; |
| 417 | 407 |
| 418 DISALLOW_COPY_AND_ASSIGN(IOThread); | 408 DISALLOW_COPY_AND_ASSIGN(IOThread); |
| 419 }; | 409 }; |
| 420 | 410 |
| 421 #endif // CHROME_BROWSER_IO_THREAD_H_ | 411 #endif // CHROME_BROWSER_IO_THREAD_H_ |
| OLD | NEW |