tracking of browser process / waiting for browser close / update start args / couple of example fixes
Hi, I've added a couple of changes
First I've added tracking of the browser process's launched this can be retrieved via get_browser_process() the idea is to use this to determine when the browser process has closed so the python side can then close as well at the same time
Next there's a method called wait_browser_close() this can be used to wait for browser instances to close
Next I've added a update_startargs() method, just to avoid accessing _start_args directly What I'm doing is just using eel to launch chrome in application mode, but using a flask app as the backend
something like this
# Run Flask first
flaskserv.get_free_port()
flaskserv.start_async()
eel.update_startargs(size=(300, 200), mode='chrome', port=flaskserv.Port)
eel.show('/')
eel.wait_browser_close()
So instead of running the inbuilt bottle server, I'm running flask in a thread (marked as a daemon so that it terminates when the main thread finishes) then once we get past wait_browser_close() the whole app closes threads and all
Hi @grbd - thanks for the contribution.
I'm not sure I understand the need for this yet - but I also think that supporting this interface is going to lead to a fair amount of extra complexity for Eel to manage.
The Eel server should shut down shortly after the last websocket connection is closed. I don't think we want to support tracking the browser process itself - just the connections between a browser and the Eel server. This should work even if your case where you use Flask instead of Eel's bottle. Does this not work for you? Can you explain why? What do you want to do with the tracked browser process (if not just waiting on them) and why is waiting for websockets to close insufficient?
Having an interface to update the start args seems reasonable to me - I'd be happy to accept this contribution separately.
Based on @ChrisKnott's comments here there may also be some problems trying to track browser processes closely.