#include "third_party/blink/renderer/modules/peerconnection/rtc_ice_transport.h"
#include <string>
#include "base/task/single_thread_task_runner.h"
#include "third_party/blink/public/platform/platform.h"
#include "third_party/blink/public/web/web_local_frame.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_union_string_stringsequence.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_ice_parameters.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_ice_server.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_peer_connection_ice_event_init.h"
#include "third_party/blink/renderer/core/dom/events/event.h"
#include "third_party/blink/renderer/core/frame/local_dom_window.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/frame/local_frame_client.h"
#include "third_party/blink/renderer/modules/peerconnection/adapters/ice_transport_adapter_cross_thread_factory.h"
#include "third_party/blink/renderer/modules/peerconnection/adapters/ice_transport_adapter_impl.h"
#include "third_party/blink/renderer/modules/peerconnection/adapters/ice_transport_proxy.h"
#include "third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.h"
#include "third_party/blink/renderer/modules/peerconnection/rtc_error_util.h"
#include "third_party/blink/renderer/modules/peerconnection/rtc_ice_candidate.h"
#include "third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.h"
#include "third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_ice_event.h"
#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
#include "third_party/blink/renderer/platform/scheduler/public/thread.h"
#include "third_party/webrtc/api/ice_transport_factory.h"
#include "third_party/webrtc/api/ice_transport_interface.h"
#include "third_party/webrtc/api/jsep_ice_candidate.h"
#include "third_party/webrtc/api/peer_connection_interface.h"
#include "third_party/webrtc/p2p/base/port_allocator.h"
#include "third_party/webrtc/p2p/base/transport_description.h"
#include "third_party/webrtc/pc/webrtc_sdp.h"
namespace blink {
namespace {
const char* kIceRoleControllingStr = …;
const char* kIceRoleControlledStr = …;
RTCIceCandidate* ConvertToRtcIceCandidate(const cricket::Candidate& candidate) { … }
class DtlsIceTransportAdapterCrossThreadFactory
: public IceTransportAdapterCrossThreadFactory { … };
}
RTCIceTransport* RTCIceTransport::Create(
ExecutionContext* context,
rtc::scoped_refptr<webrtc::IceTransportInterface> ice_transport,
RTCPeerConnection* peer_connection) { … }
RTCIceTransport::RTCIceTransport(
ExecutionContext* context,
scoped_refptr<base::SingleThreadTaskRunner> proxy_thread,
scoped_refptr<base::SingleThreadTaskRunner> host_thread,
std::unique_ptr<IceTransportAdapterCrossThreadFactory> adapter_factory,
RTCPeerConnection* peer_connection)
: … { … }
RTCIceTransport::~RTCIceTransport() { … }
String RTCIceTransport::role() const { … }
String RTCIceTransport::state() const { … }
String RTCIceTransport::gatheringState() const { … }
const HeapVector<Member<RTCIceCandidate>>& RTCIceTransport::getLocalCandidates()
const { … }
const HeapVector<Member<RTCIceCandidate>>&
RTCIceTransport::getRemoteCandidates() const { … }
RTCIceCandidatePair* RTCIceTransport::getSelectedCandidatePair() const { … }
RTCIceParameters* RTCIceTransport::getLocalParameters() const { … }
RTCIceParameters* RTCIceTransport::getRemoteParameters() const { … }
void RTCIceTransport::OnGatheringStateChanged(
cricket::IceGatheringState new_state) { … }
void RTCIceTransport::OnCandidateGathered(
const cricket::Candidate& parsed_candidate) { … }
void RTCIceTransport::OnStateChanged(webrtc::IceTransportState new_state) { … }
void RTCIceTransport::OnSelectedCandidatePairChanged(
const std::pair<cricket::Candidate, cricket::Candidate>&
selected_candidate_pair) { … }
void RTCIceTransport::Close(CloseReason reason) { … }
bool RTCIceTransport::RaiseExceptionIfClosed(
ExceptionState& exception_state) const { … }
const AtomicString& RTCIceTransport::InterfaceName() const { … }
ExecutionContext* RTCIceTransport::GetExecutionContext() const { … }
void RTCIceTransport::ContextDestroyed() { … }
bool RTCIceTransport::HasPendingActivity() const { … }
void RTCIceTransport::Trace(Visitor* visitor) const { … }
void RTCIceTransport::Dispose() { … }
}