| Index: third_party/WebKit/Source/core/input/EventHandlingUtil.cpp
|
| diff --git a/third_party/WebKit/Source/core/input/EventHandlingUtil.cpp b/third_party/WebKit/Source/core/input/EventHandlingUtil.cpp
|
| index 01231c1ead02de6c96e69bcd60ed4bd8a7f881b7..ad8c383f1480331435709331a8c09a5a55684fb2 100644
|
| --- a/third_party/WebKit/Source/core/input/EventHandlingUtil.cpp
|
| +++ b/third_party/WebKit/Source/core/input/EventHandlingUtil.cpp
|
| @@ -59,5 +59,58 @@ WebInputEventResult toWebInputEventResult(
|
| }
|
| }
|
|
|
| +PaintLayer* layerForNode(Node* node)
|
| +{
|
| + if (!node)
|
| + return nullptr;
|
| +
|
| + LayoutObject* layoutObject = node->layoutObject();
|
| + if (!layoutObject)
|
| + return nullptr;
|
| +
|
| + PaintLayer* layer = layoutObject->enclosingLayer();
|
| + if (!layer)
|
| + return nullptr;
|
| +
|
| + return layer;
|
| +}
|
| +
|
| +ScrollableArea* associatedScrollableArea(const PaintLayer* layer)
|
| +{
|
| + if (PaintLayerScrollableArea* scrollableArea = layer->getScrollableArea()) {
|
| + if (scrollableArea->scrollsOverflow())
|
| + return scrollableArea;
|
| + }
|
| +
|
| + return nullptr;
|
| +}
|
| +
|
| +ContainerNode* parentForClickEvent(const Node& node)
|
| +{
|
| + // IE doesn't dispatch click events for mousedown/mouseup events across form
|
| + // controls.
|
| + if (node.isHTMLElement() && toHTMLElement(node).isInteractiveContent())
|
| + return nullptr;
|
| +
|
| + return FlatTreeTraversal::parent(node);
|
| +}
|
| +
|
| +LayoutPoint contentPointFromRootFrame(LocalFrame* frame, const IntPoint& pointInRootFrame)
|
| +{
|
| + FrameView* view = frame->view();
|
| + // FIXME: Is it really OK to use the wrong coordinates here when view is 0?
|
| + // Historically the code would just crash; this is clearly no worse than that.
|
| + return view ? view->rootFrameToContents(pointInRootFrame) : pointInRootFrame;
|
| +}
|
| +
|
| +MouseEventWithHitTestResults performMouseEventHitTest(LocalFrame* frame,
|
| + const HitTestRequest& request, const PlatformMouseEvent& mev)
|
| +{
|
| + DCHECK(frame);
|
| + DCHECK(frame->document());
|
| +
|
| + return frame->document()->performMouseEventHitTest(request, contentPointFromRootFrame(frame, mev.position()), mev);
|
| +}
|
| +
|
| } // namespace EventHandlingUtil
|
| } // namespace blink
|
|
|