mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-10-28 08:48:59 -04:00
frontend: Queue navigation in auth window to fix crash
When the browser panel inside a dialog navigates to a new URL, it calls the navigation URL handler from its own event loop. The OAuth dialog has installed such a handler to check each navigation event's URL for a possible "code" argument. If such a "code" argument is found, the dialog's "accept" method is called, which in turn will call "closeBrowser" as the dialog attempts to close itself. This results in browser shutdown code running in the middle of CEF draining its main event loop of pending tasks. In the Chrome Runtime this now results in a crash within CEF's "InterceptNavigationThrottle" destructor, which is executed as part of the browser shutdown. Decoupling the URL change handler of the dialog from the URL change handler of the browser panel ensures that the browser shutdown is initiated from the Qt main event loop and not the CEF main event loop and resolves the issue.
This commit is contained in:
500 Internal Server Error
Gitea Version: 1.28.0+dev-477-g8b6ad49a5f