Descriptionviews: menu: Unwind multiple menu message loops eagerly with EXIT_ALL
This allows menus to fully unwind after MenuController::CancelAll() is
called, without any additional events processed through the nested
dispatcher.
In particular, tests that cancel their menu cannot hang at the very end
of the test when there are no more events left to dispatch. Before, we
relied on some event - ANY event - getting through nested dispatch in
order to continue unwinding. This could cause hangs in test code when
there weren't any more events.
If a test calls MenuController::CancelAll() and then terminates its
outer RunLoop, the program should terminate. This change ensures that.
BUG=432576, 446335
TEST=interactive_ui_tests
Committed: https://crrev.com/8f674371c1e60b9de8ce6dd280ea77e1e592bc32
Cr-Commit-Position: refs/heads/master@{#310180}
Patch Set 1 #
Total comments: 2
Patch Set 2 : comments from sky #
Total comments: 1
Patch Set 3 : also EXIT_DESTROYED #Messages
Total messages: 11 (2 generated)
|