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

Side by Side Diff: Source/core/page/EventHandler.h

Issue 988823003: Use scroll customization primitives for touch scrolling (behind REF). (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Fix nullptr dereference. Created 5 years, 9 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, 2009, 2010, 2011 Apple Inc. All rights reserved. 2 * Copyright (C) 2006, 2007, 2009, 2010, 2011 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 class OptionalCursor; 67 class OptionalCursor;
68 class PlatformGestureEvent; 68 class PlatformGestureEvent;
69 class PlatformKeyboardEvent; 69 class PlatformKeyboardEvent;
70 class PlatformTouchEvent; 70 class PlatformTouchEvent;
71 class PlatformWheelEvent; 71 class PlatformWheelEvent;
72 class Layer; 72 class Layer;
73 class LayerScrollableArea; 73 class LayerScrollableArea;
74 class LayoutObject; 74 class LayoutObject;
75 class ScrollableArea; 75 class ScrollableArea;
76 class Scrollbar; 76 class Scrollbar;
77 class ScrollState;
77 class TextEvent; 78 class TextEvent;
78 class VisibleSelection; 79 class VisibleSelection;
79 class WheelEvent; 80 class WheelEvent;
80 class Widget; 81 class Widget;
81 82
82 enum AppendTrailingWhitespace { ShouldAppendTrailingWhitespace, DontAppendTraili ngWhitespace }; 83 enum AppendTrailingWhitespace { ShouldAppendTrailingWhitespace, DontAppendTraili ngWhitespace };
83 enum class DragInitiator; 84 enum class DragInitiator;
84 85
85 class EventHandler : public NoBaseWillBeGarbageCollectedFinalized<EventHandler> { 86 class EventHandler : public NoBaseWillBeGarbageCollectedFinalized<EventHandler> {
86 WTF_MAKE_NONCOPYABLE(EventHandler); 87 WTF_MAKE_NONCOPYABLE(EventHandler);
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
238 239
239 void fakeMouseMoveEventTimerFired(Timer<EventHandler>*); 240 void fakeMouseMoveEventTimerFired(Timer<EventHandler>*);
240 void cancelFakeMouseMoveEvent(); 241 void cancelFakeMouseMoveEvent();
241 bool isCursorVisible() const; 242 bool isCursorVisible() const;
242 void updateCursor(); 243 void updateCursor();
243 244
244 ScrollableArea* associatedScrollableArea(const Layer*) const; 245 ScrollableArea* associatedScrollableArea(const Layer*) const;
245 246
246 // Scrolls the elements of the DOM tree. Returns true if a node was scrolled . 247 // Scrolls the elements of the DOM tree. Returns true if a node was scrolled .
247 // False if we reached the root and couldn't scroll anything. 248 // False if we reached the root and couldn't scroll anything.
248 // direction - The direction to scroll in. If this is a logicl direction, it will be 249 // direction - The direction to scroll in. If this is a logical direction, i t will be
249 // converted to the physical direction based on a node's writing mode. 250 // converted to the physical direction based on a node's writing mode.
250 // granularity - The units that the scroll delta parameter is in. 251 // granularity - The units that the scroll delta parameter is in.
251 // startNode - The node to start bubbling the scroll from. If a node can't s croll, 252 // startNode - The node to start bubbling the scroll from. If a node can't s croll,
252 // the scroll bubbles up to the containing block. 253 // the scroll bubbles up to the containing block.
253 // stopNode - On input, if provided and non-null, the node at which we shoul d stop bubbling on input. 254 // stopNode - On input, if provided and non-null, the node at which we shoul d stop bubbling on input.
254 // On output, if provided and a node was scrolled stopNode will p oint to that node. 255 // On output, if provided and a node was scrolled stopNode will p oint to that node.
255 // delta - The delta to scroll by, in the units of the granularity parameter . (e.g. pixels, lines, pages, etc.) 256 // delta - The delta to scroll by, in the units of the granularity parameter . (e.g. pixels, lines, pages, etc.)
256 // absolutePoint - For wheel scrolls - the location, in absolute coordinates , where the event occured. 257 // absolutePoint - For wheel scrolls - the location, in absolute coordinates , where the event occured.
257 bool scroll(ScrollDirection, ScrollGranularity, Node* startNode = nullptr, N ode** stopNode = nullptr, float delta = 1.0f, IntPoint absolutePoint = IntPoint( )); 258 bool scroll(ScrollDirection, ScrollGranularity, Node* startNode = nullptr, N ode** stopNode = nullptr, float delta = 1.0f, IntPoint absolutePoint = IntPoint( ));
258 259
260 void customizedScroll(const Node& startNode, ScrollState&);
261
259 TouchAction intersectTouchAction(const TouchAction, const TouchAction); 262 TouchAction intersectTouchAction(const TouchAction, const TouchAction);
260 TouchAction computeEffectiveTouchAction(const Node&); 263 TouchAction computeEffectiveTouchAction(const Node&);
261 264
262 HitTestResult hitTestResultInFrame(LocalFrame*, const LayoutPoint&, HitTestR equest::HitTestRequestType hitType = HitTestRequest::ReadOnly | HitTestRequest:: Active); 265 HitTestResult hitTestResultInFrame(LocalFrame*, const LayoutPoint&, HitTestR equest::HitTestRequestType hitType = HitTestRequest::ReadOnly | HitTestRequest:: Active);
263 266
264 void invalidateClick(); 267 void invalidateClick();
265 268
266 void updateMouseEventTargetNode(Node*, const PlatformMouseEvent&, bool fireM ouseOverOut); 269 void updateMouseEventTargetNode(Node*, const PlatformMouseEvent&, bool fireM ouseOverOut);
267 270
268 MouseEventWithHitTestResults prepareMouseEvent(const HitTestRequest&, const PlatformMouseEvent&); 271 MouseEventWithHitTestResults prepareMouseEvent(const HitTestRequest&, const PlatformMouseEvent&);
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
388 RefPtrWillBeMember<Node> m_previousGestureScrolledNode; 391 RefPtrWillBeMember<Node> m_previousGestureScrolledNode;
389 RefPtrWillBeMember<Scrollbar> m_scrollbarHandlingScrollGesture; 392 RefPtrWillBeMember<Scrollbar> m_scrollbarHandlingScrollGesture;
390 393
391 double m_maxMouseMovedDuration; 394 double m_maxMouseMovedDuration;
392 395
393 bool m_longTapShouldInvokeContextMenu; 396 bool m_longTapShouldInvokeContextMenu;
394 397
395 Timer<EventHandler> m_activeIntervalTimer; 398 Timer<EventHandler> m_activeIntervalTimer;
396 double m_lastShowPressTimestamp; 399 double m_lastShowPressTimestamp;
397 RefPtrWillBeMember<Element> m_lastDeferredTapElement; 400 RefPtrWillBeMember<Element> m_lastDeferredTapElement;
401
402 // Only used with the ScrollCustomization runtime enabled feature.
403 WillBeHeapDeque<RefPtrWillBeMember<Element>> m_currentScrollChain;
404 // True iff some of the delta has been consumed for the current
405 // scroll sequence. Only used with ScrollCustomization.
Rick Byers 2015/03/11 02:22:19 consumed within this frame, or by this frame any a
tdresser 2015/03/20 18:00:37 Within this frame or any child frames. I've added
Rick Byers 2015/03/26 21:22:49 Thanks, this is great.
406 bool m_deltaConsumedForScrollSequence;
398 }; 407 };
399 408
400 } // namespace blink 409 } // namespace blink
401 410
402 #endif // EventHandler_h 411 #endif // EventHandler_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698