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 #include "chrome/browser/profiles/profile_io_data.h" | 5 #include "chrome/browser/profiles/profile_io_data.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <string> | 9 #include <string> |
10 #include <utility> | 10 #include <utility> |
(...skipping 656 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
667 transport_security_state_->SetExpectCTReporter(nullptr); | 667 transport_security_state_->SetExpectCTReporter(nullptr); |
668 expect_ct_reporter_.reset(); | 668 expect_ct_reporter_.reset(); |
669 | 669 |
670 if (transport_security_state_) | 670 if (transport_security_state_) |
671 transport_security_state_->SetRequireCTDelegate(nullptr); | 671 transport_security_state_->SetRequireCTDelegate(nullptr); |
672 | 672 |
673 // And the same for the ReportingService. | 673 // And the same for the ReportingService. |
674 main_request_context_storage()->set_reporting_service( | 674 main_request_context_storage()->set_reporting_service( |
675 std::unique_ptr<net::ReportingService>()); | 675 std::unique_ptr<net::ReportingService>()); |
676 | 676 |
677 // This should be shut down last, as any other requests may initiate more | |
678 // activity when the ProxyService aborts lookups. | |
679 if (proxy_service_) | |
680 proxy_service_->OnShutdown(); | |
681 | |
682 // TODO(ajwong): These AssertNoURLRequests() calls are unnecessary since they | 677 // TODO(ajwong): These AssertNoURLRequests() calls are unnecessary since they |
683 // are already done in the URLRequestContext destructor. | 678 // are already done in the URLRequestContext destructor. |
684 if (main_request_context_) | 679 if (main_request_context_) |
685 main_request_context_->AssertNoURLRequests(); | 680 main_request_context_->AssertNoURLRequests(); |
686 if (extensions_request_context_) | 681 if (extensions_request_context_) |
687 extensions_request_context_->AssertNoURLRequests(); | 682 extensions_request_context_->AssertNoURLRequests(); |
688 | 683 |
689 current_context = 0; | 684 current_context = 0; |
690 for (URLRequestContextMap::iterator it = app_request_context_map_.begin(); | 685 for (URLRequestContextMap::iterator it = app_request_context_map_.begin(); |
691 it != app_request_context_map_.end(); ++it) { | 686 it != app_request_context_map_.end(); ++it) { |
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
989 // Create the common request contexts. | 984 // Create the common request contexts. |
990 main_request_context_.reset(new net::URLRequestContext()); | 985 main_request_context_.reset(new net::URLRequestContext()); |
991 main_request_context_storage_.reset( | 986 main_request_context_storage_.reset( |
992 new net::URLRequestContextStorage(main_request_context_.get())); | 987 new net::URLRequestContextStorage(main_request_context_.get())); |
993 extensions_request_context_.reset(new net::URLRequestContext()); | 988 extensions_request_context_.reset(new net::URLRequestContext()); |
994 main_request_context_->set_name("main"); | 989 main_request_context_->set_name("main"); |
995 extensions_request_context_->set_name("extensions"); | 990 extensions_request_context_->set_name("extensions"); |
996 | 991 |
997 main_request_context_->set_enable_brotli(io_thread_globals->enable_brotli); | 992 main_request_context_->set_enable_brotli(io_thread_globals->enable_brotli); |
998 | 993 |
999 std::unique_ptr<ChromeNetworkDelegate> chrome_network_delegate( | 994 std::unique_ptr<ChromeNetworkDelegate> network_delegate( |
1000 new ChromeNetworkDelegate( | 995 new ChromeNetworkDelegate( |
1001 #if BUILDFLAG(ENABLE_EXTENSIONS) | 996 #if BUILDFLAG(ENABLE_EXTENSIONS) |
1002 io_thread_globals->extension_event_router_forwarder.get(), | 997 io_thread_globals->extension_event_router_forwarder.get(), |
1003 #else | 998 #else |
1004 NULL, | 999 NULL, |
1005 #endif | 1000 #endif |
1006 &enable_referrers_)); | 1001 &enable_referrers_)); |
1007 #if BUILDFLAG(ENABLE_EXTENSIONS) | 1002 #if BUILDFLAG(ENABLE_EXTENSIONS) |
1008 chrome_network_delegate->set_extension_info_map( | 1003 network_delegate->set_extension_info_map( |
1009 profile_params_->extension_info_map.get()); | 1004 profile_params_->extension_info_map.get()); |
1010 if (!command_line.HasSwitch(switches::kDisableExtensionsHttpThrottling)) { | 1005 if (!command_line.HasSwitch(switches::kDisableExtensionsHttpThrottling)) { |
1011 extension_throttle_manager_.reset( | 1006 extension_throttle_manager_.reset( |
1012 new extensions::ExtensionThrottleManager()); | 1007 new extensions::ExtensionThrottleManager()); |
1013 } | 1008 } |
1014 #endif | 1009 #endif |
1015 | 1010 |
1016 chrome_network_delegate->set_url_blacklist_manager( | 1011 network_delegate->set_url_blacklist_manager(url_blacklist_manager_.get()); |
1017 url_blacklist_manager_.get()); | 1012 network_delegate->set_profile(profile_params_->profile); |
1018 chrome_network_delegate->set_profile(profile_params_->profile); | 1013 network_delegate->set_profile_path(profile_params_->path); |
1019 chrome_network_delegate->set_profile_path(profile_params_->path); | 1014 network_delegate->set_cookie_settings(profile_params_->cookie_settings.get()); |
1020 chrome_network_delegate->set_cookie_settings( | 1015 network_delegate->set_enable_do_not_track(&enable_do_not_track_); |
1021 profile_params_->cookie_settings.get()); | 1016 network_delegate->set_force_google_safe_search(&force_google_safesearch_); |
1022 chrome_network_delegate->set_enable_do_not_track(&enable_do_not_track_); | 1017 network_delegate->set_force_youtube_restrict(&force_youtube_restrict_); |
1023 chrome_network_delegate->set_force_google_safe_search( | 1018 network_delegate->set_allowed_domains_for_apps(&allowed_domains_for_apps_); |
1024 &force_google_safesearch_); | 1019 network_delegate->set_data_use_aggregator( |
1025 chrome_network_delegate->set_force_youtube_restrict(&force_youtube_restrict_); | |
1026 chrome_network_delegate->set_allowed_domains_for_apps( | |
1027 &allowed_domains_for_apps_); | |
1028 chrome_network_delegate->set_data_use_aggregator( | |
1029 io_thread_globals->data_use_aggregator.get(), IsOffTheRecord()); | 1020 io_thread_globals->data_use_aggregator.get(), IsOffTheRecord()); |
1030 | 1021 |
1031 std::unique_ptr<net::NetworkDelegate> network_delegate = | |
1032 ConfigureNetworkDelegate(profile_params_->io_thread, | |
1033 std::move(chrome_network_delegate)); | |
1034 | |
1035 main_request_context_->set_host_resolver( | |
1036 io_thread_globals->host_resolver.get()); | |
1037 | |
1038 // NOTE: Proxy service uses the default io thread network delegate, not the | 1022 // NOTE: Proxy service uses the default io thread network delegate, not the |
1039 // delegate just created. | 1023 // delegate just created. |
1040 proxy_service_ = ProxyServiceFactory::CreateProxyService( | 1024 proxy_service_ = ProxyServiceFactory::CreateProxyService( |
1041 io_thread->net_log(), main_request_context_.get(), network_delegate.get(), | 1025 io_thread->net_log(), |
| 1026 io_thread_globals->proxy_script_fetcher_context.get(), |
| 1027 io_thread_globals->system_network_delegate.get(), |
1042 std::move(profile_params_->proxy_config_service), command_line, | 1028 std::move(profile_params_->proxy_config_service), command_line, |
1043 io_thread->WpadQuickCheckEnabled(), | 1029 io_thread->WpadQuickCheckEnabled(), |
1044 io_thread->PacHttpsUrlStrippingEnabled()); | 1030 io_thread->PacHttpsUrlStrippingEnabled()); |
1045 | |
1046 main_request_context_storage_->set_network_delegate( | |
1047 std::move(network_delegate)); | |
1048 | |
1049 transport_security_state_.reset(new net::TransportSecurityState()); | 1031 transport_security_state_.reset(new net::TransportSecurityState()); |
1050 base::SequencedWorkerPool* pool = BrowserThread::GetBlockingPool(); | 1032 base::SequencedWorkerPool* pool = BrowserThread::GetBlockingPool(); |
1051 transport_security_persister_.reset( | 1033 transport_security_persister_.reset( |
1052 new net::TransportSecurityPersister( | 1034 new net::TransportSecurityPersister( |
1053 transport_security_state_.get(), | 1035 transport_security_state_.get(), |
1054 profile_params_->path, | 1036 profile_params_->path, |
1055 pool->GetSequencedTaskRunnerWithShutdownBehavior( | 1037 pool->GetSequencedTaskRunnerWithShutdownBehavior( |
1056 pool->GetSequenceToken(), | 1038 pool->GetSequenceToken(), |
1057 base::SequencedWorkerPool::BLOCK_SHUTDOWN), | 1039 base::SequencedWorkerPool::BLOCK_SHUTDOWN), |
1058 IsOffTheRecord())); | 1040 IsOffTheRecord())); |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1130 ct_tree_tracker_.reset(new certificate_transparency::TreeStateTracker( | 1112 ct_tree_tracker_.reset(new certificate_transparency::TreeStateTracker( |
1131 io_thread_globals->ct_logs, io_thread->net_log())); | 1113 io_thread_globals->ct_logs, io_thread->net_log())); |
1132 ct_verifier->SetObserver(ct_tree_tracker_.get()); | 1114 ct_verifier->SetObserver(ct_tree_tracker_.get()); |
1133 | 1115 |
1134 cert_transparency_verifier_ = std::move(ct_verifier); | 1116 cert_transparency_verifier_ = std::move(ct_verifier); |
1135 io_thread->RegisterSTHObserver(ct_tree_tracker_.get()); | 1117 io_thread->RegisterSTHObserver(ct_tree_tracker_.get()); |
1136 ct_tree_tracker_unregistration_ = | 1118 ct_tree_tracker_unregistration_ = |
1137 base::Bind(&IOThread::UnregisterSTHObserver, base::Unretained(io_thread), | 1119 base::Bind(&IOThread::UnregisterSTHObserver, base::Unretained(io_thread), |
1138 ct_tree_tracker_.get()); | 1120 ct_tree_tracker_.get()); |
1139 | 1121 |
1140 InitializeInternal(profile_params_.get(), protocol_handlers, | 1122 InitializeInternal(std::move(network_delegate), profile_params_.get(), |
1141 std::move(request_interceptors)); | 1123 protocol_handlers, std::move(request_interceptors)); |
1142 | 1124 |
1143 profile_params_.reset(); | 1125 profile_params_.reset(); |
1144 initialized_ = true; | 1126 initialized_ = true; |
1145 } | 1127 } |
1146 | 1128 |
1147 void ProfileIOData::ApplyProfileParamsToContext( | 1129 void ProfileIOData::ApplyProfileParamsToContext( |
1148 net::URLRequestContext* context) const { | 1130 net::URLRequestContext* context) const { |
1149 context->set_http_user_agent_settings( | 1131 context->set_http_user_agent_settings( |
1150 chrome_http_user_agent_settings_.get()); | 1132 chrome_http_user_agent_settings_.get()); |
1151 context->set_ssl_config_service(profile_params_->ssl_config_service.get()); | 1133 context->set_ssl_config_service(profile_params_->ssl_config_service.get()); |
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1321 net::HttpTransactionFactory* main_http_factory, | 1303 net::HttpTransactionFactory* main_http_factory, |
1322 std::unique_ptr<net::HttpCache::BackendFactory> backend) const { | 1304 std::unique_ptr<net::HttpCache::BackendFactory> backend) const { |
1323 DCHECK(main_http_factory); | 1305 DCHECK(main_http_factory); |
1324 net::HttpNetworkSession* shared_session = main_http_factory->GetSession(); | 1306 net::HttpNetworkSession* shared_session = main_http_factory->GetSession(); |
1325 return base::MakeUnique<net::HttpCache>( | 1307 return base::MakeUnique<net::HttpCache>( |
1326 base::WrapUnique(new DevToolsNetworkTransactionFactory( | 1308 base::WrapUnique(new DevToolsNetworkTransactionFactory( |
1327 network_controller_handle_.GetController(), shared_session)), | 1309 network_controller_handle_.GetController(), shared_session)), |
1328 std::move(backend), false /* is_main_cache */); | 1310 std::move(backend), false /* is_main_cache */); |
1329 } | 1311 } |
1330 | 1312 |
1331 std::unique_ptr<net::NetworkDelegate> ProfileIOData::ConfigureNetworkDelegate( | |
1332 IOThread* io_thread, | |
1333 std::unique_ptr<ChromeNetworkDelegate> chrome_network_delegate) const { | |
1334 return base::WrapUnique<net::NetworkDelegate>( | |
1335 chrome_network_delegate.release()); | |
1336 } | |
1337 | |
1338 void ProfileIOData::SetCookieSettingsForTesting( | 1313 void ProfileIOData::SetCookieSettingsForTesting( |
1339 content_settings::CookieSettings* cookie_settings) { | 1314 content_settings::CookieSettings* cookie_settings) { |
1340 DCHECK(!cookie_settings_.get()); | 1315 DCHECK(!cookie_settings_.get()); |
1341 cookie_settings_ = cookie_settings; | 1316 cookie_settings_ = cookie_settings; |
1342 } | 1317 } |
1343 | 1318 |
1344 policy::URLBlacklist::URLBlacklistState ProfileIOData::GetURLBlacklistState( | 1319 policy::URLBlacklist::URLBlacklistState ProfileIOData::GetURLBlacklistState( |
1345 const GURL& url) const { | 1320 const GURL& url) const { |
1346 return url_blacklist_manager_->GetURLBlacklistState(url); | 1321 return url_blacklist_manager_->GetURLBlacklistState(url); |
1347 } | 1322 } |
OLD | NEW |