[ios] Check removed_request_awaiting_dismissal_ as active request
When a presenting popup infobar is replaced, the request is removed from the queue, set as removed_request_awaiting_dismissal_ in OverlayPresenter, and UI is dismissed. But, dismissal logic is async and resetting the request_ property of OverlayPresentationContext requires waiting for OverlayUIWasDismissed() callback. In the meantime, changing active WebStates causes the OverlayPresenter to ask the OverlayPresentationContext to hide its presented request by calling HideOverlayUI and passing the current front of the queue as the request to hide. This is where there is a discrepancy and a DCHECK on request_ fails. Check for removed_request_awaiting_dismissal_ before assuming the front request is the currently presenting request. Bug: 1120786 Change-Id: Icb25572bfcf9fb7450c2b7ce6d00eb3a3915e8e9 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2383011Reviewed-by:Mike Dougherty <michaeldo@chromium.org> Commit-Queue: Mike Dougherty <michaeldo@chromium.org> Auto-Submit: Chris Lu <thegreenfrog@chromium.org> Cr-Commit-Position: refs/heads/master@{#803413}
Showing
Please register or sign in to comment