| Index: net/http/http_stream_factory.cc
|
| diff --git a/net/http/http_stream_factory.cc b/net/http/http_stream_factory.cc
|
| index 2c7eed610948b07a67249626b36baebbdd9c03dd..4c21ffcef890c2565ee561e7c357f085483c9588 100644
|
| --- a/net/http/http_stream_factory.cc
|
| +++ b/net/http/http_stream_factory.cc
|
| @@ -51,19 +51,17 @@ void HttpStreamFactory::ProcessAlternativeServices(
|
| !IsPortValid(alternative_service_entry.port)) {
|
| continue;
|
| }
|
| - // Check if QUIC version is supported.
|
| + // Check if QUIC version is supported. Filter supported QUIC versions.
|
| + QuicVersionVector advertised_versions;
|
| if (protocol == kProtoQUIC && !alternative_service_entry.version.empty()) {
|
| bool match_found = false;
|
| for (QuicVersion supported : session->params().quic_supported_versions) {
|
| for (uint16_t advertised : alternative_service_entry.version) {
|
| if (supported == advertised) {
|
| match_found = true;
|
| - break;
|
| + advertised_versions.push_back(supported);
|
| }
|
| }
|
| - if (match_found) {
|
| - break;
|
| - }
|
| }
|
| if (!match_found) {
|
| continue;
|
| @@ -75,8 +73,16 @@ void HttpStreamFactory::ProcessAlternativeServices(
|
| base::Time expiration =
|
| base::Time::Now() +
|
| base::TimeDelta::FromSeconds(alternative_service_entry.max_age);
|
| - AlternativeServiceInfo alternative_service_info(alternative_service,
|
| - expiration);
|
| + AlternativeServiceInfo alternative_service_info;
|
| + if (protocol == kProtoQUIC) {
|
| + alternative_service_info =
|
| + AlternativeServiceInfo::CreateQuicAlternativeServiceInfo(
|
| + alternative_service, expiration, advertised_versions);
|
| + } else {
|
| + alternative_service_info =
|
| + AlternativeServiceInfo::CreateHttp2AlternativeServiceInfo(
|
| + alternative_service, expiration);
|
| + }
|
| alternative_service_info_vector.push_back(alternative_service_info);
|
| }
|
|
|
|
|