Index: content/renderer/browser_plugin/browser_plugin.cc |
diff --git a/content/renderer/browser_plugin/browser_plugin.cc b/content/renderer/browser_plugin/browser_plugin.cc |
index 48491e6c5861af1089e573f46c264eef382ee4e9..044459f0b7659b1b051bca1d1d63e46745bae9af 100644 |
--- a/content/renderer/browser_plugin/browser_plugin.cc |
+++ b/content/renderer/browser_plugin/browser_plugin.cc |
@@ -501,6 +501,18 @@ bool BrowserPlugin::handleInputEvent(const blink::WebInputEvent& event, |
if (guest_crashed_ || !attached()) |
return false; |
+ if (event.type == blink::WebInputEvent::MouseWheel) { |
+ auto wheel_event = static_cast<const blink::WebMouseWheelEvent&>(event); |
+ if (wheel_event.resendingPluginId == browser_plugin_instance_id_) |
+ return false; |
+ } |
+ |
+ if (blink::WebInputEvent::isGestureEventType(event.type)) { |
+ auto gesture_event = static_cast<const blink::WebGestureEvent&>(event); |
+ if (gesture_event.resendingPluginId == browser_plugin_instance_id_) |
+ return false; |
+ } |
+ |
if (event.type == blink::WebInputEvent::ContextMenu) |
return true; |
@@ -518,6 +530,12 @@ bool BrowserPlugin::handleInputEvent(const blink::WebInputEvent& event, |
view_rect_, |
&event)); |
GetWebKitCursorInfo(cursor_, &cursor_info); |
+ |
+ // Although we forward this event to the guest, we don't report it as consumed |
+ // since other targets of this event in Blink never get that chance either. |
+ if (event.type == blink::WebInputEvent::GestureFlingStart) |
+ return false; |
+ |
return true; |
} |