-
-
Notifications
You must be signed in to change notification settings - Fork 473
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Message loop work hangs in wxPython / Qt examples on Mac. Fixed in examples. Needs further debugging in next releases. #442
Comments
Enable external message pump to temporarily fix Issue #442.
Examples qt.py and wxpython.py fixed in rev b20c79b by enabling external message pump. This is just a temporary solution that combines two different approaches of integrating message loop at the same time: 1. Do message loop work in a timer 2. Enable external message pump. A correct approach is to do only one of these and not both at the same time. |
integrate into existing message loops (Qt, wxPython) (#442).
Migration Guide document was updated. |
Further debugging of the issue:
|
Minor fix to CefAppProtocol implementation, see CEF Forum topic for details. Updated Qt example so that message loop work is not called in a timer when message pump is enabled. This is not required. In wxPython apps it is still required to enable both message pump and message looper timer work.
Fixes to CefAppProtocol did not change anything. Need to debug this further in v68+ release and on Mac 10.10. |
Fixes to external message pump in upstream CEF: |
Maybe related issue reported on CEF Forum: |
It seems the issue on Mac was that Chromium was messing with NSTimer, so that all wxTimers stop working. See for more details https://www.magpcss.org/ceforum/viewtopic.php?f=6&t=17118 . |
These examples freeze during initial loading or later when typing something on a page. Issues occurs in v66.0 on Mac 10.9.
Temporary solution
See Migration Guide doc "v66+ Changes to Mac apps that integrate into existing message loop (Qt, wxPython)":
https://github.com/cztomczak/cefpython/blob/master/docs/Migration-guide.md#v66-changes-to-mac-apps-that-integrate-into-existing-message-loop-qt-wxpython
Reported problem on the CEF Forum in many details:
https://magpcss.org/ceforum/viewtopic.php?f=6&t=16181
I can see
ERROR:gpu_process_transport_factory.cc(1017)] Lost UI shared context
error message in console, however this message doesn't seem to be the cause, as I also see this message when running hello_world.py example and it works fine.The
Lost UI shared context
error can be safely ignored according to:https://stackoverflow.com/questions/49094399/chromedriver-showing-lost-ui-shared-context
hello_world.py, screenshot.py and tutorial.py examples do work fine on Mac.
I can also see
ERROR:command_buffer_proxy_impl.cc(133)] ContextResult::kTransientFailure: Failed to send GpuChannelMsg_CreateCommandBuffer
.Passing
disable-gpu
anddisable-gpu-compositing
switches tocef.Initialize
does not help. However it seems that theContextResult::kTransientFailure..
error message disappears after these switches are passed (though more testing needed if it's just luck).Issue is not related to recent Cython dupate, as I've tested both 0.25.2 and 0.28.4 and the issue occurs in both.
TODO: Compare
cefpython/src/subprocess/main_message_loop*
files withcef/tests/shared/browser/main_message_loop*
files. These files may have been changed after v66 update.The text was updated successfully, but these errors were encountered: