Index: third_party/WebKit/Source/core/input/EventHandler.cpp |
diff --git a/third_party/WebKit/Source/core/input/EventHandler.cpp b/third_party/WebKit/Source/core/input/EventHandler.cpp |
index 8581d36a79c4af94e669f85882d3a333dabe3376..d54a59bda86a030c94b04326dd606cf383169916 100644 |
--- a/third_party/WebKit/Source/core/input/EventHandler.cpp |
+++ b/third_party/WebKit/Source/core/input/EventHandler.cpp |
@@ -977,6 +977,12 @@ WebInputEventResult EventHandler::handleMousePressEvent(const PlatformMouseEvent |
{ |
TRACE_EVENT0("blink", "EventHandler::handleMousePressEvent"); |
+ // For 4th/5th button in the mouse since Chrome does not yet send |
+ // button value to Blink but in some cases it does send the event. |
+ // This check is needed to suppress such an event (crbug.com/574959) |
+ if (mouseEvent.button() == NoButton) |
+ return WebInputEventResult::HandledSuppressed; |
+ |
RefPtrWillBeRawPtr<FrameView> protector(m_frame->view()); |
UserGestureIndicator gestureIndicator(DefinitelyProcessingUserGesture); |
@@ -1305,6 +1311,12 @@ WebInputEventResult EventHandler::handleMouseReleaseEvent(const PlatformMouseEve |
{ |
TRACE_EVENT0("blink", "EventHandler::handleMouseReleaseEvent"); |
+ // For 4th/5th button in the mouse since Chrome does not yet send |
+ // button value to Blink but in some cases it does send the event. |
+ // This check is needed to suppress such an event (crbug.com/574959) |
+ if (mouseEvent.button() == NoButton) |
+ return WebInputEventResult::HandledSuppressed; |
+ |
RefPtrWillBeRawPtr<FrameView> protector(m_frame->view()); |
m_frame->selection().setCaretBlinkingSuspended(false); |