Index: chrome/browser/io_thread.cc |
diff --git a/chrome/browser/io_thread.cc b/chrome/browser/io_thread.cc |
index 4e176a0a20b8ea2cfed40891716d204e63fe7196..175aac1b9c0703fde3df04debe650fd46b04ca4c 100644 |
--- a/chrome/browser/io_thread.cc |
+++ b/chrome/browser/io_thread.cc |
@@ -53,7 +53,6 @@ |
#include "net/http/http_auth_filter.h" |
#include "net/http/http_auth_handler_factory.h" |
#include "net/http/http_network_layer.h" |
-#include "net/http/http_network_session.h" |
#include "net/http/http_server_properties_impl.h" |
#include "net/proxy/proxy_config_service.h" |
#include "net/proxy/proxy_script_fetcher_impl.h" |
@@ -222,23 +221,14 @@ ConstructSystemRequestContext(IOThread::Globals* globals, |
return context; |
} |
-void InitializeNetworkSessionParams( |
- const IOThread::Globals& globals, |
- net::HttpNetworkSession::Params* params) { |
- params->host_resolver = globals.host_resolver.get(); |
- params->cert_verifier = globals.cert_verifier.get(); |
- params->server_bound_cert_service = |
- globals.system_server_bound_cert_service.get(); |
- params->transport_security_state = globals.transport_security_state.get(); |
- params->ssl_config_service = globals.ssl_config_service.get(); |
- params->http_auth_handler_factory = globals.http_auth_handler_factory.get(); |
- params->http_server_properties = globals.http_server_properties.get(); |
- params->network_delegate = globals.system_network_delegate.get(); |
- params->host_mapping_rules = globals.host_mapping_rules.get(); |
- params->ignore_certificate_errors = globals.ignore_certificate_errors; |
- params->http_pipelining_enabled = globals.http_pipelining_enabled; |
- params->testing_fixed_http_port = globals.testing_fixed_http_port; |
- params->testing_fixed_https_port = globals.testing_fixed_https_port; |
+int GetSwitchValueAsInt(const CommandLine& command_line, |
+ const std::string& switch_name) { |
+ int value; |
+ if (!base::StringToInt(command_line.GetSwitchValueASCII(switch_name), |
+ &value)) { |
+ return 0; |
+ } |
+ return value; |
} |
} // namespace |
@@ -498,30 +488,22 @@ void IOThread::Init() { |
if (command_line.HasSwitch(switches::kEnableHttpPipelining)) |
globals_->http_pipelining_enabled = true; |
if (command_line.HasSwitch(switches::kTestingFixedHttpPort)) { |
- int value; |
- base::StringToInt( |
- command_line.GetSwitchValueASCII( |
- switches::kTestingFixedHttpPort), |
- &value); |
- globals_->testing_fixed_http_port = value; |
+ globals_->testing_fixed_http_port = |
+ GetSwitchValueAsInt(command_line, switches::kTestingFixedHttpPort); |
} |
if (command_line.HasSwitch(switches::kTestingFixedHttpsPort)) { |
- int value; |
- base::StringToInt( |
- command_line.GetSwitchValueASCII( |
- switches::kTestingFixedHttpsPort), |
- &value); |
- globals_->testing_fixed_https_port = value; |
+ globals_->testing_fixed_https_port = |
+ GetSwitchValueAsInt(command_line, switches::kTestingFixedHttpsPort); |
} |
+ InitializeNetworkOptions(command_line); |
+ |
net::HttpNetworkSession::Params session_params; |
- InitializeNetworkSessionParams(*globals_, &session_params); |
+ InitializeNetworkSessionParams(&session_params); |
session_params.net_log = net_log_; |
session_params.proxy_service = |
globals_->proxy_script_fetcher_proxy_service.get(); |
- InitializeNetworkOptions(command_line); |
- |
scoped_refptr<net::HttpNetworkSession> network_session( |
new net::HttpNetworkSession(session_params)); |
globals_->proxy_script_fetcher_http_transaction_factory.reset( |
@@ -594,9 +576,8 @@ void IOThread::CleanUp() { |
base::debug::LeakTracker<SystemURLRequestContextGetter>::CheckForLeaks(); |
} |
-void IOThread::InitializeNetworkOptions( |
- const CommandLine& parsed_command_line) { |
- if (parsed_command_line.HasSwitch(switches::kEnableFileCookies)) { |
+void IOThread::InitializeNetworkOptions(const CommandLine& command_line) { |
+ if (command_line.HasSwitch(switches::kEnableFileCookies)) { |
// Enable cookie storage for file:// URLs. Must do this before the first |
// Profile (and therefore the first CookieMonster) is created. |
net::CookieMonster::EnableFileScheme(); |
@@ -607,42 +588,42 @@ void IOThread::InitializeNetworkOptions( |
if (is_spdy_disabled_by_policy_) |
return; |
- if (parsed_command_line.HasSwitch(switches::kEnableIPPooling)) |
- net::SpdySessionPool::enable_ip_pooling(true); |
- |
- if (parsed_command_line.HasSwitch(switches::kDisableIPPooling)) |
- net::SpdySessionPool::enable_ip_pooling(false); |
- |
- if (parsed_command_line.HasSwitch(switches::kEnableSpdyCredentialFrames)) |
- net::SpdySession::set_enable_credential_frames(true); |
- if (parsed_command_line.HasSwitch(switches::kMaxSpdySessionsPerDomain)) { |
- int value; |
- base::StringToInt( |
- parsed_command_line.GetSwitchValueASCII( |
- switches::kMaxSpdySessionsPerDomain), |
- &value); |
- net::SpdySessionPool::set_max_sessions_per_domain(value); |
- } |
+ if (command_line.HasSwitch(switches::kEnableIPPooling)) |
+ globals_->enable_spdy_ip_pooling.set(true); |
- if (parsed_command_line.HasSwitch(switches::kEnableWebSocketOverSpdy)) { |
+ if (command_line.HasSwitch(switches::kDisableIPPooling)) |
+ globals_->enable_spdy_ip_pooling.set(false); |
+ |
+ if (command_line.HasSwitch(switches::kEnableSpdyCredentialFrames)) |
+ globals_->enable_spdy_credential_frames.set(true); |
+ |
+ if (command_line.HasSwitch(switches::kEnableWebSocketOverSpdy)) { |
// Enable WebSocket over SPDY. |
net::WebSocketJob::set_websocket_over_spdy_enabled(true); |
} |
+ if (command_line.HasSwitch(switches::kMaxSpdySessionsPerDomain)) { |
+ globals_->max_spdy_sessions_per_domain.set( |
+ GetSwitchValueAsInt(command_line, switches::kMaxSpdySessionsPerDomain)); |
+ } |
+ if (command_line.HasSwitch(switches::kMaxSpdyConcurrentStreams)) { |
+ globals_->max_spdy_concurrent_streams_limit.set( |
+ GetSwitchValueAsInt(command_line, switches::kMaxSpdyConcurrentStreams)); |
+ } |
bool used_spdy_switch = false; |
- if (parsed_command_line.HasSwitch(switches::kUseSpdy)) { |
+ if (command_line.HasSwitch(switches::kUseSpdy)) { |
std::string spdy_mode = |
- parsed_command_line.GetSwitchValueASCII(switches::kUseSpdy); |
+ command_line.GetSwitchValueASCII(switches::kUseSpdy); |
EnableSpdy(spdy_mode); |
used_spdy_switch = true; |
} |
- if (parsed_command_line.HasSwitch(switches::kEnableSpdy3)) { |
+ if (command_line.HasSwitch(switches::kEnableSpdy3)) { |
net::HttpStreamFactory::EnableNpnSpdy3(); |
used_spdy_switch = true; |
- } else if (parsed_command_line.HasSwitch(switches::kEnableNpn)) { |
+ } else if (command_line.HasSwitch(switches::kEnableNpn)) { |
net::HttpStreamFactory::EnableNpnSpdy(); |
used_spdy_switch = true; |
- } else if (parsed_command_line.HasSwitch(switches::kEnableNpnHttpOnly)) { |
+ } else if (command_line.HasSwitch(switches::kEnableNpnHttpOnly)) { |
net::HttpStreamFactory::EnableNpnHttpOnly(); |
used_spdy_switch = true; |
} |
@@ -678,19 +659,19 @@ void IOThread::EnableSpdy(const std::string& mode) { |
if (option == kOff) { |
net::HttpStreamFactory::set_spdy_enabled(false); |
} else if (option == kDisableSSL) { |
- net::SpdySession::set_default_protocol(net::kProtoSPDY2); |
+ globals_->spdy_default_protocol.set(net::kProtoSPDY2); |
net::HttpStreamFactory::set_force_spdy_over_ssl(false); |
net::HttpStreamFactory::set_force_spdy_always(true); |
} else if (option == kSSL) { |
- net::SpdySession::set_default_protocol(net::kProtoSPDY2); |
+ globals_->spdy_default_protocol.set(net::kProtoSPDY2); |
net::HttpStreamFactory::set_force_spdy_over_ssl(true); |
net::HttpStreamFactory::set_force_spdy_always(true); |
} else if (option == kDisablePing) { |
- net::SpdySession::set_enable_ping_based_connection_checking(false); |
+ globals_->enable_spdy_ping_based_connection_checking.set(false); |
} else if (option == kExclude) { |
net::HttpStreamFactory::add_forced_spdy_exclusion(value); |
} else if (option == kDisableCompression) { |
- net::BufferedSpdyFramer::set_enable_compression_default(false); |
+ globals_->enable_spdy_compression.set(false); |
} else if (option == kDisableAltProtocols) { |
net::HttpStreamFactory::set_use_alternate_protocols(false); |
} else if (option == kForceAltProtocols) { |
@@ -700,11 +681,11 @@ void IOThread::EnableSpdy(const std::string& mode) { |
net::HttpServerPropertiesImpl::ForceAlternateProtocol(pair); |
} else if (option == kSingleDomain) { |
DLOG(INFO) << "FORCING SINGLE DOMAIN"; |
- net::SpdySessionPool::ForceSingleDomain(); |
+ globals_->force_spdy_single_domain.set(true); |
} else if (option == kInitialMaxConcurrentStreams) { |
int streams; |
- if (base::StringToInt(value, &streams) && streams > 0) |
- net::SpdySession::set_init_max_concurrent_streams(streams); |
+ if (base::StringToInt(value, &streams)) |
+ globals_->initial_max_spdy_concurrent_streams.set(streams); |
} else if (option.empty() && it == spdy_options.begin()) { |
continue; |
} else { |
@@ -781,6 +762,43 @@ void IOThread::ClearHostCache() { |
host_cache->clear(); |
} |
+void IOThread::InitializeNetworkSessionParams( |
willchan no longer on Chromium
2012/12/03 23:43:43
Please move this to be a member of IOThread::Globa
Ryan Hamilton
2012/12/04 00:06:04
I had it as a method on Globals initially until sl
willchan no longer on Chromium
2012/12/04 00:37:00
I was too lazy to re-read, but IOThread used to in
|
+ net::HttpNetworkSession::Params* params) { |
+ params->host_resolver = globals_->host_resolver.get(); |
+ params->cert_verifier = globals_->cert_verifier.get(); |
+ params->server_bound_cert_service = |
+ globals_->system_server_bound_cert_service.get(); |
+ params->transport_security_state = globals_->transport_security_state.get(); |
+ params->ssl_config_service = globals_->ssl_config_service.get(); |
+ params->http_auth_handler_factory = globals_->http_auth_handler_factory.get(); |
+ params->http_server_properties = globals_->http_server_properties.get(); |
+ params->network_delegate = globals_->system_network_delegate.get(); |
+ params->host_mapping_rules = globals_->host_mapping_rules.get(); |
+ params->ignore_certificate_errors = globals_->ignore_certificate_errors; |
+ params->http_pipelining_enabled = globals_->http_pipelining_enabled; |
+ params->testing_fixed_http_port = globals_->testing_fixed_http_port; |
+ params->testing_fixed_https_port = globals_->testing_fixed_https_port; |
+ |
+ globals_->max_spdy_sessions_per_domain.CopyToIfSet( |
+ ¶ms->max_spdy_sessions_per_domain); |
+ globals_->initial_max_spdy_concurrent_streams.CopyToIfSet( |
+ ¶ms->spdy_initial_max_concurrent_streams); |
+ globals_->max_spdy_concurrent_streams_limit.CopyToIfSet( |
+ ¶ms->spdy_max_concurrent_streams_limit); |
+ globals_->force_spdy_single_domain.CopyToIfSet( |
+ ¶ms->force_spdy_single_domain); |
+ globals_->enable_spdy_ip_pooling.CopyToIfSet( |
+ ¶ms->enable_spdy_ip_pooling); |
+ globals_->enable_spdy_credential_frames.CopyToIfSet( |
+ ¶ms->enable_spdy_credential_frames); |
+ globals_->enable_spdy_compression.CopyToIfSet( |
+ ¶ms->enable_spdy_compression); |
+ globals_->enable_spdy_ping_based_connection_checking.CopyToIfSet( |
+ ¶ms->enable_spdy_ping_based_connection_checking); |
+ globals_->spdy_default_protocol.CopyToIfSet( |
+ ¶ms->spdy_default_protocol); |
+} |
+ |
net::SSLConfigService* IOThread::GetSSLConfigService() { |
return ssl_config_service_manager_->Get(); |
} |
@@ -832,7 +850,7 @@ void IOThread::InitSystemRequestContextOnIOThread() { |
command_line)); |
net::HttpNetworkSession::Params system_params; |
- InitializeNetworkSessionParams(*globals_, &system_params); |
+ InitializeNetworkSessionParams(&system_params); |
system_params.net_log = net_log_; |
system_params.proxy_service = globals_->system_proxy_service.get(); |