| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "core/input/PointerEventManager.h" | 5 #include "core/input/PointerEventManager.h" |
| 6 | 6 |
| 7 #include "core/dom/ElementTraversal.h" | 7 #include "core/dom/ElementTraversal.h" |
| 8 #include "core/dom/shadow/FlatTreeTraversal.h" | 8 #include "core/dom/shadow/FlatTreeTraversal.h" |
| 9 #include "core/events/MouseEvent.h" | 9 #include "core/events/MouseEvent.h" |
| 10 #include "core/frame/FrameView.h" | 10 #include "core/frame/FrameView.h" |
| 11 #include "core/frame/UseCounter.h" |
| 11 #include "core/html/HTMLCanvasElement.h" | 12 #include "core/html/HTMLCanvasElement.h" |
| 12 #include "core/input/EventHandler.h" | 13 #include "core/input/EventHandler.h" |
| 13 #include "core/input/TouchActionUtil.h" | 14 #include "core/input/TouchActionUtil.h" |
| 14 #include "core/page/ChromeClient.h" | 15 #include "core/page/ChromeClient.h" |
| 15 #include "core/page/Page.h" | 16 #include "core/page/Page.h" |
| 16 #include "platform/PlatformTouchEvent.h" | 17 #include "platform/PlatformTouchEvent.h" |
| 17 | 18 |
| 18 namespace blink { | 19 namespace blink { |
| 19 | 20 |
| 20 namespace { | 21 namespace { |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 147 if (targetUnderPointer == target) { | 148 if (targetUnderPointer == target) { |
| 148 m_nodeUnderPointer.set(pointerId, EventTargetAttributes | 149 m_nodeUnderPointer.set(pointerId, EventTargetAttributes |
| 149 (targetUnderPointer, | 150 (targetUnderPointer, |
| 150 eventType == EventTypeNames::pointerover)); | 151 eventType == EventTypeNames::pointerover)); |
| 151 } | 152 } |
| 152 } | 153 } |
| 153 | 154 |
| 154 if (!RuntimeEnabledFeatures::pointerEventEnabled()) | 155 if (!RuntimeEnabledFeatures::pointerEventEnabled()) |
| 155 return WebInputEventResult::NotHandled; | 156 return WebInputEventResult::NotHandled; |
| 156 if (!checkForListener || target->hasEventListeners(eventType)) { | 157 if (!checkForListener || target->hasEventListeners(eventType)) { |
| 158 UseCounter::count(m_frame->document(), UseCounter::PointerEventDispatch)
; |
| 157 DispatchEventResult dispatchResult = target->dispatchEvent(pointerEvent)
; | 159 DispatchEventResult dispatchResult = target->dispatchEvent(pointerEvent)
; |
| 158 return EventHandler::toWebInputEventResult(dispatchResult); | 160 return EventHandler::toWebInputEventResult(dispatchResult); |
| 159 } | 161 } |
| 160 return WebInputEventResult::NotHandled; | 162 return WebInputEventResult::NotHandled; |
| 161 } | 163 } |
| 162 | 164 |
| 163 EventTarget* PointerEventManager::getEffectiveTargetForPointerEvent( | 165 EventTarget* PointerEventManager::getEffectiveTargetForPointerEvent( |
| 164 EventTarget* target, int pointerId) | 166 EventTarget* target, int pointerId) |
| 165 { | 167 { |
| 166 if (EventTarget* capturingTarget = getCapturingNode(pointerId)) | 168 if (EventTarget* capturingTarget = getCapturingNode(pointerId)) |
| (...skipping 574 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 741 } | 743 } |
| 742 } | 744 } |
| 743 | 745 |
| 744 void PointerEventManager::elementRemoved(EventTarget* target) | 746 void PointerEventManager::elementRemoved(EventTarget* target) |
| 745 { | 747 { |
| 746 removeTargetFromPointerCapturingMapping(m_pendingPointerCaptureTarget, targe
t); | 748 removeTargetFromPointerCapturingMapping(m_pendingPointerCaptureTarget, targe
t); |
| 747 } | 749 } |
| 748 | 750 |
| 749 void PointerEventManager::setPointerCapture(int pointerId, EventTarget* target) | 751 void PointerEventManager::setPointerCapture(int pointerId, EventTarget* target) |
| 750 { | 752 { |
| 753 UseCounter::count(m_frame->document(), UseCounter::PointerEventSetCapture); |
| 751 if (m_pointerEventFactory.isActiveButtonsState(pointerId)) | 754 if (m_pointerEventFactory.isActiveButtonsState(pointerId)) |
| 752 m_pendingPointerCaptureTarget.set(pointerId, target); | 755 m_pendingPointerCaptureTarget.set(pointerId, target); |
| 753 } | 756 } |
| 754 | 757 |
| 755 void PointerEventManager::releasePointerCapture(int pointerId, EventTarget* targ
et) | 758 void PointerEventManager::releasePointerCapture(int pointerId, EventTarget* targ
et) |
| 756 { | 759 { |
| 757 // Only the element that is going to get the next pointer event can release | 760 // Only the element that is going to get the next pointer event can release |
| 758 // the capture. Note that this might be different from | 761 // the capture. Note that this might be different from |
| 759 // |m_pointercaptureTarget|. |m_pointercaptureTarget| holds the element | 762 // |m_pointercaptureTarget|. |m_pointercaptureTarget| holds the element |
| 760 // that had the capture until now and has been receiving the pointerevents | 763 // that had the capture until now and has been receiving the pointerevents |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 800 { | 803 { |
| 801 visitor->trace(m_frame); | 804 visitor->trace(m_frame); |
| 802 visitor->trace(m_nodeUnderPointer); | 805 visitor->trace(m_nodeUnderPointer); |
| 803 visitor->trace(m_pointerCaptureTarget); | 806 visitor->trace(m_pointerCaptureTarget); |
| 804 visitor->trace(m_pendingPointerCaptureTarget); | 807 visitor->trace(m_pendingPointerCaptureTarget); |
| 805 visitor->trace(m_touchEventManager); | 808 visitor->trace(m_touchEventManager); |
| 806 } | 809 } |
| 807 | 810 |
| 808 | 811 |
| 809 } // namespace blink | 812 } // namespace blink |
| OLD | NEW |