Index: net/http/http_server_properties.h |
diff --git a/net/http/http_server_properties.h b/net/http/http_server_properties.h |
index 4192361187cdbb0684d3ceeb56193d4bcb937764..dd0065c22e8c9569b8d55523f46dae984bd52817 100644 |
--- a/net/http/http_server_properties.h |
+++ b/net/http/http_server_properties.h |
@@ -7,6 +7,8 @@ |
#include <map> |
#include <string> |
+#include <vector> |
+ |
#include "base/basictypes.h" |
#include "base/containers/mru_cache.h" |
#include "base/memory/weak_ptr.h" |
@@ -199,7 +201,9 @@ struct NET_EXPORT ServerNetworkStats { |
QuicBandwidth bandwidth_estimate; |
}; |
-typedef base::MRUCache<HostPortPair, AlternativeServiceInfo> |
+typedef std::vector<AlternativeService> AlternativeServiceVector; |
+typedef std::vector<AlternativeServiceInfo> AlternativeServiceInfoVector; |
+typedef base::MRUCache<HostPortPair, AlternativeServiceInfoVector> |
AlternativeServiceMap; |
typedef base::MRUCache<HostPortPair, SettingsMap> SpdySettingsMap; |
typedef base::MRUCache<HostPortPair, ServerNetworkStats> ServerNetworkStatsMap; |
@@ -247,45 +251,63 @@ class NET_EXPORT HttpServerProperties { |
virtual void MaybeForceHTTP11(const HostPortPair& server, |
SSLConfig* ssl_config) = 0; |
- // Returns the alternative service for |origin| if it has probability equal to |
- // or exceeding threshold, or else the forced AlternateProtocol if there is |
- // one, or else one with UNINITIALIZED_ALTERNATE_PROTOCOL. |
- virtual AlternativeService GetAlternativeService( |
+ // Return all alternative services for |origin| with probability greater than |
+ // or equal to the threshold, including broken ones. |
+ // Returned alternative services never have empty hostnames. |
+ virtual AlternativeServiceVector GetAlternativeServices( |
const HostPortPair& origin) = 0; |
- // Sets the alternative service for |origin|. |
- virtual void SetAlternativeService( |
+ // Set a single alternative service for |origin|. Previous alternative |
+ // services for |origin| are discarded. |
+ // |alternative_service.host| may be empty. |
+ // Return true if |alternative_service_map_| is changed. |
+ virtual bool SetAlternativeService( |
const HostPortPair& origin, |
const AlternativeService& alternative_service, |
double alternative_probability) = 0; |
+ // Set alternative services for |origin|. Previous alternative services for |
+ // |origin| are discarded. |
+ // Hostnames in |alternative_service_info_vector| may be empty. |
+ // Return true if |alternative_service_map_| is changed. |
+ virtual bool SetAlternativeServices( |
+ const HostPortPair& origin, |
+ const AlternativeServiceInfoVector& alternative_service_info_vector) = 0; |
+ |
// Marks |alternative_service| as broken. |
+ // |alternative_service.host| must not be empty. |
virtual void MarkAlternativeServiceBroken( |
const AlternativeService& alternative_service) = 0; |
// Marks |alternative_service| as recently broken. |
+ // |alternative_service.host| must not be empty. |
virtual void MarkAlternativeServiceRecentlyBroken( |
const AlternativeService& alternative_service) = 0; |
// Returns true iff |alternative_service| is currently broken. |
+ // |alternative_service.host| must not be empty. |
virtual bool IsAlternativeServiceBroken( |
const AlternativeService& alternative_service) const = 0; |
// Returns true iff |alternative_service| was recently broken. |
+ // |alternative_service.host| must not be empty. |
virtual bool WasAlternativeServiceRecentlyBroken( |
const AlternativeService& alternative_service) = 0; |
// Confirms that |alternative_service| is working. |
+ // |alternative_service.host| must not be empty. |
virtual void ConfirmAlternativeService( |
const AlternativeService& alternative_service) = 0; |
- // Clears the alternative service for |origin|. |
- virtual void ClearAlternativeService(const HostPortPair& origin) = 0; |
+ // Clear all alternative services for |origin|. |
+ virtual void ClearAlternativeServices(const HostPortPair& origin) = 0; |
// Returns all alternative service mappings. |
+ // Returned alternative services may have empty hostnames. |
virtual const AlternativeServiceMap& alternative_service_map() const = 0; |
// Returns all alternative service mappings as human readable strings. |
+ // Empty alternative service hostnames will be printed as such. |
virtual scoped_ptr<base::Value> GetAlternativeServiceInfoAsValue() const = 0; |
// Sets the threshold to be used when evaluating alternative service |