Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(373)

Side by Side Diff: third_party/WebKit/Source/core/input/EventHandler.cpp

Issue 1989623002: Suppressed MEs for gestures from cancelled PEs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserv ed. 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserv ed.
3 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) 3 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org)
4 * Copyright (C) 2012 Digia Plc. and/or its subsidiary(-ies) 4 * Copyright (C) 2012 Digia Plc. and/or its subsidiary(-ies)
5 * 5 *
6 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions 7 * modification, are permitted provided that the following conditions
8 * are met: 8 * are met:
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 , m_clickCount(0) 188 , m_clickCount(0)
189 , m_shouldOnlyFireDragOverEvent(false) 189 , m_shouldOnlyFireDragOverEvent(false)
190 , m_mousePositionIsUnknown(true) 190 , m_mousePositionIsUnknown(true)
191 , m_mouseDownTimestamp(0) 191 , m_mouseDownTimestamp(0)
192 , m_pointerEventManager(frame) 192 , m_pointerEventManager(frame)
193 , m_scrollManager(frame) 193 , m_scrollManager(frame)
194 , m_keyboardEventManager(frame, &m_scrollManager) 194 , m_keyboardEventManager(frame, &m_scrollManager)
195 , m_longTapShouldInvokeContextMenu(false) 195 , m_longTapShouldInvokeContextMenu(false)
196 , m_activeIntervalTimer(this, &EventHandler::activeIntervalTimerFired) 196 , m_activeIntervalTimer(this, &EventHandler::activeIntervalTimerFired)
197 , m_lastShowPressTimestamp(0) 197 , m_lastShowPressTimestamp(0)
198 , m_suppressMouseEventsFromGestures(false)
198 { 199 {
199 } 200 }
200 201
201 EventHandler::~EventHandler() 202 EventHandler::~EventHandler()
202 { 203 {
203 ASSERT(!m_fakeMouseMoveEventTimer.isActive()); 204 ASSERT(!m_fakeMouseMoveEventTimer.isActive());
204 } 205 }
205 206
206 DEFINE_TRACE(EventHandler) 207 DEFINE_TRACE(EventHandler)
207 { 208 {
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
255 m_lastShowPressTimestamp = 0; 256 m_lastShowPressTimestamp = 0;
256 m_lastDeferredTapElement = nullptr; 257 m_lastDeferredTapElement = nullptr;
257 m_eventHandlerWillResetCapturingMouseEventsNode = false; 258 m_eventHandlerWillResetCapturingMouseEventsNode = false;
258 m_mouseDownMayStartAutoscroll = false; 259 m_mouseDownMayStartAutoscroll = false;
259 m_svgPan = false; 260 m_svgPan = false;
260 m_mouseDownPos = IntPoint(); 261 m_mouseDownPos = IntPoint();
261 m_mouseDownTimestamp = 0; 262 m_mouseDownTimestamp = 0;
262 m_longTapShouldInvokeContextMenu = false; 263 m_longTapShouldInvokeContextMenu = false;
263 m_dragStartPos = LayoutPoint(); 264 m_dragStartPos = LayoutPoint();
264 m_mouseDown = PlatformMouseEvent(); 265 m_mouseDown = PlatformMouseEvent();
266 m_suppressMouseEventsFromGestures = false;
265 } 267 }
266 268
267 WebInputEventResult EventHandler::mergeEventResult( 269 WebInputEventResult EventHandler::mergeEventResult(
268 WebInputEventResult resultA, WebInputEventResult resultB) 270 WebInputEventResult resultA, WebInputEventResult resultB)
269 { 271 {
270 // The ordering of the enumeration is specific. There are times that 272 // The ordering of the enumeration is specific. There are times that
271 // multiple events fire and we need to combine them into a single 273 // multiple events fire and we need to combine them into a single
272 // result code. The enumeration is based on the level of consumption that 274 // result code. The enumeration is based on the level of consumption that
273 // is most significant. The enumeration is ordered with smaller specified 275 // is most significant. The enumeration is ordered with smaller specified
274 // numbers first. Examples of merged results are: 276 // numbers first. Examples of merged results are:
(...skipping 1442 matching lines...) Expand 10 before | Expand all | Expand 10 after
1717 if (gestureDomEvent) { 1719 if (gestureDomEvent) {
1718 DispatchEventResult gestureDomEventResult = eventTarget->dispatchEve nt(gestureDomEvent); 1720 DispatchEventResult gestureDomEventResult = eventTarget->dispatchEve nt(gestureDomEvent);
1719 if (gestureDomEventResult != DispatchEventResult::NotCanceled) { 1721 if (gestureDomEventResult != DispatchEventResult::NotCanceled) {
1720 ASSERT(gestureDomEventResult != DispatchEventResult::CanceledByE ventHandler); 1722 ASSERT(gestureDomEventResult != DispatchEventResult::CanceledByE ventHandler);
1721 return toWebInputEventResult(gestureDomEventResult); 1723 return toWebInputEventResult(gestureDomEventResult);
1722 } 1724 }
1723 } 1725 }
1724 } 1726 }
1725 1727
1726 switch (gestureEvent.type()) { 1728 switch (gestureEvent.type()) {
1729 case PlatformEvent::GestureTapDown:
1730 return handleGestureTapDown(targetedEvent);
1727 case PlatformEvent::GestureTap: 1731 case PlatformEvent::GestureTap:
1728 return handleGestureTap(targetedEvent); 1732 return handleGestureTap(targetedEvent);
1729 case PlatformEvent::GestureShowPress: 1733 case PlatformEvent::GestureShowPress:
1730 return handleGestureShowPress(); 1734 return handleGestureShowPress();
1731 case PlatformEvent::GestureLongPress: 1735 case PlatformEvent::GestureLongPress:
1732 return handleGestureLongPress(targetedEvent); 1736 return handleGestureLongPress(targetedEvent);
1733 case PlatformEvent::GestureLongTap: 1737 case PlatformEvent::GestureLongTap:
1734 return handleGestureLongTap(targetedEvent); 1738 return handleGestureLongTap(targetedEvent);
1735 case PlatformEvent::GestureTwoFingerTap: 1739 case PlatformEvent::GestureTwoFingerTap:
1736 return sendContextMenuEventForGesture(targetedEvent); 1740 return sendContextMenuEventForGesture(targetedEvent);
1737 case PlatformEvent::GestureTapDown:
1738 case PlatformEvent::GesturePinchBegin: 1741 case PlatformEvent::GesturePinchBegin:
1739 case PlatformEvent::GesturePinchEnd: 1742 case PlatformEvent::GesturePinchEnd:
1740 case PlatformEvent::GesturePinchUpdate: 1743 case PlatformEvent::GesturePinchUpdate:
1741 case PlatformEvent::GestureTapDownCancel: 1744 case PlatformEvent::GestureTapDownCancel:
1742 case PlatformEvent::GestureTapUnconfirmed: 1745 case PlatformEvent::GestureTapUnconfirmed:
1743 break; 1746 break;
1744 default: 1747 default:
1745 ASSERT_NOT_REACHED(); 1748 ASSERT_NOT_REACHED();
1746 } 1749 }
1747 1750
1748 return WebInputEventResult::NotHandled; 1751 return WebInputEventResult::NotHandled;
1749 } 1752 }
1750 1753
1751 WebInputEventResult EventHandler::handleGestureScrollEvent(const PlatformGesture Event& gestureEvent) 1754 WebInputEventResult EventHandler::handleGestureScrollEvent(const PlatformGesture Event& gestureEvent)
1752 { 1755 {
1753 TRACE_EVENT0("input", "EventHandler::handleGestureScrollEvent"); 1756 TRACE_EVENT0("input", "EventHandler::handleGestureScrollEvent");
1754 1757
1755 return m_scrollManager.handleGestureScrollEvent(gestureEvent); 1758 return m_scrollManager.handleGestureScrollEvent(gestureEvent);
1756 } 1759 }
1757 1760
1761 WebInputEventResult EventHandler::handleGestureTapDown(const GestureEventWithHit TestResults& targetedEvent)
1762 {
1763 m_suppressMouseEventsFromGestures =
1764 m_pointerEventManager.primaryPointerdownCanceled(targetedEvent.event().u niqueTouchEventId());
1765 return WebInputEventResult::NotHandled;
1766 }
1767
1758 WebInputEventResult EventHandler::handleGestureTap(const GestureEventWithHitTest Results& targetedEvent) 1768 WebInputEventResult EventHandler::handleGestureTap(const GestureEventWithHitTest Results& targetedEvent)
1759 { 1769 {
1760 FrameView* frameView(m_frame->view()); 1770 FrameView* frameView(m_frame->view());
1761 const PlatformGestureEvent& gestureEvent = targetedEvent.event(); 1771 const PlatformGestureEvent& gestureEvent = targetedEvent.event();
1762 HitTestRequest::HitTestRequestType hitType = getHitTypeForGestureType(gestur eEvent.type()); 1772 HitTestRequest::HitTestRequestType hitType = getHitTypeForGestureType(gestur eEvent.type());
1763 uint64_t preDispatchDomTreeVersion = m_frame->document()->domTreeVersion(); 1773 uint64_t preDispatchDomTreeVersion = m_frame->document()->domTreeVersion();
1764 uint64_t preDispatchStyleVersion = m_frame->document()->styleVersion(); 1774 uint64_t preDispatchStyleVersion = m_frame->document()->styleVersion();
1765 1775
1766 UserGestureIndicator gestureIndicator(DefinitelyProcessingUserGesture); 1776 UserGestureIndicator gestureIndicator(DefinitelyProcessingUserGesture);
1767 1777
1768 HitTestResult currentHitTest = targetedEvent.hitTestResult(); 1778 HitTestResult currentHitTest = targetedEvent.hitTestResult();
1769 1779
1770 // We use the adjusted position so the application isn't surprised to see a event with 1780 // We use the adjusted position so the application isn't surprised to see a event with
1771 // co-ordinates outside the target's bounds. 1781 // co-ordinates outside the target's bounds.
1772 IntPoint adjustedPoint = frameView->rootFrameToContents(gestureEvent.positio n()); 1782 IntPoint adjustedPoint = frameView->rootFrameToContents(gestureEvent.positio n());
1773 1783
1774 unsigned modifiers = gestureEvent.getModifiers(); 1784 const unsigned modifiers = gestureEvent.getModifiers();
1775 PlatformMouseEvent fakeMouseMove(gestureEvent.position(), gestureEvent.globa lPosition(), 1785
1776 NoButton, PlatformEvent::MouseMoved, /* clickCount */ 0, 1786 if (!m_suppressMouseEventsFromGestures) {
1777 static_cast<PlatformEvent::Modifiers>(modifiers), 1787 PlatformMouseEvent fakeMouseMove(gestureEvent.position(), gestureEvent.g lobalPosition(),
1778 PlatformMouseEvent::FromTouch, gestureEvent.timestamp(), WebPointerPrope rties::PointerType::Mouse); 1788 NoButton, PlatformEvent::MouseMoved, /* clickCount */ 0,
1779 dispatchMouseEvent(EventTypeNames::mousemove, currentHitTest.innerNode(), 0, fakeMouseMove); 1789 static_cast<PlatformEvent::Modifiers>(modifiers),
1790 PlatformMouseEvent::FromTouch, gestureEvent.timestamp(), WebPointerP roperties::PointerType::Mouse);
1791 dispatchMouseEvent(EventTypeNames::mousemove, currentHitTest.innerNode() , 0, fakeMouseMove);
1792 }
1780 1793
1781 // Do a new hit-test in case the mousemove event changed the DOM. 1794 // Do a new hit-test in case the mousemove event changed the DOM.
1782 // Note that if the original hit test wasn't over an element (eg. was over a scrollbar) we 1795 // Note that if the original hit test wasn't over an element (eg. was over a scrollbar) we
1783 // don't want to re-hit-test because it may be in the wrong frame (and there 's no way the page 1796 // don't want to re-hit-test because it may be in the wrong frame (and there 's no way the page
1784 // could have seen the event anyway). 1797 // could have seen the event anyway).
1785 // Also note that the position of the frame may have changed, so we need to recompute the content 1798 // Also note that the position of the frame may have changed, so we need to recompute the content
1786 // co-ordinates (updating layout/style as hitTestResultAtPoint normally woul d). 1799 // co-ordinates (updating layout/style as hitTestResultAtPoint normally woul d).
1787 // FIXME: Use a hit-test cache to avoid unnecessary hit tests. http://crbug. com/398920 1800 // FIXME: Use a hit-test cache to avoid unnecessary hit tests. http://crbug. com/398920
1788 if (currentHitTest.innerNode()) { 1801 if (currentHitTest.innerNode()) {
1789 LocalFrame* mainFrame = m_frame->localFrameRoot(); 1802 LocalFrame* mainFrame = m_frame->localFrameRoot();
1790 if (mainFrame && mainFrame->view()) 1803 if (mainFrame && mainFrame->view())
1791 mainFrame->view()->updateLifecycleToCompositingCleanPlusScrolling(); 1804 mainFrame->view()->updateLifecycleToCompositingCleanPlusScrolling();
1792 adjustedPoint = frameView->rootFrameToContents(gestureEvent.position()); 1805 adjustedPoint = frameView->rootFrameToContents(gestureEvent.position());
1793 currentHitTest = hitTestResultInFrame(m_frame, adjustedPoint, hitType); 1806 currentHitTest = hitTestResultInFrame(m_frame, adjustedPoint, hitType);
1794 } 1807 }
1795 m_clickNode = currentHitTest.innerNode(); 1808 m_clickNode = currentHitTest.innerNode();
1796 1809
1797 // Capture data for showUnhandledTapUIIfNeeded. 1810 // Capture data for showUnhandledTapUIIfNeeded.
1798 Node* tappedNode = m_clickNode; 1811 Node* tappedNode = m_clickNode;
1799 IntPoint tappedPosition = gestureEvent.position(); 1812 IntPoint tappedPosition = gestureEvent.position();
1800 1813
1801 if (m_clickNode && m_clickNode->isTextNode()) 1814 if (m_clickNode && m_clickNode->isTextNode())
1802 m_clickNode = FlatTreeTraversal::parent(*m_clickNode); 1815 m_clickNode = FlatTreeTraversal::parent(*m_clickNode);
1803 1816
1804 PlatformMouseEvent fakeMouseDown(gestureEvent.position(), gestureEvent.globa lPosition(), 1817 PlatformMouseEvent fakeMouseDown(gestureEvent.position(), gestureEvent.globa lPosition(),
1805 LeftButton, PlatformEvent::MousePressed, gestureEvent.tapCount(), 1818 LeftButton, PlatformEvent::MousePressed, gestureEvent.tapCount(),
1806 static_cast<PlatformEvent::Modifiers>(modifiers | PlatformEvent::LeftBut tonDown), 1819 static_cast<PlatformEvent::Modifiers>(modifiers | PlatformEvent::LeftBut tonDown),
1807 PlatformMouseEvent::FromTouch, gestureEvent.timestamp(), WebPointerProp erties::PointerType::Mouse); 1820 PlatformMouseEvent::FromTouch, gestureEvent.timestamp(), WebPointerPrope rties::PointerType::Mouse);
1808 WebInputEventResult mouseDownEventResult = dispatchMouseEvent(EventTypeNames ::mousedown, currentHitTest.innerNode(), gestureEvent.tapCount(), fakeMouseDown) ; 1821
1809 selectionController().initializeSelectionState(); 1822 // TODO(mustaq): We suppress MEs plus all it's side effects. What would that
1810 if (mouseDownEventResult == WebInputEventResult::NotHandled) 1823 // mean for for TEs? What's the right balance here? crbug.com/617255
1811 mouseDownEventResult = handleMouseFocus(MouseEventWithHitTestResults(fak eMouseDown, currentHitTest), InputDeviceCapabilities::firesTouchEventsSourceCapa bilities()); 1824 WebInputEventResult mouseDownEventResult = WebInputEventResult::HandledSuppr essed;
1812 if (mouseDownEventResult == WebInputEventResult::NotHandled) 1825 if (!m_suppressMouseEventsFromGestures) {
1813 mouseDownEventResult = handleMousePressEvent(MouseEventWithHitTestResult s(fakeMouseDown, currentHitTest)); 1826 mouseDownEventResult = dispatchMouseEvent(EventTypeNames::mousedown, cur rentHitTest.innerNode(), gestureEvent.tapCount(), fakeMouseDown);
1827 selectionController().initializeSelectionState();
1828 if (mouseDownEventResult == WebInputEventResult::NotHandled)
1829 mouseDownEventResult = handleMouseFocus(MouseEventWithHitTestResults (fakeMouseDown, currentHitTest), InputDeviceCapabilities::firesTouchEventsSource Capabilities());
1830 if (mouseDownEventResult == WebInputEventResult::NotHandled)
1831 mouseDownEventResult = handleMousePressEvent(MouseEventWithHitTestRe sults(fakeMouseDown, currentHitTest));
1832 }
1814 1833
1815 if (currentHitTest.innerNode()) { 1834 if (currentHitTest.innerNode()) {
1816 ASSERT(gestureEvent.type() == PlatformEvent::GestureTap); 1835 ASSERT(gestureEvent.type() == PlatformEvent::GestureTap);
1817 HitTestResult result = currentHitTest; 1836 HitTestResult result = currentHitTest;
1818 result.setToShadowHostIfInUserAgentShadowRoot(); 1837 result.setToShadowHostIfInUserAgentShadowRoot();
1819 m_frame->chromeClient().onMouseDown(result.innerNode()); 1838 m_frame->chromeClient().onMouseDown(result.innerNode());
1820 } 1839 }
1821 1840
1822 // FIXME: Use a hit-test cache to avoid unnecessary hit tests. http://crbug. com/398920 1841 // FIXME: Use a hit-test cache to avoid unnecessary hit tests. http://crbug. com/398920
1823 if (currentHitTest.innerNode()) { 1842 if (currentHitTest.innerNode()) {
1824 LocalFrame* mainFrame = m_frame->localFrameRoot(); 1843 LocalFrame* mainFrame = m_frame->localFrameRoot();
1825 if (mainFrame && mainFrame->view()) 1844 if (mainFrame && mainFrame->view())
1826 mainFrame->view()->updateAllLifecyclePhases(); 1845 mainFrame->view()->updateAllLifecyclePhases();
1827 adjustedPoint = frameView->rootFrameToContents(gestureEvent.position()); 1846 adjustedPoint = frameView->rootFrameToContents(gestureEvent.position());
1828 currentHitTest = hitTestResultInFrame(m_frame, adjustedPoint, hitType); 1847 currentHitTest = hitTestResultInFrame(m_frame, adjustedPoint, hitType);
1829 } 1848 }
1849
1830 PlatformMouseEvent fakeMouseUp(gestureEvent.position(), gestureEvent.globalP osition(), 1850 PlatformMouseEvent fakeMouseUp(gestureEvent.position(), gestureEvent.globalP osition(),
1831 LeftButton, PlatformEvent::MouseReleased, gestureEvent.tapCount(), 1851 LeftButton, PlatformEvent::MouseReleased, gestureEvent.tapCount(),
1832 static_cast<PlatformEvent::Modifiers>(modifiers), 1852 static_cast<PlatformEvent::Modifiers>(modifiers),
1833 PlatformMouseEvent::FromTouch, gestureEvent.timestamp(), WebPointerProp erties::PointerType::Mouse); 1853 PlatformMouseEvent::FromTouch, gestureEvent.timestamp(), WebPointerPrope rties::PointerType::Mouse);
1834 WebInputEventResult mouseUpEventResult = dispatchMouseEvent(EventTypeNames:: mouseup, currentHitTest.innerNode(), gestureEvent.tapCount(), fakeMouseUp); 1854 WebInputEventResult mouseUpEventResult = m_suppressMouseEventsFromGestures
1855 ? WebInputEventResult::HandledSuppressed
1856 : dispatchMouseEvent(EventTypeNames::mouseup, currentHitTest.innerNode() , gestureEvent.tapCount(), fakeMouseUp);
1835 1857
1836 WebInputEventResult clickEventResult = WebInputEventResult::NotHandled; 1858 WebInputEventResult clickEventResult = WebInputEventResult::NotHandled;
1837 if (m_clickNode) { 1859 if (m_clickNode) {
1838 if (currentHitTest.innerNode()) { 1860 if (currentHitTest.innerNode()) {
1839 // Updates distribution because a mouseup (or mousedown) event liste ner can make the 1861 // Updates distribution because a mouseup (or mousedown) event liste ner can make the
1840 // tree dirty at dispatchMouseEvent() invocation above. 1862 // tree dirty at dispatchMouseEvent() invocation above.
1841 // Unless distribution is updated, commonAncestor would hit ASSERT. 1863 // Unless distribution is updated, commonAncestor would hit ASSERT.
1842 // Both m_clickNode and currentHitTest.innerNode()) don't need to be updated 1864 // Both m_clickNode and currentHitTest.innerNode()) don't need to be updated
1843 // because commonAncestor() will exit early if their documents are d ifferent. 1865 // because commonAncestor() will exit early if their documents are d ifferent.
1844 m_clickNode->updateDistribution(); 1866 m_clickNode->updateDistribution();
(...skipping 23 matching lines...) Expand all
1868 IntPoint adjustedPoint = gestureEvent.position(); 1890 IntPoint adjustedPoint = gestureEvent.position();
1869 1891
1870 unsigned modifiers = gestureEvent.getModifiers(); 1892 unsigned modifiers = gestureEvent.getModifiers();
1871 1893
1872 // FIXME: Ideally we should try to remove the extra mouse-specific hit-tests here (re-using the 1894 // FIXME: Ideally we should try to remove the extra mouse-specific hit-tests here (re-using the
1873 // supplied HitTestResult), but that will require some overhaul of the touch drag-and-drop code 1895 // supplied HitTestResult), but that will require some overhaul of the touch drag-and-drop code
1874 // and LongPress is such a special scenario that it's unlikely to matter muc h in practice. 1896 // and LongPress is such a special scenario that it's unlikely to matter muc h in practice.
1875 1897
1876 m_longTapShouldInvokeContextMenu = false; 1898 m_longTapShouldInvokeContextMenu = false;
1877 if (m_frame->settings() && m_frame->settings()->touchDragDropEnabled() && m_ frame->view()) { 1899 if (m_frame->settings() && m_frame->settings()->touchDragDropEnabled() && m_ frame->view()) {
1900 // TODO(mustaq): Suppressing long-tap MouseEvents could break
1901 // drag-drop. Will do separately because of the risk. crbug.com/606938.
1878 PlatformMouseEvent mouseDownEvent(adjustedPoint, gestureEvent.globalPosi tion(), LeftButton, PlatformEvent::MousePressed, 1, 1902 PlatformMouseEvent mouseDownEvent(adjustedPoint, gestureEvent.globalPosi tion(), LeftButton, PlatformEvent::MousePressed, 1,
1879 static_cast<PlatformEvent::Modifiers>(modifiers | PlatformEvent::Lef tButtonDown), 1903 static_cast<PlatformEvent::Modifiers>(modifiers | PlatformEvent::Lef tButtonDown),
1880 PlatformMouseEvent::FromTouch, WTF::monotonicallyIncreasingTime(), W ebPointerProperties::PointerType::Mouse); 1904 PlatformMouseEvent::FromTouch, WTF::monotonicallyIncreasingTime(), W ebPointerProperties::PointerType::Mouse);
1881 m_mouseDown = mouseDownEvent; 1905 m_mouseDown = mouseDownEvent;
1882 1906
1883 PlatformMouseEvent mouseDragEvent(adjustedPoint, gestureEvent.globalPosi tion(), LeftButton, PlatformEvent::MouseMoved, 1, 1907 PlatformMouseEvent mouseDragEvent(adjustedPoint, gestureEvent.globalPosi tion(), LeftButton, PlatformEvent::MouseMoved, 1,
1884 static_cast<PlatformEvent::Modifiers>(modifiers | PlatformEvent::Lef tButtonDown), 1908 static_cast<PlatformEvent::Modifiers>(modifiers | PlatformEvent::Lef tButtonDown),
1885 PlatformMouseEvent::FromTouch, WTF::monotonicallyIncreasingTime(), W ebPointerProperties::PointerType::Mouse); 1909 PlatformMouseEvent::FromTouch, WTF::monotonicallyIncreasingTime(), W ebPointerProperties::PointerType::Mouse);
1886 HitTestRequest request(HitTestRequest::ReadOnly); 1910 HitTestRequest request(HitTestRequest::ReadOnly);
1887 MouseEventWithHitTestResults mev = prepareMouseEvent(request, mouseDragE vent); 1911 MouseEventWithHitTestResults mev = prepareMouseEvent(request, mouseDragE vent);
(...skipping 877 matching lines...) Expand 10 before | Expand all | Expand 10 after
2765 if (!rect.contains(roundedIntPoint(point))) 2789 if (!rect.contains(roundedIntPoint(point)))
2766 return result; 2790 return result;
2767 } 2791 }
2768 frame->contentLayoutItem().hitTest(result); 2792 frame->contentLayoutItem().hitTest(result);
2769 return result; 2793 return result;
2770 } 2794 }
2771 2795
2772 WebInputEventResult EventHandler::handleTouchEvent(const PlatformTouchEvent& eve nt) 2796 WebInputEventResult EventHandler::handleTouchEvent(const PlatformTouchEvent& eve nt)
2773 { 2797 {
2774 TRACE_EVENT0("blink", "EventHandler::handleTouchEvent"); 2798 TRACE_EVENT0("blink", "EventHandler::handleTouchEvent");
2775
2776 return m_pointerEventManager.handleTouchEvents(event); 2799 return m_pointerEventManager.handleTouchEvents(event);
2777 } 2800 }
2778 2801
2779 void EventHandler::setLastKnownMousePosition(const PlatformMouseEvent& event) 2802 void EventHandler::setLastKnownMousePosition(const PlatformMouseEvent& event)
2780 { 2803 {
2781 m_mousePositionIsUnknown = false; 2804 m_mousePositionIsUnknown = false;
2782 m_lastKnownMousePosition = event.position(); 2805 m_lastKnownMousePosition = event.position();
2783 m_lastKnownMouseGlobalPosition = event.globalPosition(); 2806 m_lastKnownMouseGlobalPosition = event.globalPosition();
2784 } 2807 }
2785 2808
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
2825 2848
2826 FrameHost* EventHandler::frameHost() const 2849 FrameHost* EventHandler::frameHost() const
2827 { 2850 {
2828 if (!m_frame->page()) 2851 if (!m_frame->page())
2829 return nullptr; 2852 return nullptr;
2830 2853
2831 return &m_frame->page()->frameHost(); 2854 return &m_frame->page()->frameHost();
2832 } 2855 }
2833 2856
2834 } // namespace blink 2857 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/input/EventHandler.h ('k') | third_party/WebKit/Source/core/input/PointerEventManager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698