| Index: chrome/browser/io_thread.cc
|
| diff --git a/chrome/browser/io_thread.cc b/chrome/browser/io_thread.cc
|
| index 12463d42d27415cbd17305b7d799028c3699fe6b..9a941068421bde291351efa486939dfaa7a84668 100644
|
| --- a/chrome/browser/io_thread.cc
|
| +++ b/chrome/browser/io_thread.cc
|
| @@ -644,9 +644,6 @@ void IOThread::Init() {
|
|
|
| CreateDefaultAuthHandlerFactory();
|
| globals_->http_server_properties.reset(new net::HttpServerPropertiesImpl());
|
| - // For the ProxyScriptFetcher, we use a direct ProxyService.
|
| - globals_->proxy_script_fetcher_proxy_service =
|
| - net::ProxyService::CreateDirectWithNetLog(net_log_);
|
| globals_->dns_probe_service.reset(new chrome_browser_net::DnsProbeService());
|
| globals_->host_mapping_rules.reset(new net::HostMappingRules());
|
| if (command_line.HasSwitch(switches::kHostRules)) {
|
| @@ -715,6 +712,9 @@ void IOThread::CleanUp() {
|
| ct_tree_tracker_.reset();
|
| }
|
|
|
| + if (globals_->system_request_context)
|
| + globals_->system_request_context->proxy_service()->OnShutdown();
|
| +
|
| // Release objects that the net::URLRequestContext could have been pointing
|
| // to.
|
|
|
| @@ -822,9 +822,6 @@ void IOThread::DisableQuic() {
|
| if (globals_->system_request_context_storage)
|
| globals_->system_request_context_storage->http_network_session()
|
| ->DisableQuic();
|
| -
|
| - if (globals_->proxy_script_fetcher_http_network_session)
|
| - globals_->proxy_script_fetcher_http_network_session->DisableQuic();
|
| }
|
|
|
| base::TimeTicks IOThread::creation_time() const {
|
| @@ -907,18 +904,10 @@ void IOThread::ConstructSystemRequestContext() {
|
| globals_->cert_transparency_verifier.get());
|
| context->set_ct_policy_enforcer(globals_->ct_policy_enforcer.get());
|
|
|
| - TRACE_EVENT_BEGIN0("startup",
|
| - "IOThread::Init:ProxyScriptFetcherRequestContext");
|
| - globals_->proxy_script_fetcher_context.reset(
|
| - ConstructProxyScriptFetcherContext(globals_, params_, net_log_));
|
| - TRACE_EVENT_END0("startup",
|
| - "IOThread::Init:ProxyScriptFetcherRequestContext");
|
| -
|
| const base::CommandLine& command_line =
|
| *base::CommandLine::ForCurrentProcess();
|
| context_storage->set_proxy_service(ProxyServiceFactory::CreateProxyService(
|
| - net_log_, globals_->proxy_script_fetcher_context.get(),
|
| - globals_->system_network_delegate.get(),
|
| + net_log_, context, globals_->system_network_delegate.get(),
|
| std::move(system_proxy_config_service_), command_line,
|
| WpadQuickCheckEnabled(), PacHttpsUrlStrippingEnabled()));
|
|
|
| @@ -932,8 +921,24 @@ void IOThread::ConstructSystemRequestContext() {
|
| base::MakeUnique<net::HttpNetworkLayer>(
|
| context_storage->http_network_session()));
|
|
|
| - context_storage->set_job_factory(
|
| - base::MakeUnique<net::URLRequestJobFactoryImpl>());
|
| + std::unique_ptr<net::URLRequestJobFactoryImpl> job_factory(
|
| + new net::URLRequestJobFactoryImpl());
|
| +
|
| + job_factory->SetProtocolHandler(url::kDataScheme,
|
| + base::MakeUnique<net::DataProtocolHandler>());
|
| + job_factory->SetProtocolHandler(
|
| + url::kFileScheme,
|
| + base::MakeUnique<net::FileProtocolHandler>(
|
| + base::CreateTaskRunnerWithTraits(
|
| + {base::MayBlock(), base::TaskPriority::USER_VISIBLE,
|
| + base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN})));
|
| +#if !BUILDFLAG(DISABLE_FTP_SUPPORT)
|
| + job_factory->SetProtocolHandler(
|
| + url::kFtpScheme,
|
| + net::FtpProtocolHandler::Create(globals_->host_resolver.get()));
|
| +#endif
|
| +
|
| + context_storage->set_job_factory(std::move(job_factory));
|
| }
|
|
|
| // static
|
| @@ -1030,79 +1035,6 @@ void IOThread::ConfigureParamsFromFieldTrialsAndCommandLine(
|
| http_09_on_non_default_ports_enabled;
|
| }
|
|
|
| -// static
|
| -net::URLRequestContext* IOThread::ConstructProxyScriptFetcherContext(
|
| - IOThread::Globals* globals,
|
| - const net::HttpNetworkSession::Params& params,
|
| - net::NetLog* net_log) {
|
| - net::URLRequestContext* context = new net::URLRequestContext;
|
| - context->set_net_log(net_log);
|
| - context->set_host_resolver(globals->host_resolver.get());
|
| - context->set_cert_verifier(globals->cert_verifier.get());
|
| - context->set_transport_security_state(
|
| - globals->transport_security_state.get());
|
| - context->set_cert_transparency_verifier(
|
| - globals->cert_transparency_verifier.get());
|
| - context->set_ct_policy_enforcer(globals->ct_policy_enforcer.get());
|
| - context->set_ssl_config_service(globals->ssl_config_service.get());
|
| - context->set_http_auth_handler_factory(
|
| - globals->http_auth_handler_factory.get());
|
| - context->set_proxy_service(globals->proxy_script_fetcher_proxy_service.get());
|
| -
|
| - context->set_job_factory(
|
| - globals->proxy_script_fetcher_url_request_job_factory.get());
|
| -
|
| - context->set_cookie_store(globals->system_request_context->cookie_store());
|
| - context->set_channel_id_service(
|
| - globals->system_request_context->channel_id_service());
|
| - context->set_network_delegate(globals->system_network_delegate.get());
|
| - context->set_http_user_agent_settings(
|
| - globals->http_user_agent_settings.get());
|
| - context->set_http_server_properties(globals->http_server_properties.get());
|
| -
|
| - context->set_enable_brotli(globals->enable_brotli);
|
| -
|
| - net::HttpNetworkSession::Params session_params(params);
|
| - net::URLRequestContextBuilder::SetHttpNetworkSessionComponents(
|
| - context, &session_params);
|
| -
|
| - globals->proxy_script_fetcher_http_network_session.reset(
|
| - new net::HttpNetworkSession(session_params));
|
| - globals->proxy_script_fetcher_http_transaction_factory.reset(
|
| - new net::HttpNetworkLayer(
|
| - globals->proxy_script_fetcher_http_network_session.get()));
|
| - context->set_name("proxy");
|
| - context->set_http_transaction_factory(
|
| - globals->proxy_script_fetcher_http_transaction_factory.get());
|
| -
|
| - std::unique_ptr<net::URLRequestJobFactoryImpl> job_factory(
|
| - new net::URLRequestJobFactoryImpl());
|
| -
|
| - job_factory->SetProtocolHandler(url::kDataScheme,
|
| - base::MakeUnique<net::DataProtocolHandler>());
|
| - job_factory->SetProtocolHandler(
|
| - url::kFileScheme,
|
| - base::MakeUnique<net::FileProtocolHandler>(
|
| - base::CreateTaskRunnerWithTraits(
|
| - {base::MayBlock(), base::TaskPriority::USER_VISIBLE,
|
| - base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN})));
|
| -#if !BUILDFLAG(DISABLE_FTP_SUPPORT)
|
| - job_factory->SetProtocolHandler(
|
| - url::kFtpScheme,
|
| - net::FtpProtocolHandler::Create(globals->host_resolver.get()));
|
| -#endif
|
| - globals->proxy_script_fetcher_url_request_job_factory =
|
| - std::move(job_factory);
|
| -
|
| - context->set_job_factory(
|
| - globals->proxy_script_fetcher_url_request_job_factory.get());
|
| -
|
| - // TODO(rtenneti): We should probably use HttpServerPropertiesManager for the
|
| - // system URLRequestContext too. There's no reason this should be tied to a
|
| - // profile.
|
| - return context;
|
| -}
|
| -
|
| metrics::UpdateUsagePrefCallbackType IOThread::GetMetricsDataUseForwarder() {
|
| return base::Bind(&UpdateMetricsUsagePrefsOnUIThread);
|
| }
|
|
|