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

Unified Diff: net/http/http_server_properties_impl.cc

Issue 1802893002: Revert of Remove support for Alt-Svc/Alternate Protocol Probability (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 months 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_impl.h ('k') | net/http/http_server_properties_impl_unittest.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.cc
diff --git a/net/http/http_server_properties_impl.cc b/net/http/http_server_properties_impl.cc
index a0a6bfe644f35fbde0ac8fb00d0c1a98d830f307..ab2088f0f65d6d321dfeaa812444260031c70444 100644
--- a/net/http/http_server_properties_impl.cc
+++ b/net/http/http_server_properties_impl.cc
@@ -32,6 +32,7 @@
alternative_service_map_(AlternativeServiceMap::NO_AUTO_EVICT),
spdy_settings_map_(SpdySettingsMap::NO_AUTO_EVICT),
server_network_stats_map_(ServerNetworkStatsMap::NO_AUTO_EVICT),
+ alternative_service_probability_threshold_(1.0),
quic_server_info_map_(QuicServerInfoMap::NO_AUTO_EVICT),
max_server_configs_stored_in_properties_(kMaxQuicServersToPersist),
weak_ptr_factory_(this) {
@@ -322,8 +323,9 @@
AlternativeServiceVector HttpServerPropertiesImpl::GetAlternativeServices(
const HostPortPair& origin) {
- // Copy valid alternative services into |valid_alternative_services|.
- AlternativeServiceVector valid_alternative_services;
+ // Copy alternative services with probability greater than or equal to the
+ // threshold into |alternative_services_above_threshold|.
+ AlternativeServiceVector alternative_services_above_threshold;
const base::Time now = base::Time::Now();
AlternativeServiceMap::iterator map_it = alternative_service_map_.Get(origin);
if (map_it != alternative_service_map_.end()) {
@@ -333,6 +335,11 @@
it = map_it->second.erase(it);
continue;
}
+ if (it->probability == 0 ||
+ it->probability < alternative_service_probability_threshold_) {
+ ++it;
+ continue;
+ }
AlternativeService alternative_service(it->alternative_service);
if (alternative_service.host.empty()) {
alternative_service.host = origin.host();
@@ -346,13 +353,13 @@
++it;
continue;
}
- valid_alternative_services.push_back(alternative_service);
+ alternative_services_above_threshold.push_back(alternative_service);
++it;
}
if (map_it->second.empty()) {
alternative_service_map_.Erase(map_it);
}
- return valid_alternative_services;
+ return alternative_services_above_threshold;
}
CanonicalHostMap::const_iterator canonical = GetCanonicalHost(origin);
@@ -367,6 +374,10 @@
it != map_it->second.end();) {
if (it->expiration < now) {
it = map_it->second.erase(it);
+ continue;
+ }
+ if (it->probability < alternative_service_probability_threshold_) {
+ ++it;
continue;
}
AlternativeService alternative_service(it->alternative_service);
@@ -381,23 +392,25 @@
++it;
continue;
}
- valid_alternative_services.push_back(alternative_service);
+ alternative_services_above_threshold.push_back(alternative_service);
++it;
}
if (map_it->second.empty()) {
alternative_service_map_.Erase(map_it);
}
- return valid_alternative_services;
+ return alternative_services_above_threshold;
}
bool HttpServerPropertiesImpl::SetAlternativeService(
const HostPortPair& origin,
const AlternativeService& alternative_service,
+ double alternative_probability,
base::Time expiration) {
return SetAlternativeServices(
- origin,
- AlternativeServiceInfoVector(
- /*size=*/1, AlternativeServiceInfo(alternative_service, expiration)));
+ origin, AlternativeServiceInfoVector(
+ /*size=*/1,
+ AlternativeServiceInfo(alternative_service,
+ alternative_probability, expiration)));
}
bool HttpServerPropertiesImpl::SetAlternativeServices(
@@ -682,6 +695,11 @@
}
quic_server_info_map_.Swap(temp_map);
+}
+
+void HttpServerPropertiesImpl::SetAlternativeServiceProbabilityThreshold(
+ double threshold) {
+ alternative_service_probability_threshold_ = threshold;
}
AlternativeServiceMap::const_iterator
« no previous file with comments | « net/http/http_server_properties_impl.h ('k') | net/http/http_server_properties_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698