SSIA
There are 2 possible approaches: a. Somehow move the transport GStreamer elements to the network process, using the newly gstwebrtc ICE split that will ship in GStreamer 1.22. That will require GStreamer initialization in the network process + a custom pipeline there, unless I misunderstood the intent. This approach is still not clear to me. b. Abstract sockets handling in libnice, perhaps using a factory pattern. That would allow the Agent to request sockets creations from the WebProcess, we could then build a socket wrapper similar to the existing infrastructure in-place already for the libwebrtc backend. This is lower-level, but imho nicer...
Another option, which looks "nicer", would consist of using librice (https://github.com/ystreet/librice) which would eventually be supported by GstWebRTC. Then we could make a WebKit-specific network backend for librice.