#include "net/quic/quic_session_pool_direct_job.h"
#include "base/memory/weak_ptr.h"
#include "net/base/completion_once_callback.h"
#include "net/base/network_change_notifier.h"
#include "net/base/network_handle.h"
#include "net/base/request_priority.h"
#include "net/base/trace_constants.h"
#include "net/base/tracing.h"
#include "net/dns/host_resolver.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_crypto_client_config_handle.h"
#include "net/quic/quic_http_stream.h"
#include "net/quic/quic_session_pool.h"
#include "net/third_party/quiche/src/quiche/quic/core/quic_versions.h"
namespace net {
QuicSessionPool::DirectJob::DirectJob(
QuicSessionPool* pool,
quic::ParsedQuicVersion quic_version,
HostResolver* host_resolver,
QuicSessionAliasKey key,
std::unique_ptr<CryptoClientConfigHandle> client_config_handle,
bool retry_on_alternate_network_before_handshake,
RequestPriority priority,
bool use_dns_aliases,
bool require_dns_https_alpn,
int cert_verify_flags,
const NetLogWithSource& net_log)
: … { … }
QuicSessionPool::DirectJob::~DirectJob() { … }
int QuicSessionPool::DirectJob::Run(CompletionOnceCallback callback) { … }
void QuicSessionPool::DirectJob::SetRequestExpectations(
QuicSessionRequest* request) { … }
void QuicSessionPool::DirectJob::UpdatePriority(RequestPriority old_priority,
RequestPriority new_priority) { … }
void QuicSessionPool::DirectJob::PopulateNetErrorDetails(
NetErrorDetails* details) const { … }
int QuicSessionPool::DirectJob::DoLoop(int rv) { … }
int QuicSessionPool::DirectJob::DoResolveHost() { … }
int QuicSessionPool::DirectJob::DoResolveHostComplete(int rv) { … }
int QuicSessionPool::DirectJob::DoAttemptSession() { … }
void QuicSessionPool::DirectJob::OnResolveHostComplete(int rv) { … }
void QuicSessionPool::DirectJob::OnSessionAttemptComplete(int rv) { … }
bool QuicSessionPool::DirectJob::IsSvcbOptional(
base::span<const HostResolverEndpointResult> results) const { … }
}