<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Feb 12, 2013, at 12:00 PM, Maciej Stachowiak &lt;<a href="mailto:mjs@apple.com">mjs@apple.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><br><div><div>On Feb 12, 2013, at 8:28 AM, Zeno Albisser &lt;<a href="mailto:zeno@webkit.org">zeno@webkit.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr"><br><div class="gmail_extra"><div class="gmail_quote">On Tue, Feb 12, 2013 at 5:01 PM, Balazs Kelemen <span dir="ltr">&lt;<a href="mailto:kbalazs@webkit.org" target="_blank">kbalazs@webkit.org</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class=""><div class="h5"><br></div></div>
You also need IPC because the NetworkProcess serves the needs of the web process. Could you describe why a network thread in the UI process fit your needs bettter? Is it to support API's related to networking or does it have other advantages?<br>

<br></blockquote><div>&nbsp;</div><div style="font-family:arial,sans-serif;font-size:13px">Yes, that was slightly ambiguous. Let me rephrase that.<br>Currently the IPC for the NetworkProcess is setup by ChildProcess::initialize(). Since we would not need to create a whole new process in our case, we would just spin of a thread and create the appropriate IPC connections ourselves.</div>
<div style="font-family:arial,sans-serif;font-size:13px">That could be an implementation detail of our NetworkThread implementation. For prototyping i even reused the whole ChildProcess code with a few minor changes. But it would feel wrong to have instances of ChildProcess in something that is a thread of the same process.</div>
<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">One of the main advantages of having networking in the UIProcess for our port is, that we could support some features such as Application URL Schemes without going through the WebKit2 API.</div>
<div><span style="font-family:arial,sans-serif;font-size:13px">This is a very Qt specific use case, that IMHO does not fit very nicely into the rest of the WebKit2 API. It is Qt specific because Qt makes heavy use of qrc files to embed content. And Application URL Schemes was the solution to allow for qrc content in a QQuickWebView.</span>&nbsp;</div>
</div></div></div></blockquote><br></div><div>Is this just for the qrc URL scheme specifically? If so, why not just teach the NetworkProcess how to handle "qrc:"? Using a thread instead of a process sounds like overkill just to solve that one problem.</div></div></blockquote><div><br></div><div>We already support custom schemes on Mac by proxying the loading from the networking process to the UI process.</div><div><br></div><div>For the Mac this is done in terms of NSURLProtocol. &nbsp;You could provide your own implementation of the port-specific bits of CustomProtocolManager and CustomProtocolManagerProxy.</div><div><br></div><div>Thanks,</div><div>~Brady</div><div><br></div></div></body></html>