#include "remoting/protocol/transport_context.h"
#include <sstream>
#include <utility>
#include "base/functional/bind.h"
#include "base/location.h"
#include "base/task/single_thread_task_runner.h"
#include "build/build_config.h"
#include "components/webrtc/thread_wrapper.h"
#include "net/url_request/url_request_context_getter.h"
#include "remoting/base/logging.h"
#include "remoting/base/oauth_token_getter.h"
#include "remoting/protocol/chromium_port_allocator_factory.h"
#include "remoting/protocol/port_allocator_factory.h"
#include "remoting/protocol/remoting_ice_config_request.h"
#include "services/network/public/cpp/shared_url_loader_factory.h"
#include "third_party/webrtc/rtc_base/socket_address.h"
namespace remoting::protocol {
namespace {
constexpr base::TimeDelta kIceConfigRequestCooldown = …;
void PrintIceConfig(const IceConfig& ice_config) { … }
}
scoped_refptr<TransportContext> TransportContext::ForTests(TransportRole role) { … }
TransportContext::TransportContext(
std::unique_ptr<PortAllocatorFactory> port_allocator_factory,
rtc::SocketFactory* socket_factory,
scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
OAuthTokenGetter* oauth_token_getter,
TransportRole role)
: … { … }
TransportContext::~TransportContext() = default;
void TransportContext::GetIceConfig(GetIceConfigCallback callback) { … }
void TransportContext::EnsureFreshIceConfig() { … }
void TransportContext::OnIceConfig(const IceConfig& ice_config) { … }
int TransportContext::GetTurnMaxRateKbps() const { … }
}