<html>
    <head>
      <base href="https://bugs.webkit.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [WebRTC][OpenWebRTC] implement CaptureDeviceManager"
   href="https://bugs.webkit.org/show_bug.cgi?id=164010#c1">Comment # 1</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [WebRTC][OpenWebRTC] implement CaptureDeviceManager"
   href="https://bugs.webkit.org/show_bug.cgi?id=164010">bug 164010</a>
              from <span class="vcard"><a class="email" href="mailto:eric.carlson&#64;apple.com" title="Eric Carlson &lt;eric.carlson&#64;apple.com&gt;"> <span class="fn">Eric Carlson</span></a>
</span></b>
        <pre>(In reply to <a href="show_bug.cgi?id=164010#c0">comment #0</a>)
<span class="quote">&gt; Since <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - [MediaStream] Resolve constraints and enumerate devices in the UI process"
   href="show_bug.cgi?id=162147">bug 162147</a> was fixed our RealtimeMediaSourceCenter is broken because
&gt; the media devices are enumerated in the instance running in the UI process.
&gt; The instance running in the Web process has an empty sourceMap hashmap. I
&gt; think that to solve this we should move the enumeration process in a
&gt; CaptureDeviceManager implementation, similar to what the Mac port does.
&gt; 
&gt; We will also likely need a synchronous OWR API to list devices. The API we
&gt; have for this right now is asynchronous.</span >

Or you can make RealtimeMediaSourceCenter::getMediaStreamDevices asynchronous, e.g. it could take a lambda:

    using GetDevicesHandler = std::function&lt;void(Vector&lt;CaptureDevice&gt;&amp;&amp;)&gt;;
    virtual void getMediaStreamDevices(GetDevicesHandler) = 0;</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>