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

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

Issue 68303004: [oilpan] Move EventHandler to the heap (Closed) Base URL: svn://svn.chromium.org/blink/branches/oilpan
Patch Set: Created 7 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/page/AutoscrollController.cpp ('k') | Source/core/page/EventHandler.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 struct DragState; 80 struct DragState;
81 81
82 extern const int LinkDragHysteresis; 82 extern const int LinkDragHysteresis;
83 extern const int ImageDragHysteresis; 83 extern const int ImageDragHysteresis;
84 extern const int TextDragHysteresis; 84 extern const int TextDragHysteresis;
85 extern const int GeneralDragHysteresis; 85 extern const int GeneralDragHysteresis;
86 86
87 enum AppendTrailingWhitespace { ShouldAppendTrailingWhitespace, DontAppendTraili ngWhitespace }; 87 enum AppendTrailingWhitespace { ShouldAppendTrailingWhitespace, DontAppendTraili ngWhitespace };
88 enum CheckDragHysteresis { ShouldCheckDragHysteresis, DontCheckDragHysteresis }; 88 enum CheckDragHysteresis { ShouldCheckDragHysteresis, DontCheckDragHysteresis };
89 89
90 class EventHandler { 90 class EventHandler : public HeapAllocatedFinalized<EventHandler> {
91 WTF_MAKE_NONCOPYABLE(EventHandler); 91 DECLARE_GC_MAP
92 DEFINE_SELF_HANDLE(EventHandler)
93 WTF_MAKE_NONCOPYABLE(EventHandler)
92 public: 94 public:
93 explicit EventHandler(Frame*); 95 static RESULT(EventHandler) create(Frame* frame)
96 {
97 return adopt(new EventHandler(frame));
98 }
99
94 ~EventHandler(); 100 ~EventHandler();
95 101
96 void clear(); 102 void clear();
97 void nodeWillBeRemoved(HANDLE_FORMAL(Node)); 103 void nodeWillBeRemoved(HANDLE_FORMAL(Node));
98 104
99 void updateSelectionForMouseDrag(); 105 void updateSelectionForMouseDrag();
100 106
101 RESULT(Node) mousePressNode() const; 107 RESULT(Node) mousePressNode() const;
102 void setMousePressNode(HANDLE_FORMAL(Node)); 108 void setMousePressNode(HANDLE_FORMAL(Node));
103 109
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 207
202 void capsLockStateMayHaveChanged(); // Only called by FrameSelection 208 void capsLockStateMayHaveChanged(); // Only called by FrameSelection
203 209
204 void sendResizeEvent(); // Only called in FrameView 210 void sendResizeEvent(); // Only called in FrameView
205 void sendScrollEvent(); // Ditto 211 void sendScrollEvent(); // Ditto
206 212
207 bool handleTouchEvent(const PlatformTouchEvent&); 213 bool handleTouchEvent(const PlatformTouchEvent&);
208 214
209 bool useHandCursor(HANDLE_FORMAL(Node), bool isOverLink, bool shiftKey); 215 bool useHandCursor(HANDLE_FORMAL(Node), bool isOverLink, bool shiftKey);
210 216
217 void accept(Visitor*) const;
218
211 private: 219 private:
220 explicit EventHandler(Frame*);
221
212 static DragState& dragState(); 222 static DragState& dragState();
213 static const double TextDragDelay; 223 static const double TextDragDelay;
214 224
215 PassRefPtr<Clipboard> createDraggingClipboard() const; 225 PassRefPtr<Clipboard> createDraggingClipboard() const;
216 226
217 bool eventActivatedView(const PlatformMouseEvent&) const; 227 bool eventActivatedView(const PlatformMouseEvent&) const;
218 bool updateSelectionForMouseDownDispatchingSelectStart(HANDLE_FORMAL(Node), const VisibleSelection&, TextGranularity); 228 bool updateSelectionForMouseDownDispatchingSelectStart(HANDLE_FORMAL(Node), const VisibleSelection&, TextGranularity);
219 void selectClosestWordFromHitTestResult(const HitTestResult&, AppendTrailing Whitespace); 229 void selectClosestWordFromHitTestResult(const HitTestResult&, AppendTrailing Whitespace);
220 void selectClosestWordFromMouseEvent(const MouseEventWithHitTestResults&); 230 void selectClosestWordFromMouseEvent(const MouseEventWithHitTestResults&);
221 void selectClosestWordOrLinkFromMouseEvent(const MouseEventWithHitTestResult s&); 231 void selectClosestWordOrLinkFromMouseEvent(const MouseEventWithHitTestResult s&);
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 #if ENABLE(CURSOR_VISIBILITY) 321 #if ENABLE(CURSOR_VISIBILITY)
312 void startAutoHideCursorTimer(); 322 void startAutoHideCursorTimer();
313 void cancelAutoHideCursorTimer(); 323 void cancelAutoHideCursorTimer();
314 void autoHideCursorTimerFired(Timer<EventHandler>*); 324 void autoHideCursorTimerFired(Timer<EventHandler>*);
315 #endif 325 #endif
316 326
317 Frame* m_frame; 327 Frame* m_frame;
318 328
319 bool m_mousePressed; 329 bool m_mousePressed;
320 bool m_capturesDragging; 330 bool m_capturesDragging;
321 ANNOTATED_FIELD(Persistent<Node>, m_mousePressNode); 331 Member<Node> m_mousePressNode;
322 332
323 bool m_mouseDownMayStartSelect; 333 bool m_mouseDownMayStartSelect;
324 bool m_mouseDownMayStartDrag; 334 bool m_mouseDownMayStartDrag;
325 bool m_dragMayStartSelectionInstead; 335 bool m_dragMayStartSelectionInstead;
326 bool m_mouseDownWasSingleClickInSelection; 336 bool m_mouseDownWasSingleClickInSelection;
327 enum SelectionInitiationState { HaveNotStartedSelection, PlacedCaret, Extend edSelection }; 337 enum SelectionInitiationState { HaveNotStartedSelection, PlacedCaret, Extend edSelection };
328 SelectionInitiationState m_selectionInitiationState; 338 SelectionInitiationState m_selectionInitiationState;
329 339
330 LayoutPoint m_dragStartPos; 340 LayoutPoint m_dragStartPos;
331 341
332 bool m_panScrollButtonPressed; 342 bool m_panScrollButtonPressed;
333 343
334 Timer<EventHandler> m_hoverTimer; 344 Timer<EventHandler> m_hoverTimer;
335 345
336 OwnPtr<AutoscrollController> m_autoscrollController; 346 OwnPtr<AutoscrollController> m_autoscrollController;
337 bool m_mouseDownMayStartAutoscroll; 347 bool m_mouseDownMayStartAutoscroll;
338 bool m_mouseDownWasInSubframe; 348 bool m_mouseDownWasInSubframe;
339 349
340 Timer<EventHandler> m_fakeMouseMoveEventTimer; 350 Timer<EventHandler> m_fakeMouseMoveEventTimer;
341 351
342 #if ENABLE(SVG) 352 #if ENABLE(SVG)
343 bool m_svgPan; 353 bool m_svgPan;
344 RefPtr<SVGElementInstance> m_instanceUnderMouse; 354 RefPtr<SVGElementInstance> m_instanceUnderMouse;
345 RefPtr<SVGElementInstance> m_lastInstanceUnderMouse; 355 RefPtr<SVGElementInstance> m_lastInstanceUnderMouse;
346 #endif 356 #endif
347 357
348 RenderLayer* m_resizeLayer; 358 RenderLayer* m_resizeLayer;
349 359
350 ANNOTATED_FIELD(Persistent<Node>, m_capturingMouseEventsNode); 360 Member<Node> m_capturingMouseEventsNode;
351 bool m_eventHandlerWillResetCapturingMouseEventsNode; 361 bool m_eventHandlerWillResetCapturingMouseEventsNode;
352 362
353 ANNOTATED_FIELD(Persistent<Node>, m_nodeUnderMouse); 363 Member<Node> m_nodeUnderMouse;
354 ANNOTATED_FIELD(Persistent<Node>, m_lastNodeUnderMouse); 364 Member<Node> m_lastNodeUnderMouse;
355 RefPtr<Frame> m_lastMouseMoveEventSubframe; 365 RefPtr<Frame> m_lastMouseMoveEventSubframe;
356 RefPtr<Scrollbar> m_lastScrollbarUnderMouse; 366 RefPtr<Scrollbar> m_lastScrollbarUnderMouse;
357 Cursor m_currentMouseCursor; 367 Cursor m_currentMouseCursor;
358 368
359 int m_clickCount; 369 int m_clickCount;
360 ANNOTATED_FIELD(Persistent<Node>, m_clickNode); 370 Member<Node> m_clickNode;
361 371
362 ANNOTATED_FIELD(Persistent<Node>, m_dragTarget); 372 Member<Node> m_dragTarget;
363 bool m_shouldOnlyFireDragOverEvent; 373 bool m_shouldOnlyFireDragOverEvent;
364 374
365 ANNOTATED_FIELD(Persistent<HTMLFrameSetElement>, m_frameSetBeingResized); 375 Member<HTMLFrameSetElement> m_frameSetBeingResized;
366 376
367 LayoutSize m_offsetFromResizeCorner; // In the coords of m_resizeLayer. 377 LayoutSize m_offsetFromResizeCorner; // In the coords of m_resizeLayer.
368 378
369 bool m_mousePositionIsUnknown; 379 bool m_mousePositionIsUnknown;
370 IntPoint m_lastKnownMousePosition; 380 IntPoint m_lastKnownMousePosition;
371 IntPoint m_lastKnownMouseGlobalPosition; 381 IntPoint m_lastKnownMouseGlobalPosition;
372 IntPoint m_mouseDownPos; // In our view's coords. 382 IntPoint m_mouseDownPos; // In our view's coords.
373 double m_mouseDownTimestamp; 383 double m_mouseDownTimestamp;
374 PlatformMouseEvent m_mouseDown; 384 PlatformMouseEvent m_mouseDown;
375 RefPtr<UserGestureToken> m_lastMouseDownUserGestureToken; 385 RefPtr<UserGestureToken> m_lastMouseDownUserGestureToken;
376 386
377 ANNOTATED_FIELD(Persistent<Node>, m_latchedWheelEventNode); 387 Member<Node> m_latchedWheelEventNode;
378 bool m_widgetIsLatched; 388 bool m_widgetIsLatched;
379 389
380 ANNOTATED_FIELD(Persistent<Node>, m_previousWheelScrolledNode); 390 Member<Node> m_previousWheelScrolledNode;
381 391
382 typedef CollectionRoot<HashMap<int, Member<EventTarget> > > TouchTargetMap; 392 typedef CollectionRoot<HashMap<int, Member<EventTarget> > > TouchTargetMap;
haraken 2013/11/11 12:41:35 oh, I forgot to remove this CollectionRoot. Just a
haraken 2013/11/11 12:45:29 Done.
383 ANNOTATED_FIELD(TouchTargetMap, m_originatingTouchPointTargets); 393 ANNOTATED_FIELD(TouchTargetMap, m_originatingTouchPointTargets);
384 ANNOTATED_FIELD(Persistent<Document>, m_originatingTouchPointDocument); 394 Member<Document> m_originatingTouchPointDocument;
385 unsigned m_originatingTouchPointTargetKey; 395 unsigned m_originatingTouchPointTargetKey;
386 bool m_touchPressed; 396 bool m_touchPressed;
387 397
388 ANNOTATED_FIELD(Persistent<Node>, m_scrollGestureHandlingNode); 398 Member<Node> m_scrollGestureHandlingNode;
389 bool m_lastHitTestResultOverWidget; 399 bool m_lastHitTestResultOverWidget;
390 ANNOTATED_FIELD(Persistent<Node>, m_previousGestureScrolledNode); 400 Member<Node> m_previousGestureScrolledNode;
391 RefPtr<Scrollbar> m_scrollbarHandlingScrollGesture; 401 RefPtr<Scrollbar> m_scrollbarHandlingScrollGesture;
392 402
393 double m_maxMouseMovedDuration; 403 double m_maxMouseMovedDuration;
394 PlatformEvent::Type m_baseEventType; 404 PlatformEvent::Type m_baseEventType;
395 bool m_didStartDrag; 405 bool m_didStartDrag;
396 bool m_didLongPressInvokeContextMenu; 406 bool m_didLongPressInvokeContextMenu;
397 407
398 #if ENABLE(CURSOR_VISIBILITY) 408 #if ENABLE(CURSOR_VISIBILITY)
399 Timer<EventHandler> m_autoHideCursorTimer; 409 Timer<EventHandler> m_autoHideCursorTimer;
400 #endif 410 #endif
401 }; 411 };
402 412
403 } // namespace WebCore 413 } // namespace WebCore
404 414
405 #endif // EventHandler_h 415 #endif // EventHandler_h
OLDNEW
« no previous file with comments | « Source/core/page/AutoscrollController.cpp ('k') | Source/core/page/EventHandler.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698