| Index: chrome/browser/io_thread.cc
|
| diff --git a/chrome/browser/io_thread.cc b/chrome/browser/io_thread.cc
|
| index b8b3c9000033954a6e31e17ec8dee9cba1930b1b..08ed80c0562ac423e339c5c43af3ed34bd55f5b2 100644
|
| --- a/chrome/browser/io_thread.cc
|
| +++ b/chrome/browser/io_thread.cc
|
| @@ -116,12 +116,12 @@ class SystemURLRequestContext : public URLRequestContextWithUserAgent {
|
| }
|
| };
|
|
|
| -net::HostResolver* CreateGlobalHostResolver(net::NetLog* net_log) {
|
| +scoped_ptr<net::HostResolver> CreateGlobalHostResolver(net::NetLog* net_log) {
|
| const CommandLine& command_line = *CommandLine::ForCurrentProcess();
|
|
|
| bool allow_async_dns_field_trial = true;
|
|
|
| - size_t parallelism = net::HostResolver::kDefaultParallelism;
|
| + net::HostResolver::Options options;
|
|
|
| // Use the concurrency override from the command-line, if any.
|
| if (command_line.HasSwitch(switches::kHostResolverParallelism)) {
|
| @@ -132,14 +132,12 @@ net::HostResolver* CreateGlobalHostResolver(net::NetLog* net_log) {
|
| // Parse the switch (it should be a positive integer formatted as decimal).
|
| int n;
|
| if (base::StringToInt(s, &n) && n > 0) {
|
| - parallelism = static_cast<size_t>(n);
|
| + options.max_concurrent_resolves = static_cast<size_t>(n);
|
| } else {
|
| LOG(ERROR) << "Invalid switch for host resolver parallelism: " << s;
|
| }
|
| }
|
|
|
| - size_t retry_attempts = net::HostResolver::kDefaultRetryAttempts;
|
| -
|
| // Use the retry attempts override from the command-line, if any.
|
| if (command_line.HasSwitch(switches::kHostResolverRetryAttempts)) {
|
| allow_async_dns_field_trial = false;
|
| @@ -148,32 +146,25 @@ net::HostResolver* CreateGlobalHostResolver(net::NetLog* net_log) {
|
| // Parse the switch (it should be a non-negative integer).
|
| int n;
|
| if (base::StringToInt(s, &n) && n >= 0) {
|
| - retry_attempts = static_cast<size_t>(n);
|
| + options.max_retry_attempts = static_cast<size_t>(n);
|
| } else {
|
| LOG(ERROR) << "Invalid switch for host resolver retry attempts: " << s;
|
| }
|
| }
|
|
|
| - net::HostResolver* global_host_resolver = NULL;
|
| - bool use_async = false;
|
| if (command_line.HasSwitch(switches::kEnableAsyncDns)) {
|
| allow_async_dns_field_trial = false;
|
| - use_async = true;
|
| + options.enable_async = true;
|
| } else if (command_line.HasSwitch(switches::kDisableAsyncDns)) {
|
| allow_async_dns_field_trial = false;
|
| - use_async = false;
|
| + options.enable_async = false;
|
| }
|
|
|
| if (allow_async_dns_field_trial)
|
| - use_async = chrome_browser_net::ConfigureAsyncDnsFieldTrial();
|
| -
|
| - if (use_async) {
|
| - global_host_resolver =
|
| - net::CreateAsyncHostResolver(parallelism, retry_attempts, net_log);
|
| - } else {
|
| - global_host_resolver =
|
| - net::CreateSystemHostResolver(parallelism, retry_attempts, net_log);
|
| - }
|
| + options.enable_async = chrome_browser_net::ConfigureAsyncDnsFieldTrial();
|
| +
|
| + scoped_ptr<net::HostResolver> global_host_resolver(
|
| + net::HostResolver::CreateSystemResolver(options, net_log));
|
|
|
| // Determine if we should disable IPv6 support.
|
| if (!command_line.HasSwitch(switches::kEnableIPv6)) {
|
| @@ -188,13 +179,13 @@ net::HostResolver* CreateGlobalHostResolver(net::NetLog* net_log) {
|
| // rules on top of the real host resolver. This allows forwarding all requests
|
| // through a designated test server.
|
| if (!command_line.HasSwitch(switches::kHostResolverRules))
|
| - return global_host_resolver;
|
| + return global_host_resolver.PassAs<net::HostResolver>();
|
|
|
| - net::MappedHostResolver* remapped_resolver =
|
| - new net::MappedHostResolver(global_host_resolver);
|
| + scoped_ptr<net::MappedHostResolver> remapped_resolver(
|
| + new net::MappedHostResolver(global_host_resolver.Pass()));
|
| remapped_resolver->SetRulesFromString(
|
| command_line.GetSwitchValueASCII(switches::kHostResolverRules));
|
| - return remapped_resolver;
|
| + return remapped_resolver.PassAs<net::HostResolver>();
|
| }
|
|
|
| // TODO(willchan): Remove proxy script fetcher context since it's not necessary
|
| @@ -446,8 +437,7 @@ void IOThread::Init() {
|
| if (command_line.HasSwitch(switches::kDisableExtensionsHttpThrottling))
|
| network_delegate->NeverThrottleRequests();
|
| globals_->system_network_delegate.reset(network_delegate);
|
| - globals_->host_resolver.reset(
|
| - CreateGlobalHostResolver(net_log_));
|
| + globals_->host_resolver = CreateGlobalHostResolver(net_log_);
|
| globals_->cert_verifier.reset(net::CertVerifier::CreateDefault());
|
| globals_->transport_security_state.reset(new net::TransportSecurityState());
|
| globals_->ssl_config_service = GetSSLConfigService();
|
|
|