Hi,

 

We have a native application, which embeds the browser by running a
separate C++ Gecko embedding process. The two processes are
communicating via IPC.

Notifications and commands are passing between the two applications to
control the embedding functionality.

However, the fact that all the browser instances are located on the same
thread causes a lot of problems. 

For example, when one browser triggers OnStartURIOpen(), the function
cannot return until the other process got the notification and sent back
a response.

In this time the other browsers are not responsive.

A more problematic case, is when one browser invokes a Javascript
function that causes some RPC invoke on the second process. If the
native application process needs to open event loop or run some long
operation, we have to pump events while waiting for result. This might
cause Javascript functions to get called in a nested/re-entrant manner.

 

As far as I understand, there is no way to have each browser run in a
separate thread. Is there a way to emulate that? Like to pause the
browser and keep the other browser processing events, and upon result -
resume that browser? Or is there some other technique that can help with
this?

 

Thank you,

Shay.

 

_______________________________________________
dev-embedding mailing list
dev-embedding@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-embedding

Reply via email to