| 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 1380398df26a3ccbd1d165d46a1d68e813558baa..035f37795b07d2852ba31cd0e9fbd4ac2cad6747 100644
|
| --- a/content/renderer/browser_plugin/browser_plugin.cc
|
| +++ b/content/renderer/browser_plugin/browser_plugin.cc
|
| @@ -448,11 +448,15 @@ blink::WebInputEventResult BrowserPlugin::handleInputEvent(
|
|
|
| DCHECK(!blink::WebInputEvent::isTouchEventType(event.type()));
|
|
|
| - if (event.type() == blink::WebInputEvent::MouseWheel) {
|
| - auto wheel_event = static_cast<const blink::WebMouseWheelEvent&>(event);
|
| - if (wheel_event.resendingPluginId == browser_plugin_instance_id_)
|
| - return blink::WebInputEventResult::NotHandled;
|
| - }
|
| + // With direct event routing turned on, BrowserPlugin should almost never
|
| + // see wheel events any more. The two exceptions are (1) scroll bubbling, and
|
| + // (2) synthetic mouse wheels generated by touchpad GesturePinch events on
|
| + // Mac, which always go to the mainframe and thus may hit BrowserPlugin if
|
| + // it's in a top-level embedder. In both cases we should indicate the event
|
| + // as not handled (for GesturePinch on Mac, indicating the event has been
|
| + // handled leads to touchpad pinch not working).
|
| + if (event.type() == blink::WebInputEvent::MouseWheel)
|
| + return blink::WebInputEventResult::NotHandled;
|
|
|
| if (blink::WebInputEvent::isGestureEventType(event.type())) {
|
| auto gesture_event = static_cast<const blink::WebGestureEvent&>(event);
|
|
|