• Tommy Steimel's avatar
    Ignore certain pointer events when the user interacts via touch · f05ffc1a
    Tommy Steimel authored
    This CL adds a bool to track whether the user is interacting via touch
    or mouse. When the user is interacting via touch, we ignore certain
    pointer events that were causing many issues on Android (or any touch-
    enabled device).
    
    In particular, this fixes an issue where users were unable to use the
    overlay play button in certain cases. The underlying chain of events
    that caused the button to not receive a tap was:
    
    1) While controls are shown, user taps on overlay play button to pause
    2) MediaControlsImpl sees a pointerout event from the user's tap, and
       stops the hide timer
    3) OnTimeUpdate fired, seeing a stopped timer and hiding the controls
    4) MediaControlsImpl sees a gesturetap from the user's tap, and decides
       to show the controls
    5) The controls reappear, but the user's tap has already been handled
       and the overlay play button sees nothing
    
    Bug: 822763
    Change-Id: Ia085c7f1cd082c0f44b60f22333146cd6de5f841
    Reviewed-on: https://chromium-review.googlesource.com/982900Reviewed-by: default avatarMounir Lamouri <mlamouri@chromium.org>
    Reviewed-by: default avatarBecca Hughes <beccahughes@chromium.org>
    Commit-Queue: Tommy Steimel <steimel@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#547695}
    f05ffc1a
MediaControlsImpl.cpp 65.6 KB