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 #include "chrome/browser/io_thread.h" | 5 #include "chrome/browser/io_thread.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/debug/leak_tracker.h" | 10 #include "base/debug/leak_tracker.h" |
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
300 auth_schemes_ = local_state->GetString(prefs::kAuthSchemes); | 300 auth_schemes_ = local_state->GetString(prefs::kAuthSchemes); |
301 negotiate_disable_cname_lookup_ = local_state->GetBoolean( | 301 negotiate_disable_cname_lookup_ = local_state->GetBoolean( |
302 prefs::kDisableAuthNegotiateCnameLookup); | 302 prefs::kDisableAuthNegotiateCnameLookup); |
303 negotiate_enable_port_ = local_state->GetBoolean( | 303 negotiate_enable_port_ = local_state->GetBoolean( |
304 prefs::kEnableAuthNegotiatePort); | 304 prefs::kEnableAuthNegotiatePort); |
305 auth_server_whitelist_ = local_state->GetString(prefs::kAuthServerWhitelist); | 305 auth_server_whitelist_ = local_state->GetString(prefs::kAuthServerWhitelist); |
306 auth_delegate_whitelist_ = local_state->GetString( | 306 auth_delegate_whitelist_ = local_state->GetString( |
307 prefs::kAuthNegotiateDelegateWhitelist); | 307 prefs::kAuthNegotiateDelegateWhitelist); |
308 gssapi_library_name_ = local_state->GetString(prefs::kGSSAPILibraryName); | 308 gssapi_library_name_ = local_state->GetString(prefs::kGSSAPILibraryName); |
309 pref_proxy_config_tracker_ = new PrefProxyConfigTracker(local_state); | 309 pref_proxy_config_tracker_ = new PrefProxyConfigTracker(local_state); |
| 310 enable_referrers_ = new BooleanPrefMember(); |
| 311 enable_referrers_->Init(prefs::kEnableReferrers, local_state, NULL); |
| 312 enable_referrers_->MoveToThread(BrowserThread::IO); |
310 } | 313 } |
311 | 314 |
312 IOThread::~IOThread() { | 315 IOThread::~IOThread() { |
313 if (pref_proxy_config_tracker_) | 316 if (pref_proxy_config_tracker_) |
314 pref_proxy_config_tracker_->DetachFromPrefService(); | 317 pref_proxy_config_tracker_->DetachFromPrefService(); |
| 318 enable_referrers_->Destroy(); |
315 // We cannot rely on our base class to stop the thread since we want our | 319 // We cannot rely on our base class to stop the thread since we want our |
316 // CleanUp function to run. | 320 // CleanUp function to run. |
317 Stop(); | 321 Stop(); |
318 DCHECK(!globals_); | 322 DCHECK(!globals_); |
319 } | 323 } |
320 | 324 |
321 IOThread::Globals* IOThread::globals() { | 325 IOThread::Globals* IOThread::globals() { |
322 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 326 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
323 return globals_; | 327 return globals_; |
324 } | 328 } |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
417 | 421 |
418 // Add an observer that will emit network change events to the ChromeNetLog. | 422 // Add an observer that will emit network change events to the ChromeNetLog. |
419 // Assuming NetworkChangeNotifier dispatches in FIFO order, we should be | 423 // Assuming NetworkChangeNotifier dispatches in FIFO order, we should be |
420 // logging the network change before other IO thread consumers respond to it. | 424 // logging the network change before other IO thread consumers respond to it. |
421 network_change_observer_.reset( | 425 network_change_observer_.reset( |
422 new LoggingNetworkChangeObserver(net_log_)); | 426 new LoggingNetworkChangeObserver(net_log_)); |
423 | 427 |
424 globals_->extension_event_router_forwarder = | 428 globals_->extension_event_router_forwarder = |
425 extension_event_router_forwarder_; | 429 extension_event_router_forwarder_; |
426 globals_->system_network_delegate.reset(new ChromeNetworkDelegate( | 430 globals_->system_network_delegate.reset(new ChromeNetworkDelegate( |
427 extension_event_router_forwarder_, Profile::kInvalidProfileId, NULL)); | 431 extension_event_router_forwarder_, |
| 432 Profile::kInvalidProfileId, |
| 433 enable_referrers_, |
| 434 NULL)); |
428 globals_->host_resolver.reset( | 435 globals_->host_resolver.reset( |
429 CreateGlobalHostResolver(net_log_)); | 436 CreateGlobalHostResolver(net_log_)); |
430 globals_->cert_verifier.reset(new net::CertVerifier); | 437 globals_->cert_verifier.reset(new net::CertVerifier); |
431 globals_->dnsrr_resolver.reset(new net::DnsRRResolver); | 438 globals_->dnsrr_resolver.reset(new net::DnsRRResolver); |
432 // TODO(willchan): Use the real SSLConfigService. | 439 // TODO(willchan): Use the real SSLConfigService. |
433 globals_->ssl_config_service = | 440 globals_->ssl_config_service = |
434 net::SSLConfigService::CreateSystemSSLConfigService(); | 441 net::SSLConfigService::CreateSystemSSLConfigService(); |
435 globals_->http_auth_handler_factory.reset(CreateDefaultAuthHandlerFactory( | 442 globals_->http_auth_handler_factory.reset(CreateDefaultAuthHandlerFactory( |
436 globals_->host_resolver.get())); | 443 globals_->host_resolver.get())); |
437 // For the ProxyScriptFetcher, we use a direct ProxyService. | 444 // For the ProxyScriptFetcher, we use a direct ProxyService. |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
535 // static | 542 // static |
536 void IOThread::RegisterPrefs(PrefService* local_state) { | 543 void IOThread::RegisterPrefs(PrefService* local_state) { |
537 local_state->RegisterStringPref(prefs::kAuthSchemes, | 544 local_state->RegisterStringPref(prefs::kAuthSchemes, |
538 "basic,digest,ntlm,negotiate"); | 545 "basic,digest,ntlm,negotiate"); |
539 local_state->RegisterBooleanPref(prefs::kDisableAuthNegotiateCnameLookup, | 546 local_state->RegisterBooleanPref(prefs::kDisableAuthNegotiateCnameLookup, |
540 false); | 547 false); |
541 local_state->RegisterBooleanPref(prefs::kEnableAuthNegotiatePort, false); | 548 local_state->RegisterBooleanPref(prefs::kEnableAuthNegotiatePort, false); |
542 local_state->RegisterStringPref(prefs::kAuthServerWhitelist, ""); | 549 local_state->RegisterStringPref(prefs::kAuthServerWhitelist, ""); |
543 local_state->RegisterStringPref(prefs::kAuthNegotiateDelegateWhitelist, ""); | 550 local_state->RegisterStringPref(prefs::kAuthNegotiateDelegateWhitelist, ""); |
544 local_state->RegisterStringPref(prefs::kGSSAPILibraryName, ""); | 551 local_state->RegisterStringPref(prefs::kGSSAPILibraryName, ""); |
| 552 local_state->RegisterBooleanPref(prefs::kEnableReferrers, true); |
545 } | 553 } |
546 | 554 |
547 net::HttpAuthHandlerFactory* IOThread::CreateDefaultAuthHandlerFactory( | 555 net::HttpAuthHandlerFactory* IOThread::CreateDefaultAuthHandlerFactory( |
548 net::HostResolver* resolver) { | 556 net::HostResolver* resolver) { |
549 net::HttpAuthFilterWhitelist* auth_filter_default_credentials = NULL; | 557 net::HttpAuthFilterWhitelist* auth_filter_default_credentials = NULL; |
550 if (!auth_server_whitelist_.empty()) { | 558 if (!auth_server_whitelist_.empty()) { |
551 auth_filter_default_credentials = | 559 auth_filter_default_credentials = |
552 new net::HttpAuthFilterWhitelist(auth_server_whitelist_); | 560 new net::HttpAuthFilterWhitelist(auth_server_whitelist_); |
553 } | 561 } |
554 net::HttpAuthFilterWhitelist* auth_filter_delegate = NULL; | 562 net::HttpAuthFilterWhitelist* auth_filter_delegate = NULL; |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
650 system_params.http_auth_handler_factory = | 658 system_params.http_auth_handler_factory = |
651 globals_->http_auth_handler_factory.get(); | 659 globals_->http_auth_handler_factory.get(); |
652 system_params.network_delegate = globals_->system_network_delegate.get(); | 660 system_params.network_delegate = globals_->system_network_delegate.get(); |
653 system_params.net_log = net_log_; | 661 system_params.net_log = net_log_; |
654 globals_->system_http_transaction_factory.reset( | 662 globals_->system_http_transaction_factory.reset( |
655 new net::HttpNetworkLayer( | 663 new net::HttpNetworkLayer( |
656 new net::HttpNetworkSession(system_params))); | 664 new net::HttpNetworkSession(system_params))); |
657 globals_->system_request_context = | 665 globals_->system_request_context = |
658 ConstructSystemRequestContext(globals_, net_log_); | 666 ConstructSystemRequestContext(globals_, net_log_); |
659 } | 667 } |
OLD | NEW |