Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(499)

Unified Diff: net/spdy/spdy_session.cc

Issue 11415219: Move a number of static variables SPDY to HttpNetworkSession::Params. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix flip_in_mem_edsm_server Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/spdy/spdy_session.h ('k') | net/spdy/spdy_session_pool.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/spdy/spdy_session.cc
diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc
index 77dcb1cfa88db836028de18a8cbba99cfaf2dc55..d0932bf0300dd4d357511edc6ce982ea7612f974 100644
--- a/net/spdy/spdy_session.cc
+++ b/net/spdy/spdy_session.cc
@@ -177,20 +177,13 @@ Value* NetLogSpdyGoAwayCallback(SpdyStreamId last_stream_id,
return dict;
}
-NextProto g_default_protocol = kProtoUnknown;
// Maximum number of concurrent streams we will create, unless the server
// sends a SETTINGS frame with a different value.
-size_t g_init_max_concurrent_streams = 100;
+const size_t kInitialMaxConcurrentStreams = 100;
// The maximum number of concurrent streams we will ever create. Even if
// the server permits more, we will never exceed this limit.
-size_t g_max_concurrent_stream_limit = 256;
-size_t g_default_initial_rcv_window_size = 10 * 1024 * 1024; // 10MB
-bool g_enable_ping_based_connection_checking = true;
-bool g_enable_credential_frames = false;
-
-typedef base::TimeTicks (*ExternalTimeFunc)(void);
-
-static ExternalTimeFunc g_time_func = base::TimeTicks::Now;
+const size_t kMaxConcurrentStreamLimit = 256;
+const size_t kDefaultInitialRecvWindowSize = 10 * 1024 * 1024; // 10MB
} // namespace
@@ -216,71 +209,19 @@ SpdyIOBuffer* SpdySession::SpdyIOBufferProducer::CreateIOBuffer(
return new SpdyIOBuffer(buffer, size, priority, stream);
}
-// static
-void SpdySession::set_default_protocol(NextProto default_protocol) {
- g_default_protocol = default_protocol;
-}
-
-// static
-void SpdySession::set_max_concurrent_streams(size_t value) {
- g_max_concurrent_stream_limit = value;
-}
-
-// static
-void SpdySession::set_enable_ping_based_connection_checking(bool enable) {
- g_enable_ping_based_connection_checking = enable;
-}
-
-// static
-void SpdySession::set_enable_credential_frames(bool enable) {
- g_enable_credential_frames = enable;
-}
-
-
-// static
-void SpdySession::set_init_max_concurrent_streams(size_t value) {
- g_init_max_concurrent_streams =
- std::min(value, g_max_concurrent_stream_limit);
-}
-
-// 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;
- g_init_max_concurrent_streams = 100;
- g_max_concurrent_stream_limit = 256;
- g_default_initial_rcv_window_size = kSpdyStreamInitialWindowSize;
- g_enable_ping_based_connection_checking = true;
- g_enable_credential_frames = false;
- g_time_func = base::TimeTicks::Now;
-}
-
-// Outside of tests, g_time_func will always be base::TimeTicks::Now.
-// When performing linker optimization for the main executable, the compiler
-// should be able to see that set_time_func() is an uncalled function, that
-// the static .cc variable never changes, and thus that the extra pointer
-// indirection can be removed.
-
-
-
-SpdySession::TimeFunc SpdySession::set_time_func(
- SpdySession::TimeFunc time_func) {
- SpdySession::TimeFunc old_time_func =
- static_cast<SpdySession::TimeFunc>(g_time_func);
- g_time_func = static_cast<ExternalTimeFunc>(time_func);
- return old_time_func;
-}
-
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,
+ bool enable_credential_frames,
+ bool enable_compression,
+ bool enable_ping_based_connection_checking,
+ NextProto default_protocol,
+ size_t initial_recv_window_size,
+ size_t initial_max_concurrent_streams,
+ size_t max_concurrent_streams_limit,
+ TimeFunc time_func,
const HostPortPair& trusted_spdy_proxy,
NetLog* net_log)
: ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)),
@@ -297,7 +238,12 @@ SpdySession::SpdySession(const HostPortProxyPair& host_port_proxy_pair,
certificate_error_code_(OK),
error_(OK),
state_(IDLE),
- max_concurrent_streams_(g_init_max_concurrent_streams),
+ max_concurrent_streams_(initial_max_concurrent_streams == 0 ?
+ kInitialMaxConcurrentStreams :
+ initial_max_concurrent_streams),
+ max_concurrent_streams_limit_(max_concurrent_streams_limit == 0 ?
+ kMaxConcurrentStreamLimit :
+ max_concurrent_streams_limit),
streams_initiated_count_(0),
streams_pushed_count_(0),
streams_pushed_and_claimed_count_(0),
@@ -312,21 +258,29 @@ SpdySession::SpdySession(const HostPortProxyPair& host_port_proxy_pair,
check_ping_status_pending_(false),
flow_control_(false),
initial_send_window_size_(kSpdyStreamInitialWindowSize),
- initial_recv_window_size_(g_default_initial_rcv_window_size),
+ initial_recv_window_size_(initial_recv_window_size == 0 ?
+ kDefaultInitialRecvWindowSize :
+ initial_recv_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),
+ enable_credential_frames_(enable_credential_frames),
+ enable_compression_(enable_compression),
+ enable_ping_based_connection_checking_(
+ enable_ping_based_connection_checking),
+ default_protocol_(default_protocol),
credential_state_(SpdyCredentialState::kDefaultNumSlots),
connection_at_risk_of_loss_time_(
base::TimeDelta::FromSeconds(kDefaultConnectionAtRiskOfLossSeconds)),
hung_interval_(
base::TimeDelta::FromSeconds(kHungIntervalSeconds)),
- trusted_spdy_proxy_(trusted_spdy_proxy) {
+ trusted_spdy_proxy_(trusted_spdy_proxy),
+ time_func_(time_func) {
DCHECK(HttpStreamFactory::spdy_enabled());
net_log_.BeginEvent(
NetLog::TYPE_SPDY_SESSION,
base::Bind(&NetLogSpdySessionCallback, &host_port_proxy_pair_));
- next_unclaimed_push_stream_sweep_time_ = g_time_func() +
+ next_unclaimed_push_stream_sweep_time_ = time_func_() +
base::TimeDelta::FromSeconds(kMinPushedStreamLifetimeSeconds);
// TODO(mbelshe): consider randomization of the stream_hi_water_mark.
}
@@ -389,7 +343,7 @@ net::Error SpdySession::InitializeWithSocket(
is_secure_ = is_secure;
certificate_error_code_ = certificate_error_code;
- NextProto protocol = g_default_protocol;
+ NextProto protocol = default_protocol_;
NextProto protocol_negotiated = connection->socket()->GetNegotiatedProtocol();
if (protocol_negotiated != kProtoUnknown) {
protocol = protocol_negotiated;
@@ -408,7 +362,8 @@ net::Error SpdySession::InitializeWithSocket(
int version = (protocol == kProtoSPDY3) ? 3 : 2;
flow_control_ = (protocol >= kProtoSPDY3);
- buffered_spdy_framer_.reset(new BufferedSpdyFramer(version));
+ buffered_spdy_framer_.reset(new BufferedSpdyFramer(version,
+ enable_compression_));
buffered_spdy_framer_->set_visitor(this);
SendInitialSettings();
UMA_HISTOGRAM_ENUMERATION("Net.SpdyVersion", protocol, kProtoMaximumVersion);
@@ -435,7 +390,7 @@ bool SpdySession::VerifyDomainAuthentication(const std::string& domain) {
return true; // This is not a secure session, so all domains are okay.
return !ssl_info.client_cert_sent &&
- (g_enable_credential_frames || !ssl_info.channel_id_sent ||
+ (enable_credential_frames_ || !ssl_info.channel_id_sent ||
ServerBoundCertService::GetDomainForHost(domain) ==
ServerBoundCertService::GetDomainForHost(
host_port_proxy_pair_.first.host())) &&
@@ -1471,7 +1426,7 @@ void SpdySession::OnSynStream(SpdyStreamId stream_id,
DeleteExpiredPushedStreams();
unclaimed_pushed_streams_[url] =
std::pair<scoped_refptr<SpdyStream>, base::TimeTicks> (
- stream, g_time_func());
+ stream, time_func_());
ActivateStream(stream);
@@ -1490,11 +1445,11 @@ void SpdySession::DeleteExpiredPushedStreams() {
return;
// Check that adequate time has elapsed since the last sweep.
- if (g_time_func() < next_unclaimed_push_stream_sweep_time_)
+ if (time_func_() < next_unclaimed_push_stream_sweep_time_)
return;
// Delete old streams.
- base::TimeTicks minimum_freshness = g_time_func() -
+ base::TimeTicks minimum_freshness = time_func_() -
base::TimeDelta::FromSeconds(kMinPushedStreamLifetimeSeconds);
PushedStreamMap::iterator it;
for (it = unclaimed_pushed_streams_.begin();
@@ -1513,7 +1468,7 @@ void SpdySession::DeleteExpiredPushedStreams() {
streams_abandoned_count_++;
}
}
- next_unclaimed_push_stream_sweep_time_ = g_time_func() +
+ next_unclaimed_push_stream_sweep_time_ = time_func_() +
base::TimeDelta::FromSeconds(kMinPushedStreamLifetimeSeconds);
}
@@ -1792,7 +1747,7 @@ void SpdySession::HandleSetting(uint32 id, uint32 value) {
switch (id) {
case SETTINGS_MAX_CONCURRENT_STREAMS:
max_concurrent_streams_ = std::min(static_cast<size_t>(value),
- g_max_concurrent_stream_limit);
+ kMaxConcurrentStreamLimit);
ProcessPendingCreateStreams();
break;
case SETTINGS_INITIAL_WINDOW_SIZE:
@@ -1829,7 +1784,7 @@ void SpdySession::UpdateStreamsSendWindowSize(int32 delta_window_size) {
}
void SpdySession::SendPrefacePingIfNoneInFlight() {
- if (pings_in_flight_ || !g_enable_ping_based_connection_checking)
+ if (pings_in_flight_ || !enable_ping_based_connection_checking_)
return;
base::TimeTicks now = base::TimeTicks::Now();
« no previous file with comments | « net/spdy/spdy_session.h ('k') | net/spdy/spdy_session_pool.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698