We enforce scroll position overrides only within Blink in the main thread (via ScrollAndScaleEmulator). Therefore, we disable threaded scrolling to prevent scrolling on the compositor thread that otherwise would ignore the override.
However, disabling threaded scrolling does not prevent handling of pinch-zoom gestures on the compositor thread. As we enforce the scale override through min/max page scale settings, which are pushed to the LayerTreeHost and thus reflected in the compositor thread, this only affects scroll position changes in the context of pinch-anchoring, which ignore the scroll position override. When this happens, the change in the scroll position is later reverted on the main thread through clamping the updated position, but it is possible to visually observe intermittent jumps in the scroll position.
Comment 1 by bokan@chromium.org
, Jul 7 2016