<html>
    <head>
      <base href="https://bugs.webkit.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [GStreamer] Certificate database missing when accessing HTTPS via WebKitWebSourceGStreamer"
   href="https://bugs.webkit.org/show_bug.cgi?id=163166#c2">Comment # 2</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [GStreamer] Certificate database missing when accessing HTTPS via WebKitWebSourceGStreamer"
   href="https://bugs.webkit.org/show_bug.cgi?id=163166">bug 163166</a>
              from <span class="vcard"><a class="email" href="mailto:jana&#64;saout.de" title="Jana Saout &lt;jana&#64;saout.de&gt;"> <span class="fn">Jana Saout</span></a>
</span></b>
        <pre>Ok, after a bit of digging around I found out why all other cases are working and only the HLS plugin is having this issue. This is because only with that plugin I see network from the web process.

This is caused by this commit: <a href="http://trac.webkit.org/changeset/202615">http://trac.webkit.org/changeset/202615</a>
(see <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - [GStreamer] Adaptive streaming issues"
   href="show_bug.cgi?id=144040">bug #144040</a>)

The new code path handling the &quot;not main thread&quot; case is doing this when the callback comes in from state READY to PAUSED.

This happens in webKitWebSrcStart:

    if (!priv-&gt;player || !priv-&gt;createdInMainThread) {
        priv-&gt;client = std::make_unique&lt;ResourceHandleStreamingClient&gt;(src, WTFMove(request));

I haven't figured out yet what this code is doing, it looks like it's setting up a new thread with its own main loop to handle the request, apparently to avoid some deadlocks.

The code path for the &quot;from the main thread&quot; below case does things a bit differently:

        priv-&gt;resource = priv-&gt;loader-&gt;requestResource(request, loadOptions);
        if (priv-&gt;resource) {
            priv-&gt;resource-&gt;setClient(std::make_unique&lt;CachedResourceStreamingClient&gt;(protector.get()));
            GST_DEBUG_OBJECT(protector.get(), &quot;Started request&quot;);

... which goes via priv-&gt;loader wich is somehow a loader created elsewhere which at some point uses the platform strategies loader, which goes through the network process.

Somehow the special case needs to be fixed too.</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>