Move IceTransport ownership to DtlsTransport from JsepTransport
This patch refactors the ownership model between JsepTransport,
DtlsTransport, and IceTransport to simplify the object hierarchy.
Previously, `DtlsTransportInternal` held a raw pointer to
`IceTransportInternal`, while `JsepTransport` maintained ownership of,
but does not use, the `IceTransportInterface` object.
With this change, `DtlsTransportInternal` now accepts and stores a
`scoped_refptr<IceTransportInterface>`. This ensures that the DTLS
transport keeps the underlying ICE transport alive. Consequently,
`JsepTransport` no longer needs to hold explicit references to
`ice_transport_` and `rtcp_ice_transport_`, as they are now owned via
the DTLS transports.
Key changes:
* Update `DtlsTransportInternal` and `FakeDtlsTransport` to take
`scoped_refptr<IceTransportInterface>` in their constructors.
* Remove direct ICE transport members from `JsepTransport`.
* Update `JsepTransportController` to pass reference-counted ICE
transports when creating DTLS transports.
* Update unit tests and integration tests to use `make_ref_counted`
for ICE transports and match the new constructor signatures.
Bug: webrtc:360058654
Change-Id: I6cd5015b6c9363091c1af37bea1d8cd779cea095
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/427682
Reviewed-by: Tony Herre <herre@google.com>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#46308}
WebRTC is a free, open software project that provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs. The WebRTC components have been optimized to best serve this purpose.
Our mission: To enable rich, high-quality RTC applications to be developed for the browser, mobile platforms, and IoT devices, and allow them all to communicate via a common set of protocols.
The WebRTC initiative is a project supported by Google, Mozilla and Opera, amongst others.
See here for instructions on how to get started developing with the native code.
Authoritative list of directories that contain the native API header files.