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

Unified Diff: net/http/http_server_properties_impl.h

Issue 8770035: Save pipelining capabilities for the most used hosts between sessions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merged Created 9 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/http/http_server_properties.h ('k') | net/http/http_server_properties_impl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/http/http_server_properties_impl.h
diff --git a/net/http/http_server_properties_impl.h b/net/http/http_server_properties_impl.h
index f697848e0ff32a12eab8eca035ec287067689aac..487e0fda23ab5064ef084ec36829cd024108579d 100644
--- a/net/http/http_server_properties_impl.h
+++ b/net/http/http_server_properties_impl.h
@@ -12,10 +12,12 @@
#include "base/basictypes.h"
#include "base/gtest_prod_util.h"
#include "base/hash_tables.h"
+#include "base/memory/mru_cache.h"
#include "base/threading/non_thread_safe.h"
#include "base/values.h"
#include "net/base/host_port_pair.h"
#include "net/base/net_export.h"
+#include "net/http/http_pipelined_host_capability.h"
#include "net/http/http_server_properties.h"
namespace base {
@@ -42,6 +44,11 @@ class NET_EXPORT HttpServerPropertiesImpl
void InitializeSpdySettingsServers(SpdySettingsMap* spdy_settings_map);
+ // Initializes |pipeline_capability_map_| with the servers (host/port) from
+ // |pipeline_capability_map| that either support HTTP pipelining or not.
+ void InitializePipelineCapabilities(
+ const PipelineCapabilityMap* pipeline_capability_map);
+
// Get the list of servers (host/port) that support SPDY.
void GetSpdyServerList(base::ListValue* spdy_server_list) const;
@@ -56,6 +63,12 @@ class NET_EXPORT HttpServerPropertiesImpl
static void ForceAlternateProtocol(const PortAlternateProtocolPair& pair);
static void DisableForcedAlternateProtocol();
+ // Changes the number of host/port pairs we remember pipelining capability
+ // for. A larger number means we're more likely to be able to pipeline
+ // immediately if a host is known good, but uses more memory. This function
+ // can only be called if |pipeline_capability_map_| is empty.
+ void SetNumPipelinedHostsToRemember(int max_size);
+
// -----------------------------
// HttpServerProperties methods:
// -----------------------------
@@ -106,7 +119,20 @@ class NET_EXPORT HttpServerPropertiesImpl
// Returns all persistent SpdySettings.
virtual const SpdySettingsMap& spdy_settings_map() const OVERRIDE;
+ virtual HttpPipelinedHostCapability GetPipelineCapability(
+ const HostPortPair& origin) OVERRIDE;
+
+ virtual void SetPipelineCapability(
+ const HostPortPair& origin,
+ HttpPipelinedHostCapability capability) OVERRIDE;
+
+ virtual void ClearPipelineCapabilities() OVERRIDE;
+
+ virtual PipelineCapabilityMap GetPipelineCapabilityMap() const OVERRIDE;
+
private:
+ typedef base::MRUCache<
+ HostPortPair, HttpPipelinedHostCapability> CachedPipelineCapabilityMap;
// |spdy_servers_table_| has flattened representation of servers (host/port
// pair) that either support or not support SPDY protocol.
typedef base::hash_map<std::string, bool> SpdyServerHostPortTable;
@@ -114,6 +140,7 @@ class NET_EXPORT HttpServerPropertiesImpl
AlternateProtocolMap alternate_protocol_map_;
SpdySettingsMap spdy_settings_map_;
+ scoped_ptr<CachedPipelineCapabilityMap> pipeline_capability_map_;
DISALLOW_COPY_AND_ASSIGN(HttpServerPropertiesImpl);
};
« no previous file with comments | « net/http/http_server_properties.h ('k') | net/http/http_server_properties_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698