[webkit-dev] IPC implementation help in haiku's webkit port
Alex Christensen
achristensen at apple.com
Tue May 28 10:46:32 PDT 2019
It sounds like your design requires work on the main thread to create a connection to another process which is causing a deadlock when the main thread is waiting for another reply. If I were working on this I would compare with an existing implementation to see what process and thread each step is running on.
> On May 27, 2019, at 11:49 PM, Rajagopalan Gangadharan <g.raju2000 at gmail.com> wrote:
>
> Hello Everybody,
>
> I stumbled upon a problem in an attempt to port webkit to haiku. Before everything I would like to take few moments to explain about state of the port.
>
> 1) We have a well maintained WebKitLegacy port on haiku.
> 2) Now in the process of porting latest webkit to haiku currently at fixing IPC. We didnt want to use BSD sockets and would like to use Native messaging framework [BMessage : https://www.haiku-os.org/docs/api/classBMessage.html <https://www.haiku-os.org/docs/api/classBMessage.html> ] because our native application waits for BMessage in its main thread as a result we cant wait for both sockets and BMessage on same thread. Also we would like to maintain the haiku ecosystem :) .
>
> 3) We need process id of the intended process we would like to connect to send data [BMessenger: https://www.haiku-os.org/docs/api/classBMessenger.html <https://www.haiku-os.org/docs/api/classBMessenger.html> ] So instead of exchanging socket id's we would just exchange pid's
>
> 4) We were able to successfully deliver and process the messages. Currently we were able to proceed until creating a connection between network process and webprocess(NetworkConnectionToWebProcess).
>
> Now where we are stuck is that After creating a connection between network process and webprocess we would have to reply back to webprocess about the connection info( pid of network process in our case ). I see the reply is an alias of DelayedReply(CompletionHandler<Attachment&>) according to the derived sources.
> Unfortunately the webprocess is indefinitely waiting for reply from webprocessproxy for which we are unable to "reply" .
>
> Could anyone point me where I would have went wrong or what could be done to fix this and any better ways for implementing this.
>
> Please check the source references for more info:
> NetworkProcessProxy: [ https://github.com/RAJAGOPALAN-GANGADHARAN/webkit/blob/6bf81d79669be06b4efd9d8ced4139cbe07216b2/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp#L150 <https://github.com/RAJAGOPALAN-GANGADHARAN/webkit/blob/6bf81d79669be06b4efd9d8ced4139cbe07216b2/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp#L150>]
>
> NetworkProcess [ https://github.com/RAJAGOPALAN-GANGADHARAN/webkit/blob/6bf81d79669be06b4efd9d8ced4139cbe07216b2/Source/WebKit/NetworkProcess/haiku/NetworkProcessHaiku.cpp#L98 <https://github.com/RAJAGOPALAN-GANGADHARAN/webkit/blob/6bf81d79669be06b4efd9d8ced4139cbe07216b2/Source/WebKit/NetworkProcess/haiku/NetworkProcessHaiku.cpp#L98> ]
>
> ConnectionHaiku : [https://github.com/RAJAGOPALAN-GANGADHARAN/webkit/blob/ipc-iteration2/Source/WebKit/Platform/IPC/haiku/ConnectionHaiku.cpp <https://github.com/RAJAGOPALAN-GANGADHARAN/webkit/blob/ipc-iteration2/Source/WebKit/Platform/IPC/haiku/ConnectionHaiku.cpp> ]
>
> Attachment : [ https://github.com/RAJAGOPALAN-GANGADHARAN/webkit/blob/ipc-iteration2/Source/WebKit/Platform/IPC/haiku/AttachmentHaiku.cpp <https://github.com/RAJAGOPALAN-GANGADHARAN/webkit/blob/ipc-iteration2/Source/WebKit/Platform/IPC/haiku/AttachmentHaiku.cpp> ]
> I believe these places are currently in focus
> For further reference please check [https://github.com/RAJAGOPALAN-GANGADHARAN/webkit/tree/ipc-iteration2 <https://github.com/RAJAGOPALAN-GANGADHARAN/webkit/tree/ipc-iteration2>]
>
> Thank you
> Regards
> G.Rajagopalan
>
> _______________________________________________
> webkit-dev mailing list
> webkit-dev at lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20190528/553d9cc9/attachment.html>
More information about the webkit-dev
mailing list