On 02/12/2013 04:51 PM, Zeno Albisser wrote:
Hi,
I have been looking into the NetworkProcess code that has recently
been added to WebKit2. For Qt we are considering moving all the
networking into a separate thread within the UIProcess.
Do you guys think that the NetworkProcess code could be designed in a
way to allow running in a separate thread of the UIProcess instead of
in a separate process?
We are convinced that this design would be a very good fit for our
needs. Also in the light of the currently ongoing effort of cleaning
up our Qt-bits and pieces in WebKit2.
After a quick look it seems to me that this could be achieved with
fairly minor modifications:
* Instead of relying on RunLoop::main() within NetworkProcess, a
different function would need to be introduced to retrieve a
"networking RunLoop". This would allow to process networking related
events in the network thread. Depending on the platform, this could of
course return a pointer to the main-RunLoop, for the cases where
networking is indeed executed in a separate process.
* Splitting the NetworkProcess class in two pieces. The child process
and IPC setup remaining in NetworkProcess, and the actual networking
code in a separate class (e.g. called NetworkThread).
Provided the IPC (between threads in our case) would be setup upfront
this would allow running the code provided by NetworkThread in a
separate thread.
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?
-kbalazs
_______________________________________________
webkit-dev mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-dev