When input touch events have preventDefault() called on them, synthetic GestureStart* events are not generated. This means that input signals will not be sent to WebContentsObserver::DidGetUserInteraction as that method is only sent GestureStart events.
Instead, the observer method should be sent TouchStart* events, which will always fire on taps and scrolling even if they are preventDefault'ed and capture by the web application.
This bug manifests itself as pages not earning site engagement from user input when they should be earning it.
Comment 1 by bugdroid1@chromium.org
, Oct 13 2016