#include "net/http/alternative_service.h"
#include "base/check_op.h"
#include "base/metrics/histogram_macros.h"
#include "base/metrics/histogram_macros_local.h"
#include "base/notreached.h"
#include "base/strings/stringprintf.h"
#include "net/base/port_util.h"
#include "net/third_party/quiche/src/quiche/quic/core/http/spdy_utils.h"
namespace net {
void HistogramAlternateProtocolUsage(AlternateProtocolUsage usage,
bool is_google_host) { … }
void HistogramBrokenAlternateProtocolLocation(
BrokenAlternateProtocolLocation location) { … }
bool IsAlternateProtocolValid(NextProto protocol) { … }
bool IsProtocolEnabled(NextProto protocol,
bool is_http2_enabled,
bool is_quic_enabled) { … }
AlternativeServiceInfo
AlternativeServiceInfo::CreateHttp2AlternativeServiceInfo(
const AlternativeService& alternative_service,
base::Time expiration) { … }
AlternativeServiceInfo AlternativeServiceInfo::CreateQuicAlternativeServiceInfo(
const AlternativeService& alternative_service,
base::Time expiration,
const quic::ParsedQuicVersionVector& advertised_versions) { … }
AlternativeServiceInfo::AlternativeServiceInfo() : … { … }
AlternativeServiceInfo::~AlternativeServiceInfo() = default;
AlternativeServiceInfo::AlternativeServiceInfo(
const AlternativeService& alternative_service,
base::Time expiration,
const quic::ParsedQuicVersionVector& advertised_versions)
: … { … }
AlternativeServiceInfo::AlternativeServiceInfo(
const AlternativeServiceInfo& alternative_service_info) = default;
AlternativeServiceInfo& AlternativeServiceInfo::operator=(
const AlternativeServiceInfo& alternative_service_info) = default;
std::string AlternativeService::ToString() const { … }
std::string AlternativeServiceInfo::ToString() const { … }
bool AlternativeServiceInfo::TransportVersionLessThan(
const quic::ParsedQuicVersion& lhs,
const quic::ParsedQuicVersion& rhs) { … }
std::ostream& operator<<(std::ostream& os,
const AlternativeService& alternative_service) { … }
AlternativeServiceInfoVector ProcessAlternativeServices(
const spdy::SpdyAltSvcWireFormat::AlternativeServiceVector&
alternative_service_vector,
bool is_http2_enabled,
bool is_quic_enabled,
const quic::ParsedQuicVersionVector& supported_quic_versions) { … }
}