| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights | 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights |
| 3 * reserved. | 3 * reserved. |
| 4 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) | 4 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) |
| 5 * Copyright (C) 2012 Digia Plc. and/or its subsidiary(-ies) | 5 * Copyright (C) 2012 Digia Plc. and/or its subsidiary(-ies) |
| 6 * | 6 * |
| 7 * Redistribution and use in source and binary forms, with or without | 7 * Redistribution and use in source and binary forms, with or without |
| 8 * modification, are permitted provided that the following conditions | 8 * modification, are permitted provided that the following conditions |
| 9 * are met: | 9 * are met: |
| 10 * 1. Redistributions of source code must retain the above copyright | 10 * 1. Redistributions of source code must retain the above copyright |
| (...skipping 634 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 645 m_mouseEventManager->setClickCount(mouseEvent.clickCount()); | 645 m_mouseEventManager->setClickCount(mouseEvent.clickCount()); |
| 646 m_mouseEventManager->setClickNode( | 646 m_mouseEventManager->setClickNode( |
| 647 mev.innerNode()->isTextNode() | 647 mev.innerNode()->isTextNode() |
| 648 ? FlatTreeTraversal::parent(*mev.innerNode()) | 648 ? FlatTreeTraversal::parent(*mev.innerNode()) |
| 649 : mev.innerNode()); | 649 : mev.innerNode()); |
| 650 | 650 |
| 651 if (!mouseEvent.fromTouch()) | 651 if (!mouseEvent.fromTouch()) |
| 652 m_frame->selection().setCaretBlinkingSuspended(true); | 652 m_frame->selection().setCaretBlinkingSuspended(true); |
| 653 | 653 |
| 654 WebInputEventResult eventResult = updatePointerTargetAndDispatchEvents( | 654 WebInputEventResult eventResult = updatePointerTargetAndDispatchEvents( |
| 655 EventTypeNames::mousedown, mev.innerNode(), mev.event()); | 655 EventTypeNames::mousedown, mev.innerNode(), mev.event(), |
| 656 Vector<PlatformMouseEvent>()); |
| 656 | 657 |
| 657 if (eventResult == WebInputEventResult::NotHandled && m_frame->view()) { | 658 if (eventResult == WebInputEventResult::NotHandled && m_frame->view()) { |
| 658 FrameView* view = m_frame->view(); | 659 FrameView* view = m_frame->view(); |
| 659 PaintLayer* layer = mev.innerNode()->layoutObject() | 660 PaintLayer* layer = mev.innerNode()->layoutObject() |
| 660 ? mev.innerNode()->layoutObject()->enclosingLayer() | 661 ? mev.innerNode()->layoutObject()->enclosingLayer() |
| 661 : nullptr; | 662 : nullptr; |
| 662 IntPoint p = view->rootFrameToContents(mouseEvent.position()); | 663 IntPoint p = view->rootFrameToContents(mouseEvent.position()); |
| 663 if (layer && layer->getScrollableArea() && | 664 if (layer && layer->getScrollableArea() && |
| 664 layer->getScrollableArea()->isPointInResizeControl(p, | 665 layer->getScrollableArea()->isPointInResizeControl(p, |
| 665 ResizerForPointer)) { | 666 ResizerForPointer)) { |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 723 ASSERT(mouseEvent.type() == PlatformEvent::MousePressed); | 724 ASSERT(mouseEvent.type() == PlatformEvent::MousePressed); |
| 724 HitTestResult result = mev.hitTestResult(); | 725 HitTestResult result = mev.hitTestResult(); |
| 725 result.setToShadowHostIfInUserAgentShadowRoot(); | 726 result.setToShadowHostIfInUserAgentShadowRoot(); |
| 726 m_frame->chromeClient().onMouseDown(result.innerNode()); | 727 m_frame->chromeClient().onMouseDown(result.innerNode()); |
| 727 } | 728 } |
| 728 | 729 |
| 729 return eventResult; | 730 return eventResult; |
| 730 } | 731 } |
| 731 | 732 |
| 732 WebInputEventResult EventHandler::handleMouseMoveEvent( | 733 WebInputEventResult EventHandler::handleMouseMoveEvent( |
| 733 const PlatformMouseEvent& event) { | 734 const PlatformMouseEvent& event, |
| 735 const Vector<PlatformMouseEvent>& coalescedEvents) { |
| 734 TRACE_EVENT0("blink", "EventHandler::handleMouseMoveEvent"); | 736 TRACE_EVENT0("blink", "EventHandler::handleMouseMoveEvent"); |
| 735 | 737 |
| 736 HitTestResult hoveredNode = HitTestResult(); | 738 HitTestResult hoveredNode = HitTestResult(); |
| 737 WebInputEventResult result = handleMouseMoveOrLeaveEvent(event, &hoveredNode); | 739 WebInputEventResult result = |
| 740 handleMouseMoveOrLeaveEvent(event, coalescedEvents, &hoveredNode); |
| 738 | 741 |
| 739 Page* page = m_frame->page(); | 742 Page* page = m_frame->page(); |
| 740 if (!page) | 743 if (!page) |
| 741 return result; | 744 return result; |
| 742 | 745 |
| 743 if (PaintLayer* layer = | 746 if (PaintLayer* layer = |
| 744 EventHandlingUtil::layerForNode(hoveredNode.innerNode())) { | 747 EventHandlingUtil::layerForNode(hoveredNode.innerNode())) { |
| 745 if (ScrollableArea* layerScrollableArea = | 748 if (ScrollableArea* layerScrollableArea = |
| 746 EventHandlingUtil::associatedScrollableArea(layer)) | 749 EventHandlingUtil::associatedScrollableArea(layer)) |
| 747 layerScrollableArea->mouseMovedInContentArea(); | 750 layerScrollableArea->mouseMovedInContentArea(); |
| 748 } | 751 } |
| 749 | 752 |
| 750 if (FrameView* frameView = m_frame->view()) | 753 if (FrameView* frameView = m_frame->view()) |
| 751 frameView->mouseMovedInContentArea(); | 754 frameView->mouseMovedInContentArea(); |
| 752 | 755 |
| 753 hoveredNode.setToShadowHostIfInUserAgentShadowRoot(); | 756 hoveredNode.setToShadowHostIfInUserAgentShadowRoot(); |
| 754 page->chromeClient().mouseDidMoveOverElement(*m_frame, hoveredNode); | 757 page->chromeClient().mouseDidMoveOverElement(*m_frame, hoveredNode); |
| 755 | 758 |
| 756 return result; | 759 return result; |
| 757 } | 760 } |
| 758 | 761 |
| 759 void EventHandler::handleMouseLeaveEvent(const PlatformMouseEvent& event) { | 762 void EventHandler::handleMouseLeaveEvent(const PlatformMouseEvent& event) { |
| 760 TRACE_EVENT0("blink", "EventHandler::handleMouseLeaveEvent"); | 763 TRACE_EVENT0("blink", "EventHandler::handleMouseLeaveEvent"); |
| 761 | 764 |
| 762 handleMouseMoveOrLeaveEvent(event, 0, false, true); | 765 handleMouseMoveOrLeaveEvent(event, Vector<PlatformMouseEvent>(), 0, false, |
| 766 true); |
| 763 } | 767 } |
| 764 | 768 |
| 765 WebInputEventResult EventHandler::handleMouseMoveOrLeaveEvent( | 769 WebInputEventResult EventHandler::handleMouseMoveOrLeaveEvent( |
| 766 const PlatformMouseEvent& mouseEvent, | 770 const PlatformMouseEvent& mouseEvent, |
| 771 const Vector<PlatformMouseEvent>& coalescedEvents, |
| 767 HitTestResult* hoveredNode, | 772 HitTestResult* hoveredNode, |
| 768 bool onlyUpdateScrollbars, | 773 bool onlyUpdateScrollbars, |
| 769 bool forceLeave) { | 774 bool forceLeave) { |
| 770 ASSERT(m_frame); | 775 ASSERT(m_frame); |
| 771 ASSERT(m_frame->view()); | 776 ASSERT(m_frame->view()); |
| 772 | 777 |
| 773 m_mouseEventManager->setLastKnownMousePosition(mouseEvent); | 778 m_mouseEventManager->setLastKnownMousePosition(mouseEvent); |
| 774 | 779 |
| 775 m_hoverTimer.stop(); | 780 m_hoverTimer.stop(); |
| 776 m_cursorUpdateTimer.stop(); | 781 m_cursorUpdateTimer.stop(); |
| 777 | 782 |
| 778 m_mouseEventManager->cancelFakeMouseMoveEvent(); | 783 m_mouseEventManager->cancelFakeMouseMoveEvent(); |
| 779 m_mouseEventManager->handleSvgPanIfNeeded(false); | 784 m_mouseEventManager->handleSvgPanIfNeeded(false); |
| 780 | 785 |
| 781 if (m_frameSetBeingResized) { | 786 if (m_frameSetBeingResized) { |
| 782 return updatePointerTargetAndDispatchEvents( | 787 return updatePointerTargetAndDispatchEvents(EventTypeNames::mousemove, |
| 783 EventTypeNames::mousemove, m_frameSetBeingResized.get(), mouseEvent); | 788 m_frameSetBeingResized.get(), |
| 789 mouseEvent, coalescedEvents); |
| 784 } | 790 } |
| 785 | 791 |
| 786 // Send events right to a scrollbar if the mouse is pressed. | 792 // Send events right to a scrollbar if the mouse is pressed. |
| 787 if (m_lastScrollbarUnderMouse && m_mouseEventManager->mousePressed()) { | 793 if (m_lastScrollbarUnderMouse && m_mouseEventManager->mousePressed()) { |
| 788 m_lastScrollbarUnderMouse->mouseMoved(mouseEvent); | 794 m_lastScrollbarUnderMouse->mouseMoved(mouseEvent); |
| 789 return WebInputEventResult::HandledSystem; | 795 return WebInputEventResult::HandledSystem; |
| 790 } | 796 } |
| 791 | 797 |
| 792 // Mouse events simulated from touch should not hit-test again. | 798 // Mouse events simulated from touch should not hit-test again. |
| 793 ASSERT(!mouseEvent.fromTouch()); | 799 ASSERT(!mouseEvent.fromTouch()); |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 854 mev.event()); | 860 mev.event()); |
| 855 | 861 |
| 856 if (newSubframe) { | 862 if (newSubframe) { |
| 857 // Update over/out state before passing the event to the subframe. | 863 // Update over/out state before passing the event to the subframe. |
| 858 m_pointerEventManager->sendMouseAndPointerBoundaryEvents( | 864 m_pointerEventManager->sendMouseAndPointerBoundaryEvents( |
| 859 updateMouseEventTargetNode(mev.innerNode()), mev.event()); | 865 updateMouseEventTargetNode(mev.innerNode()), mev.event()); |
| 860 | 866 |
| 861 // Event dispatch in sendMouseAndPointerBoundaryEvents may have caused the | 867 // Event dispatch in sendMouseAndPointerBoundaryEvents may have caused the |
| 862 // subframe of the target node to be detached from its FrameView, in which | 868 // subframe of the target node to be detached from its FrameView, in which |
| 863 // case the event should not be passed. | 869 // case the event should not be passed. |
| 864 if (newSubframe->view()) | 870 if (newSubframe->view()) { |
| 865 eventResult = passMouseMoveEventToSubframe(mev, newSubframe, hoveredNode); | 871 eventResult = passMouseMoveEventToSubframe(mev, coalescedEvents, |
| 872 newSubframe, hoveredNode); |
| 873 } |
| 866 } else { | 874 } else { |
| 867 if (scrollbar && !m_mouseEventManager->mousePressed()) { | 875 if (scrollbar && !m_mouseEventManager->mousePressed()) { |
| 868 // Handle hover effects on platforms that support visual feedback on | 876 // Handle hover effects on platforms that support visual feedback on |
| 869 // scrollbar hovering. | 877 // scrollbar hovering. |
| 870 scrollbar->mouseMoved(mev.event()); | 878 scrollbar->mouseMoved(mev.event()); |
| 871 } | 879 } |
| 872 if (FrameView* view = m_frame->view()) { | 880 if (FrameView* view = m_frame->view()) { |
| 873 OptionalCursor optionalCursor = selectCursor(mev.hitTestResult()); | 881 OptionalCursor optionalCursor = selectCursor(mev.hitTestResult()); |
| 874 if (optionalCursor.isCursorChange()) { | 882 if (optionalCursor.isCursorChange()) { |
| 875 view->setCursor(optionalCursor.cursor()); | 883 view->setCursor(optionalCursor.cursor()); |
| 876 } | 884 } |
| 877 } | 885 } |
| 878 } | 886 } |
| 879 | 887 |
| 880 m_lastMouseMoveEventSubframe = newSubframe; | 888 m_lastMouseMoveEventSubframe = newSubframe; |
| 881 | 889 |
| 882 if (eventResult != WebInputEventResult::NotHandled) | 890 if (eventResult != WebInputEventResult::NotHandled) |
| 883 return eventResult; | 891 return eventResult; |
| 884 | 892 |
| 885 eventResult = updatePointerTargetAndDispatchEvents( | 893 eventResult = updatePointerTargetAndDispatchEvents( |
| 886 EventTypeNames::mousemove, mev.innerNode(), mev.event()); | 894 EventTypeNames::mousemove, mev.innerNode(), mev.event(), coalescedEvents); |
| 887 if (eventResult != WebInputEventResult::NotHandled) | 895 if (eventResult != WebInputEventResult::NotHandled) |
| 888 return eventResult; | 896 return eventResult; |
| 889 | 897 |
| 890 return m_mouseEventManager->handleMouseDraggedEvent(mev); | 898 return m_mouseEventManager->handleMouseDraggedEvent(mev); |
| 891 } | 899 } |
| 892 | 900 |
| 893 WebInputEventResult EventHandler::handleMouseReleaseEvent( | 901 WebInputEventResult EventHandler::handleMouseReleaseEvent( |
| 894 const PlatformMouseEvent& mouseEvent) { | 902 const PlatformMouseEvent& mouseEvent) { |
| 895 TRACE_EVENT0("blink", "EventHandler::handleMouseReleaseEvent"); | 903 TRACE_EVENT0("blink", "EventHandler::handleMouseReleaseEvent"); |
| 896 | 904 |
| (...skipping 21 matching lines...) Expand all Loading... |
| 918 return m_mouseEventManager->setMousePositionAndDispatchMouseEvent( | 926 return m_mouseEventManager->setMousePositionAndDispatchMouseEvent( |
| 919 updateMouseEventTargetNode(m_frameSetBeingResized.get()), | 927 updateMouseEventTargetNode(m_frameSetBeingResized.get()), |
| 920 EventTypeNames::mouseup, mouseEvent); | 928 EventTypeNames::mouseup, mouseEvent); |
| 921 } | 929 } |
| 922 | 930 |
| 923 if (m_lastScrollbarUnderMouse) { | 931 if (m_lastScrollbarUnderMouse) { |
| 924 m_mouseEventManager->invalidateClick(); | 932 m_mouseEventManager->invalidateClick(); |
| 925 m_lastScrollbarUnderMouse->mouseUp(mouseEvent); | 933 m_lastScrollbarUnderMouse->mouseUp(mouseEvent); |
| 926 return updatePointerTargetAndDispatchEvents( | 934 return updatePointerTargetAndDispatchEvents( |
| 927 EventTypeNames::mouseup, m_mouseEventManager->getNodeUnderMouse(), | 935 EventTypeNames::mouseup, m_mouseEventManager->getNodeUnderMouse(), |
| 928 mouseEvent); | 936 mouseEvent, Vector<PlatformMouseEvent>()); |
| 929 } | 937 } |
| 930 | 938 |
| 931 // Mouse events simulated from touch should not hit-test again. | 939 // Mouse events simulated from touch should not hit-test again. |
| 932 ASSERT(!mouseEvent.fromTouch()); | 940 ASSERT(!mouseEvent.fromTouch()); |
| 933 | 941 |
| 934 HitTestRequest::HitTestRequestType hitType = HitTestRequest::Release; | 942 HitTestRequest::HitTestRequestType hitType = HitTestRequest::Release; |
| 935 HitTestRequest request(hitType); | 943 HitTestRequest request(hitType); |
| 936 MouseEventWithHitTestResults mev = | 944 MouseEventWithHitTestResults mev = |
| 937 EventHandlingUtil::performMouseEventHitTest(m_frame, request, mouseEvent); | 945 EventHandlingUtil::performMouseEventHitTest(m_frame, request, mouseEvent); |
| 938 LocalFrame* subframe = | 946 LocalFrame* subframe = |
| (...skipping 17 matching lines...) Expand all Loading... |
| 956 gestureIndicator = wrapUnique(new UserGestureIndicator( | 964 gestureIndicator = wrapUnique(new UserGestureIndicator( |
| 957 m_frame->localFrameRoot() | 965 m_frame->localFrameRoot() |
| 958 ->eventHandler() | 966 ->eventHandler() |
| 959 .m_lastMouseDownUserGestureToken.release())); | 967 .m_lastMouseDownUserGestureToken.release())); |
| 960 } else { | 968 } else { |
| 961 gestureIndicator = wrapUnique(new UserGestureIndicator( | 969 gestureIndicator = wrapUnique(new UserGestureIndicator( |
| 962 DocumentUserGestureToken::create(m_frame->document()))); | 970 DocumentUserGestureToken::create(m_frame->document()))); |
| 963 } | 971 } |
| 964 | 972 |
| 965 WebInputEventResult eventResult = updatePointerTargetAndDispatchEvents( | 973 WebInputEventResult eventResult = updatePointerTargetAndDispatchEvents( |
| 966 EventTypeNames::mouseup, mev.innerNode(), mev.event()); | 974 EventTypeNames::mouseup, mev.innerNode(), mev.event(), |
| 975 Vector<PlatformMouseEvent>()); |
| 967 | 976 |
| 968 WebInputEventResult clickEventResult = | 977 WebInputEventResult clickEventResult = |
| 969 m_mouseEventManager->dispatchMouseClickIfNeeded(mev); | 978 m_mouseEventManager->dispatchMouseClickIfNeeded(mev); |
| 970 | 979 |
| 971 m_scrollManager->clearResizeScrollableArea(false); | 980 m_scrollManager->clearResizeScrollableArea(false); |
| 972 | 981 |
| 973 if (eventResult == WebInputEventResult::NotHandled) | 982 if (eventResult == WebInputEventResult::NotHandled) |
| 974 eventResult = m_mouseEventManager->handleMouseReleaseEvent(mev); | 983 eventResult = m_mouseEventManager->handleMouseReleaseEvent(mev); |
| 975 m_mouseEventManager->clearDragHeuristicState(); | 984 m_mouseEventManager->clearDragHeuristicState(); |
| 976 | 985 |
| (...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1247 return m_pointerEventManager->hasProcessedPointerCapture(pointerId, target); | 1256 return m_pointerEventManager->hasProcessedPointerCapture(pointerId, target); |
| 1248 } | 1257 } |
| 1249 | 1258 |
| 1250 void EventHandler::elementRemoved(EventTarget* target) { | 1259 void EventHandler::elementRemoved(EventTarget* target) { |
| 1251 m_pointerEventManager->elementRemoved(target); | 1260 m_pointerEventManager->elementRemoved(target); |
| 1252 } | 1261 } |
| 1253 | 1262 |
| 1254 WebInputEventResult EventHandler::updatePointerTargetAndDispatchEvents( | 1263 WebInputEventResult EventHandler::updatePointerTargetAndDispatchEvents( |
| 1255 const AtomicString& mouseEventType, | 1264 const AtomicString& mouseEventType, |
| 1256 Node* targetNode, | 1265 Node* targetNode, |
| 1257 const PlatformMouseEvent& mouseEvent) { | 1266 const PlatformMouseEvent& mouseEvent, |
| 1267 const Vector<PlatformMouseEvent>& coalescedEvents) { |
| 1258 ASSERT(mouseEventType == EventTypeNames::mousedown || | 1268 ASSERT(mouseEventType == EventTypeNames::mousedown || |
| 1259 mouseEventType == EventTypeNames::mousemove || | 1269 mouseEventType == EventTypeNames::mousemove || |
| 1260 mouseEventType == EventTypeNames::mouseup); | 1270 mouseEventType == EventTypeNames::mouseup); |
| 1261 | 1271 |
| 1262 const auto& eventResult = m_pointerEventManager->sendMousePointerEvent( | 1272 const auto& eventResult = m_pointerEventManager->sendMousePointerEvent( |
| 1263 updateMouseEventTargetNode(targetNode), mouseEventType, mouseEvent); | 1273 updateMouseEventTargetNode(targetNode), mouseEventType, mouseEvent, |
| 1274 coalescedEvents); |
| 1264 return eventResult; | 1275 return eventResult; |
| 1265 } | 1276 } |
| 1266 | 1277 |
| 1267 WebInputEventResult EventHandler::handleWheelEvent( | 1278 WebInputEventResult EventHandler::handleWheelEvent( |
| 1268 const PlatformWheelEvent& event) { | 1279 const PlatformWheelEvent& event) { |
| 1269 #if OS(MACOSX) | 1280 #if OS(MACOSX) |
| 1270 // Filter Mac OS specific phases, usually with a zero-delta. | 1281 // Filter Mac OS specific phases, usually with a zero-delta. |
| 1271 // https://crbug.com/553732 | 1282 // https://crbug.com/553732 |
| 1272 // TODO(chongz): EventSender sends events with |PlatformWheelEventPhaseNone|, | 1283 // TODO(chongz): EventSender sends events with |PlatformWheelEventPhaseNone|, |
| 1273 // but it shouldn't. | 1284 // but it shouldn't. |
| (...skipping 784 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2058 | 2069 |
| 2059 // Send mouse entered if we're setting a new scrollbar. | 2070 // Send mouse entered if we're setting a new scrollbar. |
| 2060 if (scrollbar && setLast) | 2071 if (scrollbar && setLast) |
| 2061 scrollbar->mouseEntered(); | 2072 scrollbar->mouseEntered(); |
| 2062 | 2073 |
| 2063 m_lastScrollbarUnderMouse = setLast ? scrollbar : nullptr; | 2074 m_lastScrollbarUnderMouse = setLast ? scrollbar : nullptr; |
| 2064 } | 2075 } |
| 2065 } | 2076 } |
| 2066 | 2077 |
| 2067 WebInputEventResult EventHandler::handleTouchEvent( | 2078 WebInputEventResult EventHandler::handleTouchEvent( |
| 2068 const PlatformTouchEvent& event) { | 2079 const PlatformTouchEvent& event, |
| 2080 const Vector<PlatformTouchEvent>& coalescedEvents) { |
| 2069 TRACE_EVENT0("blink", "EventHandler::handleTouchEvent"); | 2081 TRACE_EVENT0("blink", "EventHandler::handleTouchEvent"); |
| 2070 return m_pointerEventManager->handleTouchEvents(event); | 2082 return m_pointerEventManager->handleTouchEvents(event, coalescedEvents); |
| 2071 } | 2083 } |
| 2072 | 2084 |
| 2073 WebInputEventResult EventHandler::passMousePressEventToSubframe( | 2085 WebInputEventResult EventHandler::passMousePressEventToSubframe( |
| 2074 MouseEventWithHitTestResults& mev, | 2086 MouseEventWithHitTestResults& mev, |
| 2075 LocalFrame* subframe) { | 2087 LocalFrame* subframe) { |
| 2076 selectionController().passMousePressEventToSubframe(mev); | 2088 selectionController().passMousePressEventToSubframe(mev); |
| 2077 WebInputEventResult result = | 2089 WebInputEventResult result = |
| 2078 subframe->eventHandler().handleMousePressEvent(mev.event()); | 2090 subframe->eventHandler().handleMousePressEvent(mev.event()); |
| 2079 if (result != WebInputEventResult::NotHandled) | 2091 if (result != WebInputEventResult::NotHandled) |
| 2080 return result; | 2092 return result; |
| 2081 return WebInputEventResult::HandledSystem; | 2093 return WebInputEventResult::HandledSystem; |
| 2082 } | 2094 } |
| 2083 | 2095 |
| 2084 WebInputEventResult EventHandler::passMouseMoveEventToSubframe( | 2096 WebInputEventResult EventHandler::passMouseMoveEventToSubframe( |
| 2085 MouseEventWithHitTestResults& mev, | 2097 MouseEventWithHitTestResults& mev, |
| 2098 const Vector<PlatformMouseEvent>& coalescedEvents, |
| 2086 LocalFrame* subframe, | 2099 LocalFrame* subframe, |
| 2087 HitTestResult* hoveredNode) { | 2100 HitTestResult* hoveredNode) { |
| 2088 if (m_mouseEventManager->mouseDownMayStartDrag()) | 2101 if (m_mouseEventManager->mouseDownMayStartDrag()) |
| 2089 return WebInputEventResult::NotHandled; | 2102 return WebInputEventResult::NotHandled; |
| 2090 WebInputEventResult result = | 2103 WebInputEventResult result = |
| 2091 subframe->eventHandler().handleMouseMoveOrLeaveEvent(mev.event(), | 2104 subframe->eventHandler().handleMouseMoveOrLeaveEvent( |
| 2092 hoveredNode); | 2105 mev.event(), coalescedEvents, hoveredNode); |
| 2093 if (result != WebInputEventResult::NotHandled) | 2106 if (result != WebInputEventResult::NotHandled) |
| 2094 return result; | 2107 return result; |
| 2095 return WebInputEventResult::HandledSystem; | 2108 return WebInputEventResult::HandledSystem; |
| 2096 } | 2109 } |
| 2097 | 2110 |
| 2098 WebInputEventResult EventHandler::passMouseReleaseEventToSubframe( | 2111 WebInputEventResult EventHandler::passMouseReleaseEventToSubframe( |
| 2099 MouseEventWithHitTestResults& mev, | 2112 MouseEventWithHitTestResults& mev, |
| 2100 LocalFrame* subframe) { | 2113 LocalFrame* subframe) { |
| 2101 WebInputEventResult result = | 2114 WebInputEventResult result = |
| 2102 subframe->eventHandler().handleMouseReleaseEvent(mev.event()); | 2115 subframe->eventHandler().handleMouseReleaseEvent(mev.event()); |
| 2103 if (result != WebInputEventResult::NotHandled) | 2116 if (result != WebInputEventResult::NotHandled) |
| 2104 return result; | 2117 return result; |
| 2105 return WebInputEventResult::HandledSystem; | 2118 return WebInputEventResult::HandledSystem; |
| 2106 } | 2119 } |
| 2107 | 2120 |
| 2108 FrameHost* EventHandler::frameHost() const { | 2121 FrameHost* EventHandler::frameHost() const { |
| 2109 if (!m_frame->page()) | 2122 if (!m_frame->page()) |
| 2110 return nullptr; | 2123 return nullptr; |
| 2111 | 2124 |
| 2112 return &m_frame->page()->frameHost(); | 2125 return &m_frame->page()->frameHost(); |
| 2113 } | 2126 } |
| 2114 | 2127 |
| 2115 } // namespace blink | 2128 } // namespace blink |
| OLD | NEW |