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

Side by Side Diff: third_party/WebKit/Source/core/input/PointerEventManager.h

Issue 2414273003: Remove UserGesture on touch scrolls (Closed)
Patch Set: Improve comments Created 4 years, 1 month 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 // 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 #ifndef PointerEventManager_h 5 #ifndef PointerEventManager_h
6 #define PointerEventManager_h 6 #define PointerEventManager_h
7 7
8 #include "core/CoreExport.h" 8 #include "core/CoreExport.h"
9 #include "core/events/PointerEvent.h" 9 #include "core/events/PointerEvent.h"
10 #include "core/events/PointerEventFactory.h" 10 #include "core/events/PointerEventFactory.h"
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 // Inhibits firing of touch-type PointerEvents until unblocked by 129 // Inhibits firing of touch-type PointerEvents until unblocked by
130 // unblockTouchPointers(). Also sends pointercancels for existing touch-type 130 // unblockTouchPointers(). Also sends pointercancels for existing touch-type
131 // PointerEvents. See: 131 // PointerEvents. See:
132 // www.w3.org/TR/pointerevents/#declaring-candidate-regions-for-default-touch- behaviors 132 // www.w3.org/TR/pointerevents/#declaring-candidate-regions-for-default-touch- behaviors
133 void blockTouchPointers(); 133 void blockTouchPointers();
134 134
135 // Enables firing of touch-type PointerEvents after they were inhibited by 135 // Enables firing of touch-type PointerEvents after they were inhibited by
136 // blockTouchPointers(). 136 // blockTouchPointers().
137 void unblockTouchPointers(); 137 void unblockTouchPointers();
138 138
139 // Generate the TouchInfos for a PlatformTouchEvent, hit-testing as necessary.
140 void computeTouchTargets(const PlatformTouchEvent&,
141 HeapVector<TouchEventManager::TouchInfo>&);
142
139 // Sends touch pointer events and sets consumed bits in TouchInfo array 143 // Sends touch pointer events and sets consumed bits in TouchInfo array
140 // based on the return value of pointer event handlers. 144 // based on the return value of pointer event handlers.
141 void dispatchTouchPointerEvents(const PlatformTouchEvent&, 145 void dispatchTouchPointerEvents(const PlatformTouchEvent&,
142 HeapVector<TouchEventManager::TouchInfo>&); 146 HeapVector<TouchEventManager::TouchInfo>&);
143 147
144 // Returns whether the event is consumed or not. 148 // Returns whether the event is consumed or not.
145 WebInputEventResult sendTouchPointerEvent(EventTarget*, PointerEvent*); 149 WebInputEventResult sendTouchPointerEvent(EventTarget*, PointerEvent*);
146 150
147 void sendBoundaryEvents(EventTarget* exitedTarget, 151 void sendBoundaryEvents(EventTarget* exitedTarget,
148 EventTarget* enteredTarget, 152 EventTarget* enteredTarget,
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 189
186 const Member<LocalFrame> m_frame; 190 const Member<LocalFrame> m_frame;
187 191
188 // Prevents firing mousedown, mousemove & mouseup in-between a canceled 192 // Prevents firing mousedown, mousemove & mouseup in-between a canceled
189 // pointerdown and next pointerup/pointercancel. 193 // pointerdown and next pointerup/pointercancel.
190 // See "PREVENT MOUSE EVENT flag" in the spec: 194 // See "PREVENT MOUSE EVENT flag" in the spec:
191 // https://w3c.github.io/pointerevents/#compatibility-mapping-with-mouse-eve nts 195 // https://w3c.github.io/pointerevents/#compatibility-mapping-with-mouse-eve nts
192 bool m_preventMouseEventForPointerType 196 bool m_preventMouseEventForPointerType
193 [static_cast<size_t>(WebPointerProperties::PointerType::LastEntry) + 1]; 197 [static_cast<size_t>(WebPointerProperties::PointerType::LastEntry) + 1];
194 198
195 // Set upon sending a pointercancel for touch, prevents PE dispatches for 199 // Set upon TouchScrollStarted when sending a pointercancel, prevents PE
196 // touches until all touch-points become inactive. 200 // dispatches for touches until all touch-points become inactive.
197 bool m_inCanceledStateForPointerTypeTouch; 201 bool m_inCanceledStateForPointerTypeTouch;
198 202
199 Deque<uint32_t> m_touchIdsForCanceledPointerdowns; 203 Deque<uint32_t> m_touchIdsForCanceledPointerdowns;
200 204
201 // Note that this map keeps track of node under pointer with id=1 as well 205 // Note that this map keeps track of node under pointer with id=1 as well
202 // which might be different than m_nodeUnderMouse in EventHandler. That one 206 // which might be different than m_nodeUnderMouse in EventHandler. That one
203 // keeps track of any compatibility mouse event positions but this map for 207 // keeps track of any compatibility mouse event positions but this map for
204 // the pointer with id=1 is only taking care of true mouse related events. 208 // the pointer with id=1 is only taking care of true mouse related events.
205 using NodeUnderPointerMap = 209 using NodeUnderPointerMap =
206 HeapHashMap<int, 210 HeapHashMap<int,
207 EventTargetAttributes, 211 EventTargetAttributes,
208 WTF::IntHash<int>, 212 WTF::IntHash<int>,
209 WTF::UnsignedWithZeroKeyHashTraits<int>>; 213 WTF::UnsignedWithZeroKeyHashTraits<int>>;
210 NodeUnderPointerMap m_nodeUnderPointer; 214 NodeUnderPointerMap m_nodeUnderPointer;
211 215
212 PointerCapturingMap m_pointerCaptureTarget; 216 PointerCapturingMap m_pointerCaptureTarget;
213 PointerCapturingMap m_pendingPointerCaptureTarget; 217 PointerCapturingMap m_pendingPointerCaptureTarget;
214 218
215 PointerEventFactory m_pointerEventFactory; 219 PointerEventFactory m_pointerEventFactory;
216 Member<TouchEventManager> m_touchEventManager; 220 Member<TouchEventManager> m_touchEventManager;
217 Member<MouseEventManager> m_mouseEventManager; 221 Member<MouseEventManager> m_mouseEventManager;
218 }; 222 };
219 223
220 } // namespace blink 224 } // namespace blink
221 225
222 #endif // PointerEventManager_h 226 #endif // PointerEventManager_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/frame/UseCounter.h ('k') | third_party/WebKit/Source/core/input/PointerEventManager.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698