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

Unified Diff: net/http/http_stream_factory_impl_job_controller.cc

Issue 2901093004: Add and persist a new field in AlternativeServiceInfo to list QUIC verisons advertised (Closed)
Patch Set: fix compile in components Created 3 years, 6 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
Index: net/http/http_stream_factory_impl_job_controller.cc
diff --git a/net/http/http_stream_factory_impl_job_controller.cc b/net/http/http_stream_factory_impl_job_controller.cc
index 24d6e161d8fa4f8a1e4b82ad5960db385175222d..1823a0bb8ef90a6829a430a1182cb60a045bb55e 100644
--- a/net/http/http_stream_factory_impl_job_controller.cc
+++ b/net/http/http_stream_factory_impl_job_controller.cc
@@ -1151,7 +1151,17 @@ HttpStreamFactoryImpl::JobController::GetAlternativeServiceInfoInternal(
if (session_->quic_stream_factory()->CanUseExistingSession(server_id,
destination)) {
- return alternative_service_info;
+ // If advertised versions for QUIC is missing for this
+ // AlternaitverServiceInfo, by default append the list of QUIC versions
Bence 2017/06/08 17:44:51 s/AlternaitverServiceInfo/AlternativeServiceInfo/
Zhongyi Shi 2017/06/08 23:11:16 Acknowledged.
+ // supported by this instance of network stack.
+ first_alternative_service_info = alternative_service_info;
+ if (first_alternative_service_info.alternative_service.protocol ==
+ kProtoQUIC &&
+ first_alternative_service_info.advertised_versions().empty()) {
+ first_alternative_service_info.set_advertised_versions(
+ session_->params().quic_supported_versions);
+ }
Ryan Hamilton 2017/06/07 20:52:24 I wonder if we can get away without this code. If
Zhongyi Shi 2017/06/08 23:11:16 Ah good idea! I didn't think about this. But yeah,
+ return first_alternative_service_info;
}
// Cache this entry if we don't have a non-broken Alt-Svc yet.
@@ -1164,6 +1174,16 @@ HttpStreamFactoryImpl::JobController::GetAlternativeServiceInfoInternal(
if (quic_advertised && quic_all_broken && delegate != nullptr)
delegate->OnQuicBroken();
+ // If advertised versions for QUIC is missing for this
+ // AlternaitverServiceInfo, by default append the list of QUIC versions
+ // supported by this instance of network stack.
+ if (first_alternative_service_info.alternative_service.protocol ==
+ kProtoQUIC &&
+ first_alternative_service_info.advertised_versions().empty()) {
+ first_alternative_service_info.set_advertised_versions(
+ session_->params().quic_supported_versions);
+ }
+
return first_alternative_service_info;
}

Powered by Google App Engine
This is Rietveld 408576698