Mac: Return to the old behavior when updating a <select> while inside a click handler.
Blink core reuses the PopupMenu of an element and first invokes Hide() over IPC if a menu is already showing. Attempting to show a new menu while the old menu is fading out confuses AppKit, since we're sting in the NESTED EVENT LOOP of ShowPopupMenu(). Disable pumping of events in the fade animation of the old menu in this case so that it closes synchronously. We still want to pump messages in normal/interactive menu fades, otherwise web content animations / videos will pause for the duration of the AppKit fade animation. So this only affects explicit calls to PopupMenuHelper::Hide(). r503112 added the logic to unblock animating content on menu fade out, but it broke a corner case when a <select> menu updates itself in a click handler. Bug: 812260 Test: See test case file in bug. Change-Id: I06a63870126383e44ae2862ebeb133680df2fd8d Reviewed-on: https://chromium-review.googlesource.com/1006238Reviewed-by:Avi Drissman <avi@chromium.org> Commit-Queue: Trent Apted <tapted@chromium.org> Cr-Commit-Position: refs/heads/master@{#549966}
Showing
Please register or sign in to comment