| 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 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 75 #include "components/policy/core/common/cloud/user_cloud_policy_manager.h" | 75 #include "components/policy/core/common/cloud/user_cloud_policy_manager.h" |
| 76 #include "components/prefs/pref_service.h" | 76 #include "components/prefs/pref_service.h" |
| 77 #include "components/signin/core/common/signin_pref_names.h" | 77 #include "components/signin/core/common/signin_pref_names.h" |
| 78 #include "components/sync/base/pref_names.h" | 78 #include "components/sync/base/pref_names.h" |
| 79 #include "components/url_formatter/url_fixer.h" | 79 #include "components/url_formatter/url_fixer.h" |
| 80 #include "content/public/browser/browser_thread.h" | 80 #include "content/public/browser/browser_thread.h" |
| 81 #include "content/public/browser/host_zoom_map.h" | 81 #include "content/public/browser/host_zoom_map.h" |
| 82 #include "content/public/browser/notification_service.h" | 82 #include "content/public/browser/notification_service.h" |
| 83 #include "content/public/browser/resource_context.h" | 83 #include "content/public/browser/resource_context.h" |
| 84 #include "content/public/common/content_switches.h" | 84 #include "content/public/common/content_switches.h" |
| 85 #include "extensions/features/features.h" |
| 85 #include "net/base/keygen_handler.h" | 86 #include "net/base/keygen_handler.h" |
| 86 #include "net/cert/cert_verifier.h" | 87 #include "net/cert/cert_verifier.h" |
| 87 #include "net/cert/ct_log_verifier.h" | 88 #include "net/cert/ct_log_verifier.h" |
| 88 #include "net/cert/multi_log_ct_verifier.h" | 89 #include "net/cert/multi_log_ct_verifier.h" |
| 89 #include "net/cookies/canonical_cookie.h" | 90 #include "net/cookies/canonical_cookie.h" |
| 90 #include "net/http/http_network_session.h" | 91 #include "net/http/http_network_session.h" |
| 91 #include "net/http/http_transaction_factory.h" | 92 #include "net/http/http_transaction_factory.h" |
| 92 #include "net/http/http_util.h" | 93 #include "net/http/http_util.h" |
| 93 #include "net/http/transport_security_persister.h" | 94 #include "net/http/transport_security_persister.h" |
| 94 #include "net/net_features.h" | 95 #include "net/net_features.h" |
| (...skipping 10 matching lines...) Expand all Loading... |
| 105 #include "net/url_request/url_request.h" | 106 #include "net/url_request/url_request.h" |
| 106 #include "net/url_request/url_request_context.h" | 107 #include "net/url_request/url_request_context.h" |
| 107 #include "net/url_request/url_request_context_builder.h" | 108 #include "net/url_request/url_request_context_builder.h" |
| 108 #include "net/url_request/url_request_context_storage.h" | 109 #include "net/url_request/url_request_context_storage.h" |
| 109 #include "net/url_request/url_request_file_job.h" | 110 #include "net/url_request/url_request_file_job.h" |
| 110 #include "net/url_request/url_request_intercepting_job_factory.h" | 111 #include "net/url_request/url_request_intercepting_job_factory.h" |
| 111 #include "net/url_request/url_request_interceptor.h" | 112 #include "net/url_request/url_request_interceptor.h" |
| 112 #include "net/url_request/url_request_job_factory_impl.h" | 113 #include "net/url_request/url_request_job_factory_impl.h" |
| 113 #include "third_party/WebKit/public/public_features.h" | 114 #include "third_party/WebKit/public/public_features.h" |
| 114 | 115 |
| 115 #if defined(ENABLE_EXTENSIONS) | 116 #if BUILDFLAG(ENABLE_EXTENSIONS) |
| 116 #include "chrome/browser/extensions/extension_cookie_monster_delegate.h" | 117 #include "chrome/browser/extensions/extension_cookie_monster_delegate.h" |
| 117 #include "chrome/browser/extensions/extension_resource_protocols.h" | 118 #include "chrome/browser/extensions/extension_resource_protocols.h" |
| 118 #include "extensions/browser/extension_protocols.h" | 119 #include "extensions/browser/extension_protocols.h" |
| 119 #include "extensions/browser/extension_system.h" | 120 #include "extensions/browser/extension_system.h" |
| 120 #include "extensions/browser/extension_throttle_manager.h" | 121 #include "extensions/browser/extension_throttle_manager.h" |
| 121 #include "extensions/browser/info_map.h" | 122 #include "extensions/browser/info_map.h" |
| 122 #include "extensions/common/constants.h" | 123 #include "extensions/common/constants.h" |
| 123 #endif | 124 #endif |
| 124 | 125 |
| 125 #if BUILDFLAG(ENABLE_SUPERVISED_USERS) | 126 #if BUILDFLAG(ENABLE_SUPERVISED_USERS) |
| (...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 395 std::unique_ptr<ProfileParams> params(new ProfileParams); | 396 std::unique_ptr<ProfileParams> params(new ProfileParams); |
| 396 params->path = profile->GetPath(); | 397 params->path = profile->GetPath(); |
| 397 | 398 |
| 398 params->io_thread = g_browser_process->io_thread(); | 399 params->io_thread = g_browser_process->io_thread(); |
| 399 | 400 |
| 400 params->cookie_settings = CookieSettingsFactory::GetForProfile(profile); | 401 params->cookie_settings = CookieSettingsFactory::GetForProfile(profile); |
| 401 params->host_content_settings_map = | 402 params->host_content_settings_map = |
| 402 HostContentSettingsMapFactory::GetForProfile(profile); | 403 HostContentSettingsMapFactory::GetForProfile(profile); |
| 403 params->ssl_config_service = profile->GetSSLConfigService(); | 404 params->ssl_config_service = profile->GetSSLConfigService(); |
| 404 | 405 |
| 405 #if defined(ENABLE_EXTENSIONS) | 406 #if BUILDFLAG(ENABLE_EXTENSIONS) |
| 406 params->extension_info_map = | 407 params->extension_info_map = |
| 407 extensions::ExtensionSystem::Get(profile)->info_map(); | 408 extensions::ExtensionSystem::Get(profile)->info_map(); |
| 408 params->cookie_monster_delegate = new ExtensionCookieMonsterDelegate(profile); | 409 params->cookie_monster_delegate = new ExtensionCookieMonsterDelegate(profile); |
| 409 #endif | 410 #endif |
| 410 | 411 |
| 411 if (predictors::ResourcePrefetchPredictor* predictor = | 412 if (predictors::ResourcePrefetchPredictor* predictor = |
| 412 predictors::ResourcePrefetchPredictorFactory::GetForProfile( | 413 predictors::ResourcePrefetchPredictorFactory::GetForProfile( |
| 413 profile)) { | 414 profile)) { |
| 414 resource_prefetch_predictor_observer_.reset( | 415 resource_prefetch_predictor_observer_.reset( |
| 415 new chrome_browser_net::ResourcePrefetchPredictorObserver(predictor)); | 416 new chrome_browser_net::ResourcePrefetchPredictorObserver(predictor)); |
| (...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 724 return (static_cast<ResourceContext*>(rc))->io_data_; | 725 return (static_cast<ResourceContext*>(rc))->io_data_; |
| 725 } | 726 } |
| 726 | 727 |
| 727 // static | 728 // static |
| 728 bool ProfileIOData::IsHandledProtocol(const std::string& scheme) { | 729 bool ProfileIOData::IsHandledProtocol(const std::string& scheme) { |
| 729 DCHECK_EQ(scheme, base::ToLowerASCII(scheme)); | 730 DCHECK_EQ(scheme, base::ToLowerASCII(scheme)); |
| 730 static const char* const kProtocolList[] = { | 731 static const char* const kProtocolList[] = { |
| 731 url::kFileScheme, | 732 url::kFileScheme, |
| 732 content::kChromeDevToolsScheme, | 733 content::kChromeDevToolsScheme, |
| 733 dom_distiller::kDomDistillerScheme, | 734 dom_distiller::kDomDistillerScheme, |
| 734 #if defined(ENABLE_EXTENSIONS) | 735 #if BUILDFLAG(ENABLE_EXTENSIONS) |
| 735 extensions::kExtensionScheme, | 736 extensions::kExtensionScheme, |
| 736 extensions::kExtensionResourceScheme, | 737 extensions::kExtensionResourceScheme, |
| 737 #endif | 738 #endif |
| 738 content::kChromeUIScheme, | 739 content::kChromeUIScheme, |
| 739 url::kDataScheme, | 740 url::kDataScheme, |
| 740 #if defined(OS_CHROMEOS) | 741 #if defined(OS_CHROMEOS) |
| 741 content::kExternalFileScheme, | 742 content::kExternalFileScheme, |
| 742 #endif // defined(OS_CHROMEOS) | 743 #endif // defined(OS_CHROMEOS) |
| 743 #if defined(OS_ANDROID) | 744 #if defined(OS_ANDROID) |
| 744 url::kContentScheme, | 745 url::kContentScheme, |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 844 context = AcquireIsolatedMediaRequestContext(app_context, | 845 context = AcquireIsolatedMediaRequestContext(app_context, |
| 845 partition_descriptor); | 846 partition_descriptor); |
| 846 isolated_media_request_context_map_[partition_descriptor] = context; | 847 isolated_media_request_context_map_[partition_descriptor] = context; |
| 847 } | 848 } |
| 848 DCHECK(context); | 849 DCHECK(context); |
| 849 return context; | 850 return context; |
| 850 } | 851 } |
| 851 | 852 |
| 852 extensions::InfoMap* ProfileIOData::GetExtensionInfoMap() const { | 853 extensions::InfoMap* ProfileIOData::GetExtensionInfoMap() const { |
| 853 DCHECK(initialized_) << "ExtensionSystem not initialized"; | 854 DCHECK(initialized_) << "ExtensionSystem not initialized"; |
| 854 #if defined(ENABLE_EXTENSIONS) | 855 #if BUILDFLAG(ENABLE_EXTENSIONS) |
| 855 return extension_info_map_.get(); | 856 return extension_info_map_.get(); |
| 856 #else | 857 #else |
| 857 return nullptr; | 858 return nullptr; |
| 858 #endif | 859 #endif |
| 859 } | 860 } |
| 860 | 861 |
| 861 extensions::ExtensionThrottleManager* | 862 extensions::ExtensionThrottleManager* |
| 862 ProfileIOData::GetExtensionThrottleManager() const { | 863 ProfileIOData::GetExtensionThrottleManager() const { |
| 863 DCHECK(initialized_) << "ExtensionSystem not initialized"; | 864 DCHECK(initialized_) << "ExtensionSystem not initialized"; |
| 864 #if defined(ENABLE_EXTENSIONS) | 865 #if BUILDFLAG(ENABLE_EXTENSIONS) |
| 865 return extension_throttle_manager_.get(); | 866 return extension_throttle_manager_.get(); |
| 866 #else | 867 #else |
| 867 return nullptr; | 868 return nullptr; |
| 868 #endif | 869 #endif |
| 869 } | 870 } |
| 870 | 871 |
| 871 content_settings::CookieSettings* ProfileIOData::GetCookieSettings() const { | 872 content_settings::CookieSettings* ProfileIOData::GetCookieSettings() const { |
| 872 // Allow either Init() or SetCookieSettingsForTesting() to initialize. | 873 // Allow either Init() or SetCookieSettingsForTesting() to initialize. |
| 873 DCHECK(initialized_ || cookie_settings_.get()); | 874 DCHECK(initialized_ || cookie_settings_.get()); |
| 874 return cookie_settings_.get(); | 875 return cookie_settings_.get(); |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1020 // Create the common request contexts. | 1021 // Create the common request contexts. |
| 1021 main_request_context_.reset(new net::URLRequestContext()); | 1022 main_request_context_.reset(new net::URLRequestContext()); |
| 1022 main_request_context_storage_.reset( | 1023 main_request_context_storage_.reset( |
| 1023 new net::URLRequestContextStorage(main_request_context_.get())); | 1024 new net::URLRequestContextStorage(main_request_context_.get())); |
| 1024 extensions_request_context_.reset(new net::URLRequestContext()); | 1025 extensions_request_context_.reset(new net::URLRequestContext()); |
| 1025 | 1026 |
| 1026 main_request_context_->set_enable_brotli(io_thread_globals->enable_brotli); | 1027 main_request_context_->set_enable_brotli(io_thread_globals->enable_brotli); |
| 1027 | 1028 |
| 1028 std::unique_ptr<ChromeNetworkDelegate> network_delegate( | 1029 std::unique_ptr<ChromeNetworkDelegate> network_delegate( |
| 1029 new ChromeNetworkDelegate( | 1030 new ChromeNetworkDelegate( |
| 1030 #if defined(ENABLE_EXTENSIONS) | 1031 #if BUILDFLAG(ENABLE_EXTENSIONS) |
| 1031 io_thread_globals->extension_event_router_forwarder.get(), | 1032 io_thread_globals->extension_event_router_forwarder.get(), |
| 1032 #else | 1033 #else |
| 1033 NULL, | 1034 NULL, |
| 1034 #endif | 1035 #endif |
| 1035 &enable_referrers_, io_thread->GetMetricsDataUseForwarder())); | 1036 &enable_referrers_, io_thread->GetMetricsDataUseForwarder())); |
| 1036 #if defined(ENABLE_EXTENSIONS) | 1037 #if BUILDFLAG(ENABLE_EXTENSIONS) |
| 1037 network_delegate->set_extension_info_map( | 1038 network_delegate->set_extension_info_map( |
| 1038 profile_params_->extension_info_map.get()); | 1039 profile_params_->extension_info_map.get()); |
| 1039 if (!command_line.HasSwitch(switches::kDisableExtensionsHttpThrottling)) { | 1040 if (!command_line.HasSwitch(switches::kDisableExtensionsHttpThrottling)) { |
| 1040 extension_throttle_manager_.reset( | 1041 extension_throttle_manager_.reset( |
| 1041 new extensions::ExtensionThrottleManager()); | 1042 new extensions::ExtensionThrottleManager()); |
| 1042 } | 1043 } |
| 1043 #endif | 1044 #endif |
| 1044 | 1045 |
| 1045 network_delegate->set_url_blacklist_manager(url_blacklist_manager_.get()); | 1046 network_delegate->set_url_blacklist_manager(url_blacklist_manager_.get()); |
| 1046 network_delegate->set_profile(profile_params_->profile); | 1047 network_delegate->set_profile(profile_params_->profile); |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1080 expect_ct_reporter_.reset( | 1081 expect_ct_reporter_.reset( |
| 1081 new ChromeExpectCTReporter(main_request_context_.get())); | 1082 new ChromeExpectCTReporter(main_request_context_.get())); |
| 1082 transport_security_state_->SetExpectCTReporter(expect_ct_reporter_.get()); | 1083 transport_security_state_->SetExpectCTReporter(expect_ct_reporter_.get()); |
| 1083 | 1084 |
| 1084 transport_security_state_->SetRequireCTDelegate( | 1085 transport_security_state_->SetRequireCTDelegate( |
| 1085 ct_policy_manager_->GetDelegate()); | 1086 ct_policy_manager_->GetDelegate()); |
| 1086 | 1087 |
| 1087 // Take ownership over these parameters. | 1088 // Take ownership over these parameters. |
| 1088 cookie_settings_ = profile_params_->cookie_settings; | 1089 cookie_settings_ = profile_params_->cookie_settings; |
| 1089 host_content_settings_map_ = profile_params_->host_content_settings_map; | 1090 host_content_settings_map_ = profile_params_->host_content_settings_map; |
| 1090 #if defined(ENABLE_EXTENSIONS) | 1091 #if BUILDFLAG(ENABLE_EXTENSIONS) |
| 1091 extension_info_map_ = profile_params_->extension_info_map; | 1092 extension_info_map_ = profile_params_->extension_info_map; |
| 1092 #endif | 1093 #endif |
| 1093 | 1094 |
| 1094 resource_context_->host_resolver_ = io_thread_globals->host_resolver.get(); | 1095 resource_context_->host_resolver_ = io_thread_globals->host_resolver.get(); |
| 1095 resource_context_->request_context_ = main_request_context_.get(); | 1096 resource_context_->request_context_ = main_request_context_.get(); |
| 1096 | 1097 |
| 1097 if (profile_params_->resource_prefetch_predictor_observer_) { | 1098 if (profile_params_->resource_prefetch_predictor_observer_) { |
| 1098 resource_prefetch_predictor_observer_.reset( | 1099 resource_prefetch_predictor_observer_.reset( |
| 1099 profile_params_->resource_prefetch_predictor_observer_.release()); | 1100 profile_params_->resource_prefetch_predictor_observer_.release()); |
| 1100 } | 1101 } |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1182 // NOTE(willchan): Keep these protocol handlers in sync with | 1183 // NOTE(willchan): Keep these protocol handlers in sync with |
| 1183 // ProfileIOData::IsHandledProtocol(). | 1184 // ProfileIOData::IsHandledProtocol(). |
| 1184 bool set_protocol = job_factory->SetProtocolHandler( | 1185 bool set_protocol = job_factory->SetProtocolHandler( |
| 1185 url::kFileScheme, | 1186 url::kFileScheme, |
| 1186 base::MakeUnique<net::FileProtocolHandler>( | 1187 base::MakeUnique<net::FileProtocolHandler>( |
| 1187 content::BrowserThread::GetBlockingPool() | 1188 content::BrowserThread::GetBlockingPool() |
| 1188 ->GetTaskRunnerWithShutdownBehavior( | 1189 ->GetTaskRunnerWithShutdownBehavior( |
| 1189 base::SequencedWorkerPool::SKIP_ON_SHUTDOWN))); | 1190 base::SequencedWorkerPool::SKIP_ON_SHUTDOWN))); |
| 1190 DCHECK(set_protocol); | 1191 DCHECK(set_protocol); |
| 1191 | 1192 |
| 1192 #if defined(ENABLE_EXTENSIONS) | 1193 #if BUILDFLAG(ENABLE_EXTENSIONS) |
| 1193 DCHECK(extension_info_map_.get()); | 1194 DCHECK(extension_info_map_.get()); |
| 1194 // Check only for incognito (and not Chrome OS guest mode GUEST_PROFILE). | 1195 // Check only for incognito (and not Chrome OS guest mode GUEST_PROFILE). |
| 1195 bool is_incognito = profile_type() == Profile::INCOGNITO_PROFILE; | 1196 bool is_incognito = profile_type() == Profile::INCOGNITO_PROFILE; |
| 1196 set_protocol = job_factory->SetProtocolHandler( | 1197 set_protocol = job_factory->SetProtocolHandler( |
| 1197 extensions::kExtensionScheme, | 1198 extensions::kExtensionScheme, |
| 1198 extensions::CreateExtensionProtocolHandler(is_incognito, | 1199 extensions::CreateExtensionProtocolHandler(is_incognito, |
| 1199 extension_info_map_.get())); | 1200 extension_info_map_.get())); |
| 1200 DCHECK(set_protocol); | 1201 DCHECK(set_protocol); |
| 1201 set_protocol = job_factory->SetProtocolHandler( | 1202 set_protocol = job_factory->SetProtocolHandler( |
| 1202 extensions::kExtensionResourceScheme, | 1203 extensions::kExtensionResourceScheme, |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1354 void ProfileIOData::SetCookieSettingsForTesting( | 1355 void ProfileIOData::SetCookieSettingsForTesting( |
| 1355 content_settings::CookieSettings* cookie_settings) { | 1356 content_settings::CookieSettings* cookie_settings) { |
| 1356 DCHECK(!cookie_settings_.get()); | 1357 DCHECK(!cookie_settings_.get()); |
| 1357 cookie_settings_ = cookie_settings; | 1358 cookie_settings_ = cookie_settings; |
| 1358 } | 1359 } |
| 1359 | 1360 |
| 1360 policy::URLBlacklist::URLBlacklistState ProfileIOData::GetURLBlacklistState( | 1361 policy::URLBlacklist::URLBlacklistState ProfileIOData::GetURLBlacklistState( |
| 1361 const GURL& url) const { | 1362 const GURL& url) const { |
| 1362 return url_blacklist_manager_->GetURLBlacklistState(url); | 1363 return url_blacklist_manager_->GetURLBlacklistState(url); |
| 1363 } | 1364 } |
| OLD | NEW |