summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/http/http_network_transaction_spdy2_unittest.cc8
-rw-r--r--net/http/http_network_transaction_spdy3_unittest.cc8
-rw-r--r--net/http/http_proxy_client_socket_pool_spdy2_unittest.cc5
-rw-r--r--net/http/http_proxy_client_socket_pool_spdy3_unittest.cc5
-rw-r--r--net/spdy/spdy_session.cc26
-rw-r--r--net/spdy/spdy_session.h7
-rw-r--r--net/spdy/spdy_session_pool.cc3
-rw-r--r--net/spdy/spdy_session_pool.h2
-rw-r--r--net/spdy/spdy_session_spdy2_unittest.cc62
-rw-r--r--net/spdy/spdy_session_spdy3_unittest.cc9
-rw-r--r--net/spdy/spdy_test_util_spdy2.cc12
-rw-r--r--net/spdy/spdy_test_util_spdy2.h4
-rw-r--r--net/spdy/spdy_test_util_spdy3.cc12
-rw-r--r--net/spdy/spdy_test_util_spdy3.h4
14 files changed, 146 insertions, 21 deletions
diff --git a/net/http/http_network_transaction_spdy2_unittest.cc b/net/http/http_network_transaction_spdy2_unittest.cc
index 838c54f..eb3a80f 100644
--- a/net/http/http_network_transaction_spdy2_unittest.cc
+++ b/net/http/http_network_transaction_spdy2_unittest.cc
@@ -179,7 +179,10 @@ HttpNetworkSession* CreateSession(SessionDependencies* session_deps) {
params.http_server_properties = &session_deps->http_server_properties;
params.net_log = session_deps->net_log;
params.trusted_spdy_proxy = session_deps->trusted_spdy_proxy;
- return new HttpNetworkSession(params);
+ HttpNetworkSession* http_session = new HttpNetworkSession(params);
+ SpdySessionPoolPeer pool_peer(http_session->spdy_session_pool());
+ pool_peer.EnableSendingInitialSettings(false);
+ return http_session;
}
} // namespace
@@ -9424,6 +9427,7 @@ TEST_F(HttpNetworkTransactionSpdy2Test, MAYBE_UseIPConnectionPooling) {
scoped_refptr<HttpNetworkSession> session(new HttpNetworkSession(params));
SpdySessionPoolPeer pool_peer(session->spdy_session_pool());
pool_peer.DisableDomainAuthenticationVerification();
+ pool_peer.EnableSendingInitialSettings(false);
SSLSocketDataProvider ssl(ASYNC, OK);
ssl.SetNextProto(kProtoSPDY2);
@@ -9534,6 +9538,7 @@ TEST_F(HttpNetworkTransactionSpdy2Test, UseIPConnectionPoolingAfterResolution) {
scoped_refptr<HttpNetworkSession> session(new HttpNetworkSession(params));
SpdySessionPoolPeer pool_peer(session->spdy_session_pool());
pool_peer.DisableDomainAuthenticationVerification();
+ pool_peer.EnableSendingInitialSettings(false);
SSLSocketDataProvider ssl(ASYNC, OK);
ssl.SetNextProto(kProtoSPDY2);
@@ -9680,6 +9685,7 @@ TEST_F(HttpNetworkTransactionSpdy2Test,
scoped_refptr<HttpNetworkSession> session(new HttpNetworkSession(params));
SpdySessionPoolPeer pool_peer(session->spdy_session_pool());
pool_peer.DisableDomainAuthenticationVerification();
+ pool_peer.EnableSendingInitialSettings(false);
SSLSocketDataProvider ssl(ASYNC, OK);
ssl.SetNextProto(kProtoSPDY2);
diff --git a/net/http/http_network_transaction_spdy3_unittest.cc b/net/http/http_network_transaction_spdy3_unittest.cc
index 84bd7d3..36f0b2b 100644
--- a/net/http/http_network_transaction_spdy3_unittest.cc
+++ b/net/http/http_network_transaction_spdy3_unittest.cc
@@ -164,7 +164,10 @@ HttpNetworkSession* CreateSession(SessionDependencies* session_deps) {
params.http_server_properties = &session_deps->http_server_properties;
params.net_log = session_deps->net_log;
params.trusted_spdy_proxy = session_deps->trusted_spdy_proxy;
- return new HttpNetworkSession(params);
+ HttpNetworkSession* http_session = new HttpNetworkSession(params);
+ SpdySessionPoolPeer pool_peer(http_session->spdy_session_pool());
+ pool_peer.EnableSendingInitialSettings(false);
+ return http_session;
}
// Takes in a Value created from a NetLogHttpResponseParameter, and returns
@@ -9416,6 +9419,7 @@ TEST_F(HttpNetworkTransactionSpdy3Test, UseIPConnectionPooling) {
scoped_refptr<HttpNetworkSession> session(new HttpNetworkSession(params));
SpdySessionPoolPeer pool_peer(session->spdy_session_pool());
pool_peer.DisableDomainAuthenticationVerification();
+ pool_peer.EnableSendingInitialSettings(false);
SSLSocketDataProvider ssl(ASYNC, OK);
ssl.SetNextProto(kProtoSPDY3);
@@ -9525,6 +9529,7 @@ TEST_F(HttpNetworkTransactionSpdy3Test, UseIPConnectionPoolingAfterResolution) {
scoped_refptr<HttpNetworkSession> session(new HttpNetworkSession(params));
SpdySessionPoolPeer pool_peer(session->spdy_session_pool());
pool_peer.DisableDomainAuthenticationVerification();
+ pool_peer.EnableSendingInitialSettings(false);
SSLSocketDataProvider ssl(ASYNC, OK);
ssl.SetNextProto(kProtoSPDY3);
@@ -9665,6 +9670,7 @@ TEST_F(HttpNetworkTransactionSpdy3Test,
scoped_refptr<HttpNetworkSession> session(new HttpNetworkSession(params));
SpdySessionPoolPeer pool_peer(session->spdy_session_pool());
pool_peer.DisableDomainAuthenticationVerification();
+ pool_peer.EnableSendingInitialSettings(false);
SSLSocketDataProvider ssl(ASYNC, OK);
ssl.SetNextProto(kProtoSPDY3);
diff --git a/net/http/http_proxy_client_socket_pool_spdy2_unittest.cc b/net/http/http_proxy_client_socket_pool_spdy2_unittest.cc
index 5f7a8e0..6bd4ce7 100644
--- a/net/http/http_proxy_client_socket_pool_spdy2_unittest.cc
+++ b/net/http/http_proxy_client_socket_pool_spdy2_unittest.cc
@@ -189,7 +189,10 @@ class HttpProxyClientSocketPoolSpdy2Test : public TestWithHttpParam {
params.ssl_config_service = ssl_config_service_;
params.http_auth_handler_factory = http_auth_handler_factory_.get();
params.http_server_properties = &http_server_properties_;
- return new HttpNetworkSession(params);
+ HttpNetworkSession* session = new HttpNetworkSession(params);
+ SpdySessionPoolPeer pool_peer(session->spdy_session_pool());
+ pool_peer.EnableSendingInitialSettings(false);
+ return session;
}
private:
diff --git a/net/http/http_proxy_client_socket_pool_spdy3_unittest.cc b/net/http/http_proxy_client_socket_pool_spdy3_unittest.cc
index bc0c62a..9d13298 100644
--- a/net/http/http_proxy_client_socket_pool_spdy3_unittest.cc
+++ b/net/http/http_proxy_client_socket_pool_spdy3_unittest.cc
@@ -189,7 +189,10 @@ class HttpProxyClientSocketPoolSpdy3Test : public TestWithHttpParam {
params.ssl_config_service = ssl_config_service_;
params.http_auth_handler_factory = http_auth_handler_factory_.get();
params.http_server_properties = &http_server_properties_;
- return new HttpNetworkSession(params);
+ HttpNetworkSession* session = new HttpNetworkSession(params);
+ SpdySessionPoolPeer pool_peer(session->spdy_session_pool());
+ pool_peer.EnableSendingInitialSettings(false);
+ return session;
}
private:
diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc
index 9610c75..88474b3 100644
--- a/net/spdy/spdy_session.cc
+++ b/net/spdy/spdy_session.cc
@@ -189,11 +189,6 @@ void SpdySession::set_max_concurrent_streams(size_t value) {
}
// static
-void SpdySession::set_default_initial_recv_window_size(size_t value) {
- g_default_initial_rcv_window_size = value;
-}
-
-// static
void SpdySession::set_enable_ping_based_connection_checking(bool enable) {
g_enable_ping_based_connection_checking = enable;
}
@@ -205,6 +200,11 @@ void SpdySession::set_init_max_concurrent_streams(size_t value) {
}
// static
+void SpdySession::set_default_initial_recv_window_size(size_t value) {
+ g_default_initial_rcv_window_size = value;
+}
+
+// static
void SpdySession::ResetStaticSettingsToInit() {
// WARNING: These must match the initializers above.
g_default_protocol = kProtoUnknown;
@@ -218,6 +218,7 @@ SpdySession::SpdySession(const HostPortProxyPair& host_port_proxy_pair,
SpdySessionPool* spdy_session_pool,
HttpServerProperties* http_server_properties,
bool verify_domain_authentication,
+ bool enable_sending_initial_settings,
const HostPortPair& trusted_spdy_proxy,
NetLog* net_log)
: ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)),
@@ -252,6 +253,7 @@ SpdySession::SpdySession(const HostPortProxyPair& host_port_proxy_pair,
initial_recv_window_size_(g_default_initial_rcv_window_size),
net_log_(BoundNetLog::Make(net_log, NetLog::SOURCE_SPDY_SESSION)),
verify_domain_authentication_(verify_domain_authentication),
+ enable_sending_initial_settings_(enable_sending_initial_settings),
credential_state_(SpdyCredentialState::kDefaultNumSlots),
connection_at_risk_of_loss_time_(
base::TimeDelta::FromSeconds(kDefaultConnectionAtRiskOfLossSeconds)),
@@ -1570,13 +1572,17 @@ uint32 ApplyCwndFieldTrialPolicy(int cwnd) {
void SpdySession::SendInitialSettings() {
// First notify the server about the settings they should use when
// communicating with us.
- if (GetProtocolVersion() > 2 &&
- initial_recv_window_size_ != kSpdyStreamInitialWindowSize) {
+ if (GetProtocolVersion() >= 2 && enable_sending_initial_settings_) {
SettingsMap settings_map;
// Create a new settings frame notifying the sever of our
- // initial window size.
- settings_map[SETTINGS_INITIAL_WINDOW_SIZE] =
- SettingsFlagsAndValue(SETTINGS_FLAG_NONE, initial_recv_window_size_);
+ // max_concurrent_streams_ and initial window size.
+ settings_map[SETTINGS_MAX_CONCURRENT_STREAMS] =
+ SettingsFlagsAndValue(SETTINGS_FLAG_NONE, kInitialMaxConcurrentStreams);
+ if (GetProtocolVersion() > 2 &&
+ initial_recv_window_size_ != kSpdyStreamInitialWindowSize) {
+ settings_map[SETTINGS_INITIAL_WINDOW_SIZE] =
+ SettingsFlagsAndValue(SETTINGS_FLAG_NONE, initial_recv_window_size_);
+ }
sent_settings_ = true;
SendSettings(settings_map);
}
diff --git a/net/spdy/spdy_session.h b/net/spdy/spdy_session.h
index 797f139..5cdf65b 100644
--- a/net/spdy/spdy_session.h
+++ b/net/spdy/spdy_session.h
@@ -40,6 +40,9 @@ namespace net {
const int kMss = 1430;
const int kMaxSpdyFrameChunkSize = (2 * kMss) - SpdyFrame::kHeaderSize;
+// Specifies the maxiumum concurrent streams server could send.
+const int kInitialMaxConcurrentStreams = 1000;
+
class BoundNetLog;
class SpdyStream;
class SSLInfo;
@@ -102,6 +105,7 @@ class NET_EXPORT SpdySession : public base::RefCounted<SpdySession>,
SpdySessionPool* spdy_session_pool,
HttpServerProperties* http_server_properties,
bool verify_domain_authentication,
+ bool enable_sending_initial_settings,
const HostPortPair& trusted_spdy_proxy,
NetLog* net_log);
@@ -630,8 +634,9 @@ class NET_EXPORT SpdySession : public base::RefCounted<SpdySession>,
BoundNetLog net_log_;
- // Outside of tests, this should always be true.
+ // Outside of tests, these should always be true.
bool verify_domain_authentication_;
+ bool enable_sending_initial_settings_;
SpdyCredentialState credential_state_;
diff --git a/net/spdy/spdy_session_pool.cc b/net/spdy/spdy_session_pool.cc
index a7c5d02..0a8eb7f 100644
--- a/net/spdy/spdy_session_pool.cc
+++ b/net/spdy/spdy_session_pool.cc
@@ -49,6 +49,7 @@ SpdySessionPool::SpdySessionPool(
ssl_config_service_(ssl_config_service),
resolver_(resolver),
verify_domain_authentication_(true),
+ enable_sending_initial_settings_(true),
trusted_spdy_proxy_(
HostPortPair::FromString(trusted_spdy_proxy)) {
NetworkChangeNotifier::AddIPAddressObserver(this);
@@ -122,6 +123,7 @@ scoped_refptr<SpdySession> SpdySessionPool::GetInternal(
spdy_session = new SpdySession(host_port_proxy_pair, this,
http_server_properties_,
verify_domain_authentication_,
+ enable_sending_initial_settings_,
trusted_spdy_proxy_,
net_log.net_log());
UMA_HISTOGRAM_ENUMERATION("Net.SpdySessionGet",
@@ -149,6 +151,7 @@ net::Error SpdySessionPool::GetSpdySessionFromSocket(
*spdy_session = new SpdySession(host_port_proxy_pair, this,
http_server_properties_,
verify_domain_authentication_,
+ enable_sending_initial_settings_,
trusted_spdy_proxy_,
net_log.net_log());
SpdySessionList* list = GetSessionList(host_port_proxy_pair);
diff --git a/net/spdy/spdy_session_pool.h b/net/spdy/spdy_session_pool.h
index 75b157c..05154f5 100644
--- a/net/spdy/spdy_session_pool.h
+++ b/net/spdy/spdy_session_pool.h
@@ -208,6 +208,8 @@ class NET_EXPORT SpdySessionPool
// Defaults to true. May be controlled via SpdySessionPoolPeer for tests.
bool verify_domain_authentication_;
+ bool enable_sending_initial_settings_;
+
// This SPDY proxy is allowed to push resources from origins that are
// different from those of their associated streams.
HostPortPair trusted_spdy_proxy_;
diff --git a/net/spdy/spdy_session_spdy2_unittest.cc b/net/spdy/spdy_session_spdy2_unittest.cc
index fd0fca20b..eb26194 100644
--- a/net/spdy/spdy_session_spdy2_unittest.cc
+++ b/net/spdy/spdy_session_spdy2_unittest.cc
@@ -668,6 +668,68 @@ TEST_F(SpdySessionSpdy2Test, CancelPendingCreateStream) {
MessageLoop::current()->RunAllPending();
}
+TEST_F(SpdySessionSpdy2Test, SendInitialSettingsOnNewSession) {
+ SpdySessionDependencies session_deps;
+ session_deps.host_resolver->set_synchronous_mode(true);
+
+ MockRead reads[] = {
+ MockRead(SYNCHRONOUS, ERR_IO_PENDING) // Stall forever.
+ };
+
+ SettingsMap settings;
+ const SpdySettingsIds kSpdySettingsIds1 = SETTINGS_MAX_CONCURRENT_STREAMS;
+ settings[kSpdySettingsIds1] =
+ SettingsFlagsAndValue(SETTINGS_FLAG_NONE, kInitialMaxConcurrentStreams);
+ MockConnect connect_data(SYNCHRONOUS, OK);
+ scoped_ptr<SpdyFrame> settings_frame(ConstructSpdySettings(settings));
+ MockWrite writes[] = {
+ CreateMockWrite(*settings_frame),
+ };
+
+ StaticSocketDataProvider data(
+ reads, arraysize(reads), writes, arraysize(writes));
+ data.set_connect_data(connect_data);
+ session_deps.socket_factory->AddSocketDataProvider(&data);
+
+ SSLSocketDataProvider ssl(SYNCHRONOUS, OK);
+ session_deps.socket_factory->AddSSLSocketDataProvider(&ssl);
+
+ scoped_refptr<HttpNetworkSession> http_session(
+ SpdySessionDependencies::SpdyCreateSession(&session_deps));
+
+ static const char kStreamUrl[] = "http://www.google.com/";
+ GURL url(kStreamUrl);
+
+ const std::string kTestHost("www.google.com");
+ const int kTestPort = 80;
+ HostPortPair test_host_port_pair(kTestHost, kTestPort);
+ HostPortProxyPair pair(test_host_port_pair, ProxyServer::Direct());
+
+ SpdySessionPool* spdy_session_pool(http_session->spdy_session_pool());
+ EXPECT_FALSE(spdy_session_pool->HasSession(pair));
+ SpdySessionPoolPeer pool_peer(spdy_session_pool);
+ pool_peer.EnableSendingInitialSettings(true);
+ scoped_refptr<SpdySession> session =
+ spdy_session_pool->Get(pair, BoundNetLog());
+ EXPECT_TRUE(spdy_session_pool->HasSession(pair));
+
+ scoped_refptr<TransportSocketParams> transport_params(
+ new TransportSocketParams(test_host_port_pair,
+ MEDIUM,
+ false,
+ false,
+ OnHostResolutionCallback()));
+ scoped_ptr<ClientSocketHandle> connection(new ClientSocketHandle);
+ EXPECT_EQ(OK, connection->Init(test_host_port_pair.ToString(),
+ transport_params, MEDIUM, CompletionCallback(),
+ http_session->GetTransportSocketPool(
+ HttpNetworkSession::NORMAL_SOCKET_POOL),
+ BoundNetLog()));
+ EXPECT_EQ(OK, session->InitializeWithSocket(connection.release(), false, OK));
+ MessageLoop::current()->RunAllPending();
+ EXPECT_TRUE(data.at_write_eof());
+}
+
TEST_F(SpdySessionSpdy2Test, SendSettingsOnNewSession) {
SpdySessionDependencies session_deps;
session_deps.host_resolver->set_synchronous_mode(true);
diff --git a/net/spdy/spdy_session_spdy3_unittest.cc b/net/spdy/spdy_session_spdy3_unittest.cc
index b43dc4b..3b8a10f 100644
--- a/net/spdy/spdy_session_spdy3_unittest.cc
+++ b/net/spdy/spdy_session_spdy3_unittest.cc
@@ -668,7 +668,7 @@ TEST_F(SpdySessionSpdy3Test, CancelPendingCreateStream) {
MessageLoop::current()->RunAllPending();
}
-TEST_F(SpdySessionSpdy3Test, SendInitialWindowSizeSettingsOnNewSession) {
+TEST_F(SpdySessionSpdy3Test, SendInitialSettingsOnNewSession) {
SpdySessionDependencies session_deps;
session_deps.host_resolver->set_synchronous_mode(true);
@@ -677,9 +677,12 @@ TEST_F(SpdySessionSpdy3Test, SendInitialWindowSizeSettingsOnNewSession) {
};
SettingsMap settings;
- const SpdySettingsIds kSpdySettingsIds1 = SETTINGS_INITIAL_WINDOW_SIZE;
+ const SpdySettingsIds kSpdySettingsIds1 = SETTINGS_MAX_CONCURRENT_STREAMS;
+ const SpdySettingsIds kSpdySettingsIds2 = SETTINGS_INITIAL_WINDOW_SIZE;
const uint32 kInitialRecvWindowSize = 10 * 1024 * 1024;
settings[kSpdySettingsIds1] =
+ SettingsFlagsAndValue(SETTINGS_FLAG_NONE, kInitialMaxConcurrentStreams);
+ settings[kSpdySettingsIds2] =
SettingsFlagsAndValue(SETTINGS_FLAG_NONE, kInitialRecvWindowSize);
MockConnect connect_data(SYNCHRONOUS, OK);
scoped_ptr<SpdyFrame> settings_frame(ConstructSpdySettings(settings));
@@ -709,6 +712,8 @@ TEST_F(SpdySessionSpdy3Test, SendInitialWindowSizeSettingsOnNewSession) {
SpdySessionPool* spdy_session_pool(http_session->spdy_session_pool());
EXPECT_FALSE(spdy_session_pool->HasSession(pair));
+ SpdySessionPoolPeer pool_peer(spdy_session_pool);
+ pool_peer.EnableSendingInitialSettings(true);
scoped_refptr<SpdySession> session =
spdy_session_pool->Get(pair, BoundNetLog());
EXPECT_TRUE(spdy_session_pool->HasSession(pair));
diff --git a/net/spdy/spdy_test_util_spdy2.cc b/net/spdy/spdy_test_util_spdy2.cc
index b933377..1c08f33f 100644
--- a/net/spdy/spdy_test_util_spdy2.cc
+++ b/net/spdy/spdy_test_util_spdy2.cc
@@ -941,7 +941,10 @@ HttpNetworkSession* SpdySessionDependencies::SpdyCreateSession(
params.http_server_properties = &session_deps->http_server_properties;
params.trusted_spdy_proxy =
session_deps->trusted_spdy_proxy;
- return new HttpNetworkSession(params);
+ HttpNetworkSession* http_session = new HttpNetworkSession(params);
+ SpdySessionPoolPeer pool_peer(http_session->spdy_session_pool());
+ pool_peer.EnableSendingInitialSettings(false);
+ return http_session;
}
// static
@@ -957,7 +960,10 @@ HttpNetworkSession* SpdySessionDependencies::SpdyCreateSessionDeterministic(
params.http_auth_handler_factory =
session_deps->http_auth_handler_factory.get();
params.http_server_properties = &session_deps->http_server_properties;
- return new HttpNetworkSession(params);
+ HttpNetworkSession* http_session = new HttpNetworkSession(params);
+ SpdySessionPoolPeer pool_peer(http_session->spdy_session_pool());
+ pool_peer.EnableSendingInitialSettings(false);
+ return http_session;
}
SpdyURLRequestContext::SpdyURLRequestContext()
@@ -980,6 +986,8 @@ SpdyURLRequestContext::SpdyURLRequestContext()
params.http_server_properties = http_server_properties();
scoped_refptr<HttpNetworkSession> network_session(
new HttpNetworkSession(params));
+ SpdySessionPoolPeer pool_peer(network_session->spdy_session_pool());
+ pool_peer.EnableSendingInitialSettings(false);
storage_.set_http_transaction_factory(new HttpCache(
network_session,
HttpCache::DefaultBackend::InMemory(0)));
diff --git a/net/spdy/spdy_test_util_spdy2.h b/net/spdy/spdy_test_util_spdy2.h
index 03b70d87..0f84a9e 100644
--- a/net/spdy/spdy_test_util_spdy2.h
+++ b/net/spdy/spdy_test_util_spdy2.h
@@ -405,6 +405,10 @@ class SpdySessionPoolPeer {
pool_->verify_domain_authentication_ = false;
}
+ void EnableSendingInitialSettings(bool enabled) {
+ pool_->enable_sending_initial_settings_ = enabled;
+ }
+
private:
SpdySessionPool* const pool_;
diff --git a/net/spdy/spdy_test_util_spdy3.cc b/net/spdy/spdy_test_util_spdy3.cc
index e872d90..46ecee4 100644
--- a/net/spdy/spdy_test_util_spdy3.cc
+++ b/net/spdy/spdy_test_util_spdy3.cc
@@ -924,7 +924,10 @@ HttpNetworkSession* SpdySessionDependencies::SpdyCreateSession(
params.http_server_properties = &session_deps->http_server_properties;
params.trusted_spdy_proxy =
session_deps->trusted_spdy_proxy;
- return new HttpNetworkSession(params);
+ HttpNetworkSession* http_session = new HttpNetworkSession(params);
+ SpdySessionPoolPeer pool_peer(http_session->spdy_session_pool());
+ pool_peer.EnableSendingInitialSettings(false);
+ return http_session;
}
// static
@@ -940,7 +943,10 @@ HttpNetworkSession* SpdySessionDependencies::SpdyCreateSessionDeterministic(
params.http_auth_handler_factory =
session_deps->http_auth_handler_factory.get();
params.http_server_properties = &session_deps->http_server_properties;
- return new HttpNetworkSession(params);
+ HttpNetworkSession* http_session = new HttpNetworkSession(params);
+ SpdySessionPoolPeer pool_peer(http_session->spdy_session_pool());
+ pool_peer.EnableSendingInitialSettings(false);
+ return http_session;
}
SpdyURLRequestContext::SpdyURLRequestContext()
@@ -963,6 +969,8 @@ SpdyURLRequestContext::SpdyURLRequestContext()
params.http_server_properties = http_server_properties();
scoped_refptr<HttpNetworkSession> network_session(
new HttpNetworkSession(params));
+ SpdySessionPoolPeer pool_peer(network_session->spdy_session_pool());
+ pool_peer.EnableSendingInitialSettings(false);
storage_.set_http_transaction_factory(new HttpCache(
network_session,
HttpCache::DefaultBackend::InMemory(0)));
diff --git a/net/spdy/spdy_test_util_spdy3.h b/net/spdy/spdy_test_util_spdy3.h
index 3e18077..a7ec1b4 100644
--- a/net/spdy/spdy_test_util_spdy3.h
+++ b/net/spdy/spdy_test_util_spdy3.h
@@ -406,6 +406,10 @@ class SpdySessionPoolPeer {
pool_->verify_domain_authentication_ = false;
}
+ void EnableSendingInitialSettings(bool enabled) {
+ pool_->enable_sending_initial_settings_ = enabled;
+ }
+
private:
SpdySessionPool* const pool_;