| Index: content/browser/renderer_host/input/touch_event_queue.cc
|
| diff --git a/content/browser/renderer_host/input/touch_event_queue.cc b/content/browser/renderer_host/input/touch_event_queue.cc
|
| index 35b1657048ba5635cf1ffbba8c353f8687b94359..9de8093dabb85f82db2f957ea19de8d835d2bf06 100644
|
| --- a/content/browser/renderer_host/input/touch_event_queue.cc
|
| +++ b/content/browser/renderer_host/input/touch_event_queue.cc
|
| @@ -636,8 +636,10 @@ void TouchEventQueue::OnGestureScrollEvent(
|
| return;
|
| }
|
|
|
| - if (gesture_event.event.type == blink::WebInputEvent::GestureScrollUpdate)
|
| + if (gesture_event.event.type == blink::WebInputEvent::GestureScrollUpdate &&
|
| + gesture_event.event.resendingPluginId == -1) {
|
| send_touch_events_async_ = true;
|
| + }
|
| }
|
|
|
| void TouchEventQueue::OnGestureEventAck(
|
| @@ -648,9 +650,12 @@ void TouchEventQueue::OnGestureEventAck(
|
| // gesture event (or even part of the current sequence). Worst case, the
|
| // delay in updating the absorption state will result in minor UI glitches.
|
| // A valid |pending_async_touchmove_| will be flushed when the next event is
|
| - // forwarded.
|
| - if (event.event.type == blink::WebInputEvent::GestureScrollUpdate)
|
| + // forwarded. Scroll updates that are being resent from a GuestView are
|
| + // ignored.
|
| + if (event.event.type == blink::WebInputEvent::GestureScrollUpdate &&
|
| + event.event.resendingPluginId == -1) {
|
| send_touch_events_async_ = (ack_result == INPUT_EVENT_ACK_STATE_CONSUMED);
|
| + }
|
| }
|
|
|
| void TouchEventQueue::OnHasTouchEventHandlers(bool has_handlers) {
|
|
|