| Index: Source/core/input/EventHandler.cpp
|
| diff --git a/Source/core/input/EventHandler.cpp b/Source/core/input/EventHandler.cpp
|
| index 19698b6bf5a0b587896378adc6a5058273c8515d..8bde8d0a3542ce6afa4dd31c70d0e7f5106c93ef 100644
|
| --- a/Source/core/input/EventHandler.cpp
|
| +++ b/Source/core/input/EventHandler.cpp
|
| @@ -998,6 +998,13 @@ bool EventHandler::handleMousePressEvent(const PlatformMouseEvent& mouseEvent)
|
| swallowEvent = handleMousePressEvent(mev);
|
| }
|
|
|
| + if (mev.hitTestResult().innerNode() && mouseEvent.button() == LeftButton) {
|
| + ASSERT(mouseEvent.type() == PlatformEvent::MousePressed);
|
| + HitTestResult result = mev.hitTestResult();
|
| + result.setToShadowHostIfInUserAgentShadowRoot();
|
| + m_frame->chromeClient().onMouseDown(result.innerNode());
|
| + }
|
| +
|
| return swallowEvent;
|
| }
|
|
|
| @@ -2034,6 +2041,13 @@ bool EventHandler::handleGestureTap(const GestureEventWithHitTestResults& target
|
| if (!swallowMouseDownEvent)
|
| swallowMouseDownEvent = handleMousePressEvent(MouseEventWithHitTestResults(fakeMouseDown, currentHitTest));
|
|
|
| + if (currentHitTest.innerNode()) {
|
| + ASSERT(gestureEvent.type() == PlatformEvent::GestureTap);
|
| + HitTestResult result = currentHitTest;
|
| + result.setToShadowHostIfInUserAgentShadowRoot();
|
| + m_frame->chromeClient().onMouseDown(result.innerNode());
|
| + }
|
| +
|
| // FIXME: Use a hit-test cache to avoid unnecessary hit tests. http://crbug.com/398920
|
| if (currentHitTest.innerNode()) {
|
| LocalFrame* mainFrame = m_frame->localFrameRoot();
|
|
|