Repository navigation
Conversation
|
Would be great if the commit message would also go into detail what the issue is and why this fixes it. Feel free to copy this:
|
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.
Description
Queue navigation of service integration login window.
Motivation and Context
Qt and CEF like to fight each other's queues.
Fixes a crash when attempting to log into Twitch Service Integration.
Fix found by @prgmitchell and verified by both Mitchell and myself.
How Has This Been Tested?
Log into Twitch on macOS.
Types of changes
Checklist: