Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(84)

Side by Side Diff: chrome/browser/io_thread.cc

Issue 7827033: Introduce net::HttpServerPropertiesManager to manage server-specific properties. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 320 matching lines...) Expand 10 before | Expand all | Expand 10 after
331 IOThread::Globals::~Globals() {} 331 IOThread::Globals::~Globals() {}
332 332
333 IOThread::Globals::MediaGlobals::MediaGlobals() {} 333 IOThread::Globals::MediaGlobals::MediaGlobals() {}
334 334
335 IOThread::Globals::MediaGlobals::~MediaGlobals() {} 335 IOThread::Globals::MediaGlobals::~MediaGlobals() {}
336 336
337 // |local_state| is passed in explicitly in order to (1) reduce implicit 337 // |local_state| is passed in explicitly in order to (1) reduce implicit
338 // dependencies and (2) make IOThread more flexible for testing. 338 // dependencies and (2) make IOThread more flexible for testing.
339 IOThread::IOThread( 339 IOThread::IOThread(
340 PrefService* local_state, 340 PrefService* local_state,
341 SpdyConfigServiceManager* spdy_config_service_manager,
341 ChromeNetLog* net_log, 342 ChromeNetLog* net_log,
342 ExtensionEventRouterForwarder* extension_event_router_forwarder) 343 ExtensionEventRouterForwarder* extension_event_router_forwarder)
343 : BrowserProcessSubThread(BrowserThread::IO), 344 : BrowserProcessSubThread(BrowserThread::IO),
344 net_log_(net_log), 345 net_log_(net_log),
345 extension_event_router_forwarder_(extension_event_router_forwarder), 346 extension_event_router_forwarder_(extension_event_router_forwarder),
346 globals_(NULL), 347 globals_(NULL),
347 speculative_interceptor_(NULL), 348 speculative_interceptor_(NULL),
348 predictor_(NULL), 349 predictor_(NULL),
349 ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)) { 350 ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)) {
350 // We call RegisterPrefs() here (instead of inside browser_prefs.cc) to make 351 // We call RegisterPrefs() here (instead of inside browser_prefs.cc) to make
351 // sure that everything is initialized in the right order. 352 // sure that everything is initialized in the right order.
352 RegisterPrefs(local_state); 353 RegisterPrefs(local_state);
353 auth_schemes_ = local_state->GetString(prefs::kAuthSchemes); 354 auth_schemes_ = local_state->GetString(prefs::kAuthSchemes);
354 negotiate_disable_cname_lookup_ = local_state->GetBoolean( 355 negotiate_disable_cname_lookup_ = local_state->GetBoolean(
355 prefs::kDisableAuthNegotiateCnameLookup); 356 prefs::kDisableAuthNegotiateCnameLookup);
356 negotiate_enable_port_ = local_state->GetBoolean( 357 negotiate_enable_port_ = local_state->GetBoolean(
357 prefs::kEnableAuthNegotiatePort); 358 prefs::kEnableAuthNegotiatePort);
358 auth_server_whitelist_ = local_state->GetString(prefs::kAuthServerWhitelist); 359 auth_server_whitelist_ = local_state->GetString(prefs::kAuthServerWhitelist);
359 auth_delegate_whitelist_ = local_state->GetString( 360 auth_delegate_whitelist_ = local_state->GetString(
360 prefs::kAuthNegotiateDelegateWhitelist); 361 prefs::kAuthNegotiateDelegateWhitelist);
361 gssapi_library_name_ = local_state->GetString(prefs::kGSSAPILibraryName); 362 gssapi_library_name_ = local_state->GetString(prefs::kGSSAPILibraryName);
362 pref_proxy_config_tracker_ = new PrefProxyConfigTracker(local_state); 363 pref_proxy_config_tracker_ = new PrefProxyConfigTracker(local_state);
363 ChromeNetworkDelegate::InitializeReferrersEnabled(&system_enable_referrers_, 364 ChromeNetworkDelegate::InitializeReferrersEnabled(&system_enable_referrers_,
364 local_state); 365 local_state);
366 spdy_config_service_manager_ = spdy_config_service_manager;
365 ssl_config_service_manager_.reset( 367 ssl_config_service_manager_.reset(
366 SSLConfigServiceManager::CreateDefaultManager(local_state)); 368 SSLConfigServiceManager::CreateDefaultManager(local_state));
367 MessageLoop::current()->PostTask(FROM_HERE, 369 MessageLoop::current()->PostTask(FROM_HERE,
368 method_factory_.NewRunnableMethod( 370 method_factory_.NewRunnableMethod(
369 &IOThread::InitSystemRequestContext)); 371 &IOThread::InitSystemRequestContext));
370 } 372 }
371 373
372 IOThread::~IOThread() { 374 IOThread::~IOThread() {
373 if (pref_proxy_config_tracker_) 375 if (pref_proxy_config_tracker_)
374 pref_proxy_config_tracker_->DetachFromPrefService(); 376 pref_proxy_config_tracker_->DetachFromPrefService();
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
459 extension_event_router_forwarder_; 461 extension_event_router_forwarder_;
460 globals_->system_network_delegate.reset(new ChromeNetworkDelegate( 462 globals_->system_network_delegate.reset(new ChromeNetworkDelegate(
461 extension_event_router_forwarder_, 463 extension_event_router_forwarder_,
462 NULL, 464 NULL,
463 NULL, 465 NULL,
464 &system_enable_referrers_)); 466 &system_enable_referrers_));
465 globals_->host_resolver.reset( 467 globals_->host_resolver.reset(
466 CreateGlobalHostResolver(net_log_)); 468 CreateGlobalHostResolver(net_log_));
467 globals_->cert_verifier.reset(new net::CertVerifier); 469 globals_->cert_verifier.reset(new net::CertVerifier);
468 globals_->dnsrr_resolver.reset(new net::DnsRRResolver); 470 globals_->dnsrr_resolver.reset(new net::DnsRRResolver);
471 globals_->spdy_config_service = GetSpdyConfigService();
469 globals_->ssl_config_service = GetSSLConfigService(); 472 globals_->ssl_config_service = GetSSLConfigService();
470 globals_->http_auth_handler_factory.reset(CreateDefaultAuthHandlerFactory( 473 globals_->http_auth_handler_factory.reset(CreateDefaultAuthHandlerFactory(
471 globals_->host_resolver.get())); 474 globals_->host_resolver.get()));
472 // For the ProxyScriptFetcher, we use a direct ProxyService. 475 // For the ProxyScriptFetcher, we use a direct ProxyService.
473 globals_->proxy_script_fetcher_proxy_service.reset( 476 globals_->proxy_script_fetcher_proxy_service.reset(
474 net::ProxyService::CreateDirectWithNetLog(net_log_)); 477 net::ProxyService::CreateDirectWithNetLog(net_log_));
475 // In-memory cookie store. 478 // In-memory cookie store.
476 globals_->system_cookie_store = new net::CookieMonster(NULL, NULL); 479 globals_->system_cookie_store = new net::CookieMonster(NULL, NULL);
477 // In-memory origin-bound cert store. 480 // In-memory origin-bound cert store.
478 globals_->system_origin_bound_cert_service.reset( 481 globals_->system_origin_bound_cert_service.reset(
479 new net::OriginBoundCertService( 482 new net::OriginBoundCertService(
480 new net::DefaultOriginBoundCertStore(NULL))); 483 new net::DefaultOriginBoundCertStore(NULL)));
481 net::HttpNetworkSession::Params session_params; 484 net::HttpNetworkSession::Params session_params;
482 session_params.host_resolver = globals_->host_resolver.get(); 485 session_params.host_resolver = globals_->host_resolver.get();
483 session_params.cert_verifier = globals_->cert_verifier.get(); 486 session_params.cert_verifier = globals_->cert_verifier.get();
484 session_params.origin_bound_cert_service = 487 session_params.origin_bound_cert_service =
485 globals_->system_origin_bound_cert_service.get(); 488 globals_->system_origin_bound_cert_service.get();
486 session_params.proxy_service = 489 session_params.proxy_service =
487 globals_->proxy_script_fetcher_proxy_service.get(); 490 globals_->proxy_script_fetcher_proxy_service.get();
488 session_params.http_auth_handler_factory = 491 session_params.http_auth_handler_factory =
489 globals_->http_auth_handler_factory.get(); 492 globals_->http_auth_handler_factory.get();
490 session_params.network_delegate = globals_->system_network_delegate.get(); 493 session_params.network_delegate = globals_->system_network_delegate.get();
491 session_params.net_log = net_log_; 494 session_params.net_log = net_log_;
495 session_params.spdy_config_service = globals_->spdy_config_service;
492 session_params.ssl_config_service = globals_->ssl_config_service; 496 session_params.ssl_config_service = globals_->ssl_config_service;
493 scoped_refptr<net::HttpNetworkSession> network_session( 497 scoped_refptr<net::HttpNetworkSession> network_session(
494 new net::HttpNetworkSession(session_params)); 498 new net::HttpNetworkSession(session_params));
495 globals_->proxy_script_fetcher_http_transaction_factory.reset( 499 globals_->proxy_script_fetcher_http_transaction_factory.reset(
496 new net::HttpNetworkLayer(network_session)); 500 new net::HttpNetworkLayer(network_session));
497 globals_->proxy_script_fetcher_ftp_transaction_factory.reset( 501 globals_->proxy_script_fetcher_ftp_transaction_factory.reset(
498 new net::FtpNetworkLayer(globals_->host_resolver.get())); 502 new net::FtpNetworkLayer(globals_->host_resolver.get()));
499 503
500 globals_->proxy_script_fetcher_context = 504 globals_->proxy_script_fetcher_context =
501 ConstructProxyScriptFetcherContext(globals_, net_log_); 505 ConstructProxyScriptFetcherContext(globals_, net_log_);
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
647 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 651 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
648 652
649 if (globals_->host_resolver->GetAsHostResolverImpl()) { 653 if (globals_->host_resolver->GetAsHostResolverImpl()) {
650 net::HostCache* host_cache = 654 net::HostCache* host_cache =
651 globals_->host_resolver.get()->GetAsHostResolverImpl()->cache(); 655 globals_->host_resolver.get()->GetAsHostResolverImpl()->cache();
652 if (host_cache) 656 if (host_cache)
653 host_cache->clear(); 657 host_cache->clear();
654 } 658 }
655 } 659 }
656 660
661 net::SpdyConfigService* IOThread::GetSpdyConfigService() {
662 return spdy_config_service_manager_->Get();
663 }
664
657 net::SSLConfigService* IOThread::GetSSLConfigService() { 665 net::SSLConfigService* IOThread::GetSSLConfigService() {
658 return ssl_config_service_manager_->Get(); 666 return ssl_config_service_manager_->Get();
659 } 667 }
660 668
661 void IOThread::InitSystemRequestContext() { 669 void IOThread::InitSystemRequestContext() {
662 if (system_url_request_context_getter_) 670 if (system_url_request_context_getter_)
663 return; 671 return;
664 // If we're in unit_tests, IOThread may not be run. 672 // If we're in unit_tests, IOThread may not be run.
665 if (!message_loop()) 673 if (!message_loop())
666 return; 674 return;
(...skipping 23 matching lines...) Expand all
690 command_line)); 698 command_line));
691 net::HttpNetworkSession::Params system_params; 699 net::HttpNetworkSession::Params system_params;
692 system_params.host_resolver = globals_->host_resolver.get(); 700 system_params.host_resolver = globals_->host_resolver.get();
693 system_params.cert_verifier = globals_->cert_verifier.get(); 701 system_params.cert_verifier = globals_->cert_verifier.get();
694 system_params.origin_bound_cert_service = 702 system_params.origin_bound_cert_service =
695 globals_->system_origin_bound_cert_service.get(); 703 globals_->system_origin_bound_cert_service.get();
696 system_params.dnsrr_resolver = globals_->dnsrr_resolver.get(); 704 system_params.dnsrr_resolver = globals_->dnsrr_resolver.get();
697 system_params.dns_cert_checker = NULL; 705 system_params.dns_cert_checker = NULL;
698 system_params.ssl_host_info_factory = NULL; 706 system_params.ssl_host_info_factory = NULL;
699 system_params.proxy_service = globals_->system_proxy_service.get(); 707 system_params.proxy_service = globals_->system_proxy_service.get();
708 system_params.spdy_config_service = globals_->spdy_config_service.get();
700 system_params.ssl_config_service = globals_->ssl_config_service.get(); 709 system_params.ssl_config_service = globals_->ssl_config_service.get();
701 system_params.http_auth_handler_factory = 710 system_params.http_auth_handler_factory =
702 globals_->http_auth_handler_factory.get(); 711 globals_->http_auth_handler_factory.get();
703 system_params.network_delegate = globals_->system_network_delegate.get(); 712 system_params.network_delegate = globals_->system_network_delegate.get();
704 system_params.net_log = net_log_; 713 system_params.net_log = net_log_;
705 globals_->system_http_transaction_factory.reset( 714 globals_->system_http_transaction_factory.reset(
706 new net::HttpNetworkLayer( 715 new net::HttpNetworkLayer(
707 new net::HttpNetworkSession(system_params))); 716 new net::HttpNetworkSession(system_params)));
708 globals_->system_ftp_transaction_factory.reset( 717 globals_->system_ftp_transaction_factory.reset(
709 new net::FtpNetworkLayer(globals_->host_resolver.get())); 718 new net::FtpNetworkLayer(globals_->host_resolver.get()));
710 globals_->system_request_context = 719 globals_->system_request_context =
711 ConstructSystemRequestContext(globals_, net_log_); 720 ConstructSystemRequestContext(globals_, net_log_);
712 } 721 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698