• Adithya Srinivasan's avatar
    Portals: Deflake TouchInputTransferAcrossReactivation · 48e72962
    Adithya Srinivasan authored
    The sequence of events causing the flake is as follows:
    
    1) when flushing the touch event queue, we ack a touch event and
       generate a scroll update gesture event.
    2) Before dispatching the GSU, we prepend a touch event
       (kTouchScrollStarted) which is non-blocking and gets acked
       immediately, causing us to run AckCompletedEvents.
    3) AckCompletedEvents acks the remaining touch events in the queue, and
       in this test, acks a touch cancel event which generates and
       dispatches a scroll end gesture event.
    4) The initial scroll update event is actually dispatched after the
       scroll end event (which is an invalid ordering).
    
    To fix this, we prevent AckCompletedEvents from being called while
    we're flushing the queue to prevent it from affecting gesture event
    ordering.
    
    Bug: 1010675
    Change-Id: I00d102ccde0b4bd458d86737a660f5fb777a3c6e
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1849430Reviewed-by: default avatarDave Tapuska <dtapuska@chromium.org>
    Reviewed-by: default avatarKevin McNee <mcnee@chromium.org>
    Commit-Queue: Adithya Srinivasan <adithyas@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#705156}
    48e72962
portal_browsertest.cc 62.3 KB