| 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 629 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 640 m_mouseEventManager->setClickCount(mouseEvent.clickCount()); | 640 m_mouseEventManager->setClickCount(mouseEvent.clickCount()); |
| 641 m_mouseEventManager->setClickNode( | 641 m_mouseEventManager->setClickNode( |
| 642 mev.innerNode()->isTextNode() | 642 mev.innerNode()->isTextNode() |
| 643 ? FlatTreeTraversal::parent(*mev.innerNode()) | 643 ? FlatTreeTraversal::parent(*mev.innerNode()) |
| 644 : mev.innerNode()); | 644 : mev.innerNode()); |
| 645 | 645 |
| 646 if (!mouseEvent.fromTouch()) | 646 if (!mouseEvent.fromTouch()) |
| 647 m_frame->selection().setCaretBlinkingSuspended(true); | 647 m_frame->selection().setCaretBlinkingSuspended(true); |
| 648 | 648 |
| 649 WebInputEventResult eventResult = updatePointerTargetAndDispatchEvents( | 649 WebInputEventResult eventResult = updatePointerTargetAndDispatchEvents( |
| 650 EventTypeNames::mousedown, mev.innerNode(), mev.event()); | 650 EventTypeNames::mousedown, mev.innerNode(), mev.event(), |
| 651 Vector<PlatformMouseEvent>()); |
| 651 | 652 |
| 652 if (eventResult == WebInputEventResult::NotHandled && m_frame->view()) { | 653 if (eventResult == WebInputEventResult::NotHandled && m_frame->view()) { |
| 653 FrameView* view = m_frame->view(); | 654 FrameView* view = m_frame->view(); |
| 654 PaintLayer* layer = mev.innerNode()->layoutObject() | 655 PaintLayer* layer = mev.innerNode()->layoutObject() |
| 655 ? mev.innerNode()->layoutObject()->enclosingLayer() | 656 ? mev.innerNode()->layoutObject()->enclosingLayer() |
| 656 : nullptr; | 657 : nullptr; |
| 657 IntPoint p = view->rootFrameToContents(mouseEvent.position()); | 658 IntPoint p = view->rootFrameToContents(mouseEvent.position()); |
| 658 if (layer && layer->getScrollableArea() && | 659 if (layer && layer->getScrollableArea() && |
| 659 layer->getScrollableArea()->isPointInResizeControl(p, | 660 layer->getScrollableArea()->isPointInResizeControl(p, |
| 660 ResizerForPointer)) { | 661 ResizerForPointer)) { |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 718 ASSERT(mouseEvent.type() == PlatformEvent::MousePressed); | 719 ASSERT(mouseEvent.type() == PlatformEvent::MousePressed); |
| 719 HitTestResult result = mev.hitTestResult(); | 720 HitTestResult result = mev.hitTestResult(); |
| 720 result.setToShadowHostIfInUserAgentShadowRoot(); | 721 result.setToShadowHostIfInUserAgentShadowRoot(); |
| 721 m_frame->chromeClient().onMouseDown(result.innerNode()); | 722 m_frame->chromeClient().onMouseDown(result.innerNode()); |
| 722 } | 723 } |
| 723 | 724 |
| 724 return eventResult; | 725 return eventResult; |
| 725 } | 726 } |
| 726 | 727 |
| 727 WebInputEventResult EventHandler::handleMouseMoveEvent( | 728 WebInputEventResult EventHandler::handleMouseMoveEvent( |
| 728 const PlatformMouseEvent& event) { | 729 const PlatformMouseEvent& event, |
| 730 const Vector<PlatformMouseEvent>& coalescedEvents) { |
| 729 TRACE_EVENT0("blink", "EventHandler::handleMouseMoveEvent"); | 731 TRACE_EVENT0("blink", "EventHandler::handleMouseMoveEvent"); |
| 730 | 732 |
| 731 HitTestResult hoveredNode = HitTestResult(); | 733 HitTestResult hoveredNode = HitTestResult(); |
| 732 WebInputEventResult result = handleMouseMoveOrLeaveEvent(event, &hoveredNode); | 734 WebInputEventResult result = |
| 735 handleMouseMoveOrLeaveEvent(event, coalescedEvents, &hoveredNode); |
| 733 | 736 |
| 734 Page* page = m_frame->page(); | 737 Page* page = m_frame->page(); |
| 735 if (!page) | 738 if (!page) |
| 736 return result; | 739 return result; |
| 737 | 740 |
| 738 if (PaintLayer* layer = | 741 if (PaintLayer* layer = |
| 739 EventHandlingUtil::layerForNode(hoveredNode.innerNode())) { | 742 EventHandlingUtil::layerForNode(hoveredNode.innerNode())) { |
| 740 if (ScrollableArea* layerScrollableArea = | 743 if (ScrollableArea* layerScrollableArea = |
| 741 EventHandlingUtil::associatedScrollableArea(layer)) | 744 EventHandlingUtil::associatedScrollableArea(layer)) |
| 742 layerScrollableArea->mouseMovedInContentArea(); | 745 layerScrollableArea->mouseMovedInContentArea(); |
| 743 } | 746 } |
| 744 | 747 |
| 745 if (FrameView* frameView = m_frame->view()) | 748 if (FrameView* frameView = m_frame->view()) |
| 746 frameView->mouseMovedInContentArea(); | 749 frameView->mouseMovedInContentArea(); |
| 747 | 750 |
| 748 hoveredNode.setToShadowHostIfInUserAgentShadowRoot(); | 751 hoveredNode.setToShadowHostIfInUserAgentShadowRoot(); |
| 749 page->chromeClient().mouseDidMoveOverElement(*m_frame, hoveredNode); | 752 page->chromeClient().mouseDidMoveOverElement(*m_frame, hoveredNode); |
| 750 | 753 |
| 751 return result; | 754 return result; |
| 752 } | 755 } |
| 753 | 756 |
| 754 void EventHandler::handleMouseLeaveEvent(const PlatformMouseEvent& event) { | 757 void EventHandler::handleMouseLeaveEvent(const PlatformMouseEvent& event) { |
| 755 TRACE_EVENT0("blink", "EventHandler::handleMouseLeaveEvent"); | 758 TRACE_EVENT0("blink", "EventHandler::handleMouseLeaveEvent"); |
| 756 | 759 |
| 757 handleMouseMoveOrLeaveEvent(event, 0, false, true); | 760 handleMouseMoveOrLeaveEvent(event, Vector<PlatformMouseEvent>(), 0, false, |
| 761 true); |
| 758 } | 762 } |
| 759 | 763 |
| 760 WebInputEventResult EventHandler::handleMouseMoveOrLeaveEvent( | 764 WebInputEventResult EventHandler::handleMouseMoveOrLeaveEvent( |
| 761 const PlatformMouseEvent& mouseEvent, | 765 const PlatformMouseEvent& mouseEvent, |
| 766 const Vector<PlatformMouseEvent>& coalescedEvents, |
| 762 HitTestResult* hoveredNode, | 767 HitTestResult* hoveredNode, |
| 763 bool onlyUpdateScrollbars, | 768 bool onlyUpdateScrollbars, |
| 764 bool forceLeave) { | 769 bool forceLeave) { |
| 765 ASSERT(m_frame); | 770 ASSERT(m_frame); |
| 766 ASSERT(m_frame->view()); | 771 ASSERT(m_frame->view()); |
| 767 | 772 |
| 768 m_mouseEventManager->setLastKnownMousePosition(mouseEvent); | 773 m_mouseEventManager->setLastKnownMousePosition(mouseEvent); |
| 769 | 774 |
| 770 m_hoverTimer.stop(); | 775 m_hoverTimer.stop(); |
| 771 m_cursorUpdateTimer.stop(); | 776 m_cursorUpdateTimer.stop(); |
| 772 | 777 |
| 773 m_mouseEventManager->cancelFakeMouseMoveEvent(); | 778 m_mouseEventManager->cancelFakeMouseMoveEvent(); |
| 774 m_mouseEventManager->handleSvgPanIfNeeded(false); | 779 m_mouseEventManager->handleSvgPanIfNeeded(false); |
| 775 | 780 |
| 776 if (m_frameSetBeingResized) { | 781 if (m_frameSetBeingResized) { |
| 777 return updatePointerTargetAndDispatchEvents( | 782 return updatePointerTargetAndDispatchEvents(EventTypeNames::mousemove, |
| 778 EventTypeNames::mousemove, m_frameSetBeingResized.get(), mouseEvent); | 783 m_frameSetBeingResized.get(), |
| 784 mouseEvent, coalescedEvents); |
| 779 } | 785 } |
| 780 | 786 |
| 781 // Send events right to a scrollbar if the mouse is pressed. | 787 // Send events right to a scrollbar if the mouse is pressed. |
| 782 if (m_lastScrollbarUnderMouse && m_mouseEventManager->mousePressed()) { | 788 if (m_lastScrollbarUnderMouse && m_mouseEventManager->mousePressed()) { |
| 783 m_lastScrollbarUnderMouse->mouseMoved(mouseEvent); | 789 m_lastScrollbarUnderMouse->mouseMoved(mouseEvent); |
| 784 return WebInputEventResult::HandledSystem; | 790 return WebInputEventResult::HandledSystem; |
| 785 } | 791 } |
| 786 | 792 |
| 787 // Mouse events simulated from touch should not hit-test again. | 793 // Mouse events simulated from touch should not hit-test again. |
| 788 ASSERT(!mouseEvent.fromTouch()); | 794 ASSERT(!mouseEvent.fromTouch()); |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 849 mev.event()); | 855 mev.event()); |
| 850 | 856 |
| 851 if (newSubframe) { | 857 if (newSubframe) { |
| 852 // Update over/out state before passing the event to the subframe. | 858 // Update over/out state before passing the event to the subframe. |
| 853 m_pointerEventManager->sendMouseAndPointerBoundaryEvents( | 859 m_pointerEventManager->sendMouseAndPointerBoundaryEvents( |
| 854 updateMouseEventTargetNode(mev.innerNode()), mev.event()); | 860 updateMouseEventTargetNode(mev.innerNode()), mev.event()); |
| 855 | 861 |
| 856 // Event dispatch in sendMouseAndPointerBoundaryEvents may have caused the | 862 // Event dispatch in sendMouseAndPointerBoundaryEvents may have caused the |
| 857 // subframe of the target node to be detached from its FrameView, in which | 863 // subframe of the target node to be detached from its FrameView, in which |
| 858 // case the event should not be passed. | 864 // case the event should not be passed. |
| 859 if (newSubframe->view()) | 865 if (newSubframe->view()) { |
| 860 eventResult = passMouseMoveEventToSubframe(mev, newSubframe, hoveredNode); | 866 eventResult = passMouseMoveEventToSubframe(mev, coalescedEvents, |
| 867 newSubframe, hoveredNode); |
| 868 } |
| 861 } else { | 869 } else { |
| 862 if (scrollbar && !m_mouseEventManager->mousePressed()) { | 870 if (scrollbar && !m_mouseEventManager->mousePressed()) { |
| 863 // Handle hover effects on platforms that support visual feedback on | 871 // Handle hover effects on platforms that support visual feedback on |
| 864 // scrollbar hovering. | 872 // scrollbar hovering. |
| 865 scrollbar->mouseMoved(mev.event()); | 873 scrollbar->mouseMoved(mev.event()); |
| 866 } | 874 } |
| 867 if (FrameView* view = m_frame->view()) { | 875 if (FrameView* view = m_frame->view()) { |
| 868 OptionalCursor optionalCursor = selectCursor(mev.hitTestResult()); | 876 OptionalCursor optionalCursor = selectCursor(mev.hitTestResult()); |
| 869 if (optionalCursor.isCursorChange()) { | 877 if (optionalCursor.isCursorChange()) { |
| 870 view->setCursor(optionalCursor.cursor()); | 878 view->setCursor(optionalCursor.cursor()); |
| 871 } | 879 } |
| 872 } | 880 } |
| 873 } | 881 } |
| 874 | 882 |
| 875 m_lastMouseMoveEventSubframe = newSubframe; | 883 m_lastMouseMoveEventSubframe = newSubframe; |
| 876 | 884 |
| 877 if (eventResult != WebInputEventResult::NotHandled) | 885 if (eventResult != WebInputEventResult::NotHandled) |
| 878 return eventResult; | 886 return eventResult; |
| 879 | 887 |
| 880 eventResult = updatePointerTargetAndDispatchEvents( | 888 eventResult = updatePointerTargetAndDispatchEvents( |
| 881 EventTypeNames::mousemove, mev.innerNode(), mev.event()); | 889 EventTypeNames::mousemove, mev.innerNode(), mev.event(), coalescedEvents); |
| 882 if (eventResult != WebInputEventResult::NotHandled) | 890 if (eventResult != WebInputEventResult::NotHandled) |
| 883 return eventResult; | 891 return eventResult; |
| 884 | 892 |
| 885 return m_mouseEventManager->handleMouseDraggedEvent(mev); | 893 return m_mouseEventManager->handleMouseDraggedEvent(mev); |
| 886 } | 894 } |
| 887 | 895 |
| 888 WebInputEventResult EventHandler::handleMouseReleaseEvent( | 896 WebInputEventResult EventHandler::handleMouseReleaseEvent( |
| 889 const PlatformMouseEvent& mouseEvent) { | 897 const PlatformMouseEvent& mouseEvent) { |
| 890 TRACE_EVENT0("blink", "EventHandler::handleMouseReleaseEvent"); | 898 TRACE_EVENT0("blink", "EventHandler::handleMouseReleaseEvent"); |
| 891 | 899 |
| (...skipping 21 matching lines...) Expand all Loading... |
| 913 return m_mouseEventManager->setMousePositionAndDispatchMouseEvent( | 921 return m_mouseEventManager->setMousePositionAndDispatchMouseEvent( |
| 914 updateMouseEventTargetNode(m_frameSetBeingResized.get()), | 922 updateMouseEventTargetNode(m_frameSetBeingResized.get()), |
| 915 EventTypeNames::mouseup, mouseEvent); | 923 EventTypeNames::mouseup, mouseEvent); |
| 916 } | 924 } |
| 917 | 925 |
| 918 if (m_lastScrollbarUnderMouse) { | 926 if (m_lastScrollbarUnderMouse) { |
| 919 m_mouseEventManager->invalidateClick(); | 927 m_mouseEventManager->invalidateClick(); |
| 920 m_lastScrollbarUnderMouse->mouseUp(mouseEvent); | 928 m_lastScrollbarUnderMouse->mouseUp(mouseEvent); |
| 921 return updatePointerTargetAndDispatchEvents( | 929 return updatePointerTargetAndDispatchEvents( |
| 922 EventTypeNames::mouseup, m_mouseEventManager->getNodeUnderMouse(), | 930 EventTypeNames::mouseup, m_mouseEventManager->getNodeUnderMouse(), |
| 923 mouseEvent); | 931 mouseEvent, Vector<PlatformMouseEvent>()); |
| 924 } | 932 } |
| 925 | 933 |
| 926 // Mouse events simulated from touch should not hit-test again. | 934 // Mouse events simulated from touch should not hit-test again. |
| 927 ASSERT(!mouseEvent.fromTouch()); | 935 ASSERT(!mouseEvent.fromTouch()); |
| 928 | 936 |
| 929 HitTestRequest::HitTestRequestType hitType = HitTestRequest::Release; | 937 HitTestRequest::HitTestRequestType hitType = HitTestRequest::Release; |
| 930 HitTestRequest request(hitType); | 938 HitTestRequest request(hitType); |
| 931 MouseEventWithHitTestResults mev = | 939 MouseEventWithHitTestResults mev = |
| 932 EventHandlingUtil::performMouseEventHitTest(m_frame, request, mouseEvent); | 940 EventHandlingUtil::performMouseEventHitTest(m_frame, request, mouseEvent); |
| 933 LocalFrame* subframe = | 941 LocalFrame* subframe = |
| (...skipping 17 matching lines...) Expand all Loading... |
| 951 gestureIndicator = wrapUnique(new UserGestureIndicator( | 959 gestureIndicator = wrapUnique(new UserGestureIndicator( |
| 952 m_frame->localFrameRoot() | 960 m_frame->localFrameRoot() |
| 953 ->eventHandler() | 961 ->eventHandler() |
| 954 .m_lastMouseDownUserGestureToken.release())); | 962 .m_lastMouseDownUserGestureToken.release())); |
| 955 } else { | 963 } else { |
| 956 gestureIndicator = wrapUnique(new UserGestureIndicator( | 964 gestureIndicator = wrapUnique(new UserGestureIndicator( |
| 957 DocumentUserGestureToken::create(m_frame->document()))); | 965 DocumentUserGestureToken::create(m_frame->document()))); |
| 958 } | 966 } |
| 959 | 967 |
| 960 WebInputEventResult eventResult = updatePointerTargetAndDispatchEvents( | 968 WebInputEventResult eventResult = updatePointerTargetAndDispatchEvents( |
| 961 EventTypeNames::mouseup, mev.innerNode(), mev.event()); | 969 EventTypeNames::mouseup, mev.innerNode(), mev.event(), |
| 970 Vector<PlatformMouseEvent>()); |
| 962 | 971 |
| 963 WebInputEventResult clickEventResult = | 972 WebInputEventResult clickEventResult = |
| 964 m_mouseEventManager->dispatchMouseClickIfNeeded(mev); | 973 m_mouseEventManager->dispatchMouseClickIfNeeded(mev); |
| 965 | 974 |
| 966 m_scrollManager->clearResizeScrollableArea(false); | 975 m_scrollManager->clearResizeScrollableArea(false); |
| 967 | 976 |
| 968 if (eventResult == WebInputEventResult::NotHandled) | 977 if (eventResult == WebInputEventResult::NotHandled) |
| 969 eventResult = m_mouseEventManager->handleMouseReleaseEvent(mev); | 978 eventResult = m_mouseEventManager->handleMouseReleaseEvent(mev); |
| 970 m_mouseEventManager->clearDragHeuristicState(); | 979 m_mouseEventManager->clearDragHeuristicState(); |
| 971 | 980 |
| (...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1242 return m_pointerEventManager->hasProcessedPointerCapture(pointerId, target); | 1251 return m_pointerEventManager->hasProcessedPointerCapture(pointerId, target); |
| 1243 } | 1252 } |
| 1244 | 1253 |
| 1245 void EventHandler::elementRemoved(EventTarget* target) { | 1254 void EventHandler::elementRemoved(EventTarget* target) { |
| 1246 m_pointerEventManager->elementRemoved(target); | 1255 m_pointerEventManager->elementRemoved(target); |
| 1247 } | 1256 } |
| 1248 | 1257 |
| 1249 WebInputEventResult EventHandler::updatePointerTargetAndDispatchEvents( | 1258 WebInputEventResult EventHandler::updatePointerTargetAndDispatchEvents( |
| 1250 const AtomicString& mouseEventType, | 1259 const AtomicString& mouseEventType, |
| 1251 Node* targetNode, | 1260 Node* targetNode, |
| 1252 const PlatformMouseEvent& mouseEvent) { | 1261 const PlatformMouseEvent& mouseEvent, |
| 1262 const Vector<PlatformMouseEvent>& coalescedEvents) { |
| 1253 ASSERT(mouseEventType == EventTypeNames::mousedown || | 1263 ASSERT(mouseEventType == EventTypeNames::mousedown || |
| 1254 mouseEventType == EventTypeNames::mousemove || | 1264 mouseEventType == EventTypeNames::mousemove || |
| 1255 mouseEventType == EventTypeNames::mouseup); | 1265 mouseEventType == EventTypeNames::mouseup); |
| 1256 | 1266 |
| 1257 const auto& eventResult = m_pointerEventManager->sendMousePointerEvent( | 1267 const auto& eventResult = m_pointerEventManager->sendMousePointerEvent( |
| 1258 updateMouseEventTargetNode(targetNode), mouseEventType, mouseEvent); | 1268 updateMouseEventTargetNode(targetNode), mouseEventType, mouseEvent, |
| 1269 coalescedEvents); |
| 1259 return eventResult; | 1270 return eventResult; |
| 1260 } | 1271 } |
| 1261 | 1272 |
| 1262 WebInputEventResult EventHandler::handleWheelEvent( | 1273 WebInputEventResult EventHandler::handleWheelEvent( |
| 1263 const PlatformWheelEvent& event) { | 1274 const PlatformWheelEvent& event) { |
| 1264 #if OS(MACOSX) | 1275 #if OS(MACOSX) |
| 1265 // Filter Mac OS specific phases, usually with a zero-delta. | 1276 // Filter Mac OS specific phases, usually with a zero-delta. |
| 1266 // https://crbug.com/553732 | 1277 // https://crbug.com/553732 |
| 1267 // TODO(chongz): EventSender sends events with |PlatformWheelEventPhaseNone|, | 1278 // TODO(chongz): EventSender sends events with |PlatformWheelEventPhaseNone|, |
| 1268 // but it shouldn't. | 1279 // but it shouldn't. |
| (...skipping 769 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2038 | 2049 |
| 2039 // Send mouse entered if we're setting a new scrollbar. | 2050 // Send mouse entered if we're setting a new scrollbar. |
| 2040 if (scrollbar && setLast) | 2051 if (scrollbar && setLast) |
| 2041 scrollbar->mouseEntered(); | 2052 scrollbar->mouseEntered(); |
| 2042 | 2053 |
| 2043 m_lastScrollbarUnderMouse = setLast ? scrollbar : nullptr; | 2054 m_lastScrollbarUnderMouse = setLast ? scrollbar : nullptr; |
| 2044 } | 2055 } |
| 2045 } | 2056 } |
| 2046 | 2057 |
| 2047 WebInputEventResult EventHandler::handleTouchEvent( | 2058 WebInputEventResult EventHandler::handleTouchEvent( |
| 2048 const PlatformTouchEvent& event) { | 2059 const PlatformTouchEvent& event, |
| 2060 const Vector<PlatformTouchEvent>& coalescedEvents) { |
| 2049 TRACE_EVENT0("blink", "EventHandler::handleTouchEvent"); | 2061 TRACE_EVENT0("blink", "EventHandler::handleTouchEvent"); |
| 2050 return m_pointerEventManager->handleTouchEvents(event); | 2062 return m_pointerEventManager->handleTouchEvents(event, coalescedEvents); |
| 2051 } | 2063 } |
| 2052 | 2064 |
| 2053 WebInputEventResult EventHandler::passMousePressEventToSubframe( | 2065 WebInputEventResult EventHandler::passMousePressEventToSubframe( |
| 2054 MouseEventWithHitTestResults& mev, | 2066 MouseEventWithHitTestResults& mev, |
| 2055 LocalFrame* subframe) { | 2067 LocalFrame* subframe) { |
| 2056 selectionController().passMousePressEventToSubframe(mev); | 2068 selectionController().passMousePressEventToSubframe(mev); |
| 2057 WebInputEventResult result = | 2069 WebInputEventResult result = |
| 2058 subframe->eventHandler().handleMousePressEvent(mev.event()); | 2070 subframe->eventHandler().handleMousePressEvent(mev.event()); |
| 2059 if (result != WebInputEventResult::NotHandled) | 2071 if (result != WebInputEventResult::NotHandled) |
| 2060 return result; | 2072 return result; |
| 2061 return WebInputEventResult::HandledSystem; | 2073 return WebInputEventResult::HandledSystem; |
| 2062 } | 2074 } |
| 2063 | 2075 |
| 2064 WebInputEventResult EventHandler::passMouseMoveEventToSubframe( | 2076 WebInputEventResult EventHandler::passMouseMoveEventToSubframe( |
| 2065 MouseEventWithHitTestResults& mev, | 2077 MouseEventWithHitTestResults& mev, |
| 2078 const Vector<PlatformMouseEvent>& coalescedEvents, |
| 2066 LocalFrame* subframe, | 2079 LocalFrame* subframe, |
| 2067 HitTestResult* hoveredNode) { | 2080 HitTestResult* hoveredNode) { |
| 2068 if (m_mouseEventManager->mouseDownMayStartDrag()) | 2081 if (m_mouseEventManager->mouseDownMayStartDrag()) |
| 2069 return WebInputEventResult::NotHandled; | 2082 return WebInputEventResult::NotHandled; |
| 2070 WebInputEventResult result = | 2083 WebInputEventResult result = |
| 2071 subframe->eventHandler().handleMouseMoveOrLeaveEvent(mev.event(), | 2084 subframe->eventHandler().handleMouseMoveOrLeaveEvent( |
| 2072 hoveredNode); | 2085 mev.event(), coalescedEvents, hoveredNode); |
| 2073 if (result != WebInputEventResult::NotHandled) | 2086 if (result != WebInputEventResult::NotHandled) |
| 2074 return result; | 2087 return result; |
| 2075 return WebInputEventResult::HandledSystem; | 2088 return WebInputEventResult::HandledSystem; |
| 2076 } | 2089 } |
| 2077 | 2090 |
| 2078 WebInputEventResult EventHandler::passMouseReleaseEventToSubframe( | 2091 WebInputEventResult EventHandler::passMouseReleaseEventToSubframe( |
| 2079 MouseEventWithHitTestResults& mev, | 2092 MouseEventWithHitTestResults& mev, |
| 2080 LocalFrame* subframe) { | 2093 LocalFrame* subframe) { |
| 2081 WebInputEventResult result = | 2094 WebInputEventResult result = |
| 2082 subframe->eventHandler().handleMouseReleaseEvent(mev.event()); | 2095 subframe->eventHandler().handleMouseReleaseEvent(mev.event()); |
| 2083 if (result != WebInputEventResult::NotHandled) | 2096 if (result != WebInputEventResult::NotHandled) |
| 2084 return result; | 2097 return result; |
| 2085 return WebInputEventResult::HandledSystem; | 2098 return WebInputEventResult::HandledSystem; |
| 2086 } | 2099 } |
| 2087 | 2100 |
| 2088 FrameHost* EventHandler::frameHost() const { | 2101 FrameHost* EventHandler::frameHost() const { |
| 2089 if (!m_frame->page()) | 2102 if (!m_frame->page()) |
| 2090 return nullptr; | 2103 return nullptr; |
| 2091 | 2104 |
| 2092 return &m_frame->page()->frameHost(); | 2105 return &m_frame->page()->frameHost(); |
| 2093 } | 2106 } |
| 2094 | 2107 |
| 2095 } // namespace blink | 2108 } // namespace blink |
| OLD | NEW |