<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>244002</bug_id>
          
          <creation_ts>2022-08-16 11:45:52 -0700</creation_ts>
          <short_desc>[GStreamer][WebRTC] Move network access to NetworkProcess</short_desc>
          <delta_ts>2025-12-02 03:33:29 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=303381</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>235885</blocked>
    
    <blocked>274711</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">philn</reporter>
          <assigned_to name="Philippe Normand">philn</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>gdesmott</cc>
    
    <cc>nekohayo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1891712</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">philn</who>
    <bug_when>2022-08-16 11:45:52 -0700</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1894793</commentid>
    <comment_count>1</comment_count>
    <who name="Philippe Normand">philn</who>
    <bug_when>2022-08-30 07:03:56 -0700</bug_when>
    <thetext>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...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2040966</commentid>
    <comment_count>2</comment_count>
    <who name="Philippe Normand">philn</who>
    <bug_when>2024-06-12 04:16:37 -0700</bug_when>
    <thetext>Another option, which looks &quot;nicer&quot;, 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.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2134208</commentid>
    <comment_count>3</comment_count>
    <who name="Philippe Normand">philn</who>
    <bug_when>2025-08-04 09:10:25 -0700</bug_when>
    <thetext>For now I&apos;m submitting a libnice backend. Later with librice we can have another backend...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2134220</commentid>
    <comment_count>4</comment_count>
    <who name="Philippe Normand">philn</who>
    <bug_when>2025-08-04 10:04:09 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/48903</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2138449</commentid>
    <comment_count>5</comment_count>
    <who name="Philippe Normand">philn</who>
    <bug_when>2025-08-23 04:59:39 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #3)
&gt; For now I&apos;m submitting a libnice backend. Later with librice we can have
&gt; another backend...

The libnice approach doesn&apos;t work out, it&apos;s prone to deadlocks, sync IPC calls and some internal MediaStream code (related with tracks observation stopping and closing down the PeerConnection) compete to run on the main thread... This was a nice experiment but I&apos;m afraid not the way forward. We&apos;ve learned some new things though that hopefully will apply to the librice backend yet to be written.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2141646</commentid>
    <comment_count>6</comment_count>
    <who name="Philippe Normand">philn</who>
    <bug_when>2025-09-08 10:37:14 -0700</bug_when>
    <thetext>I have a working librice-based backend in https://github.com/philn/WebKit/tree/wip/webrtc-rice

Likely some leaks to fix and iterate a bit, but it&apos;s looking like the way forward :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2142930</commentid>
    <comment_count>7</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2025-09-15 05:02:04 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/50740</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2161787</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2025-11-28 03:00:38 -0800</bug_when>
    <thetext>Committed 303623@main (53277244d7bb): &lt;https://commits.webkit.org/303623@main&gt;

Reviewed commits have been landed. Closing PR #50740 and removing active labels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2161788</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2025-11-28 03:01:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/165516876&gt;</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>