Currently, when a Mac trackpad pinch occurs, we send the GesturePinchBegin/Update/End sequence to the renderer. If there are wheel listeners, the events are handled on the main thread where we generate a synthetic MouseWheel with the ctrl modifier set for each GesturePinchUpdate. If this mouse wheel is not canceled, we apply the scale change from the pinch.
We should move this out of blink, so that the browser sends the necessary ctrl wheel events to the renderer to determine whether to cancel the pinch. Upon receiving an unconsumed ctrl wheel, the browser can proceed with sending the original gesture pinch events. The idea is similar to how MouseWheelEventQueue works.
Comment 1 by mcnee@chromium.org
, Nov 22 2017