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 4a88d4598398c243cde77a02e86ba1b3fd74ad95..f08c6abd29ad6d2d2b076335914bd6fc509c9310 100644 |
--- a/third_party/WebKit/Source/core/input/EventHandler.cpp |
+++ b/third_party/WebKit/Source/core/input/EventHandler.cpp |
@@ -1487,13 +1487,23 @@ WebInputEventResult EventHandler::handleMouseReleaseEvent(const PlatformMouseEve |
m_clickNode->updateDistribution(); |
if (Node* clickTargetNode = mev.innerNode()->commonAncestor( |
*m_clickNode, parentForClickEvent)) { |
- |
// Dispatch mouseup directly w/o calling updateMouseEventTargetNodeAndSendEvents |
// because the mouseup dispatch above has already updated it |
// correctly. Moreover, clickTargetNode is different from |
// mev.innerNode at drag-release. |
- clickEventResult = toWebInputEventResult(clickTargetNode->dispatchMouseEvent(mev.event(), |
- EventTypeNames::click, m_clickCount)); |
+ |
+ MouseEvent* event = MouseEvent::create( |
+ EventTypeNames::click, |
+ clickTargetNode->document().domWindow(), |
+ mev.event(), m_clickCount, nullptr); |
+ |
+ // This is to suppress sending click events for non-primary buttons. |
+ // But still doing default action like opening a new tab for middle |
+ // click (crbug.com/255). |
+ if (mev.event().button() != MouseButton::LeftButton) |
+ event->stopPropagation(); |
+ |
+ clickEventResult = toWebInputEventResult(clickTargetNode->dispatchEvent(event)); |
} |
} |