#include "net/quic/quic_session_attempt.h"
#include "base/auto_reset.h"
#include "base/feature_list.h"
#include "net/base/completion_once_callback.h"
#include "net/base/features.h"
#include "net/base/net_errors.h"
#include "net/dns/public/host_resolver_results.h"
#include "net/log/net_log_with_source.h"
#include "net/quic/address_utils.h"
#include "net/quic/quic_session_pool.h"
#include "net/third_party/quiche/src/quiche/quic/core/quic_versions.h"
namespace net {
namespace {
enum class JobProtocolErrorLocation { … };
void HistogramProtocolErrorLocation(enum JobProtocolErrorLocation location) { … }
void LogStaleConnectionTime(base::TimeTicks start_time) { … }
void LogValidConnectionTime(base::TimeTicks start_time) { … }
}
QuicSessionAttempt::QuicSessionAttempt(
Delegate* delegate,
IPEndPoint ip_endpoint,
ConnectionEndpointMetadata metadata,
quic::ParsedQuicVersion quic_version,
int cert_verify_flags,
base::TimeTicks dns_resolution_start_time,
base::TimeTicks dns_resolution_end_time,
bool retry_on_alternate_network_before_handshake,
bool use_dns_aliases,
std::set<std::string> dns_aliases,
std::unique_ptr<QuicCryptoClientConfigHandle> crypto_client_config_handle)
: … { … }
QuicSessionAttempt::QuicSessionAttempt(
Delegate* delegate,
IPEndPoint local_endpoint,
IPEndPoint proxy_peer_endpoint,
quic::ParsedQuicVersion quic_version,
int cert_verify_flags,
std::unique_ptr<QuicChromiumClientStream::Handle> proxy_stream,
const HttpUserAgentSettings* http_user_agent_settings)
: … { … }
QuicSessionAttempt::~QuicSessionAttempt() = default;
int QuicSessionAttempt::Start(CompletionOnceCallback callback) { … }
int QuicSessionAttempt::DoLoop(int rv) { … }
int QuicSessionAttempt::DoCreateSession() { … }
int QuicSessionAttempt::DoCreateSessionComplete(int rv) { … }
int QuicSessionAttempt::DoCryptoConnect(int rv) { … }
int QuicSessionAttempt::DoConfirmConnection(int rv) { … }
void QuicSessionAttempt::OnCreateSessionComplete(int rv) { … }
void QuicSessionAttempt::OnCryptoConnectComplete(int rv) { … }
}