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

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

Issue 1770323002: Fix non-Oilpan following r379558. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: more PassRefPtr<> fixes Created 4 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #include "core/input/PointerEventManager.h" 5 #include "core/input/PointerEventManager.h"
6 6
7 #include "core/dom/shadow/FlatTreeTraversal.h" 7 #include "core/dom/shadow/FlatTreeTraversal.h"
8 #include "core/events/MouseEvent.h" 8 #include "core/events/MouseEvent.h"
9 #include "core/input/EventHandler.h" 9 #include "core/input/EventHandler.h"
10 10
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 PassRefPtrWillBeRawPtr<EventTarget> PointerEventManager::getEffectiveTargetForPo interEvent( 93 PassRefPtrWillBeRawPtr<EventTarget> PointerEventManager::getEffectiveTargetForPo interEvent(
94 PassRefPtrWillBeRawPtr<EventTarget> target, int pointerId) 94 PassRefPtrWillBeRawPtr<EventTarget> target, int pointerId)
95 { 95 {
96 if (EventTarget* capturingTarget = getCapturingNode(pointerId)) 96 if (EventTarget* capturingTarget = getCapturingNode(pointerId))
97 return capturingTarget; 97 return capturingTarget;
98 return target; 98 return target;
99 } 99 }
100 100
101 // Sends node transition events (pointer|mouse)(out|leave|over|enter) to the cor responding targets 101 // Sends node transition events (pointer|mouse)(out|leave|over|enter) to the cor responding targets
102 void PointerEventManager::sendNodeTransitionEvents( 102 void PointerEventManager::sendNodeTransitionEvents(
103 PassRefPtrWillBeRawPtr<Node> exitedNode, 103 PassRefPtrWillBeRawPtr<Node> prpExitedNode,
104 PassRefPtrWillBeRawPtr<Node> enteredNode, 104 PassRefPtrWillBeRawPtr<Node> prpEnteredNode,
105 const PlatformMouseEvent& mouseEvent, 105 const PlatformMouseEvent& mouseEvent,
106 PassRefPtrWillBeRawPtr<AbstractView> view) 106 PassRefPtrWillBeRawPtr<AbstractView> view)
107 { 107 {
108 RefPtrWillBeRawPtr<Node> exitedNode = prpExitedNode;
109 RefPtrWillBeRawPtr<Node> enteredNode = prpEnteredNode;
108 RefPtrWillBeRawPtr<PointerEvent> pointerEvent = 110 RefPtrWillBeRawPtr<PointerEvent> pointerEvent =
109 m_pointerEventFactory.create(EventTypeNames::mouseout, mouseEvent, 111 m_pointerEventFactory.create(EventTypeNames::mouseout, mouseEvent,
110 nullptr, view); 112 nullptr, view);
111 processPendingPointerCapture(pointerEvent, enteredNode, mouseEvent, true); 113 processPendingPointerCapture(pointerEvent, enteredNode, mouseEvent, true);
112 114
113 // Pointer event type does not matter as it will be overridden in the sendNo deTransitionEvents 115 // Pointer event type does not matter as it will be overridden in the sendNo deTransitionEvents
114 sendNodeTransitionEvents(exitedNode, enteredNode, pointerEvent, mouseEvent, 116 sendNodeTransitionEvents(exitedNode, enteredNode, pointerEvent, mouseEvent,
115 true); 117 true);
116 } 118 }
117 119
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 EventTargetAttributes(target, false)); 267 EventTargetAttributes(target, false));
266 } 268 }
267 sendNodeTransitionEvents(node.target, target, pointerEvent); 269 sendNodeTransitionEvents(node.target, target, pointerEvent);
268 } else if (target) { 270 } else if (target) {
269 m_nodeUnderPointer.add(pointerEvent->pointerId(), 271 m_nodeUnderPointer.add(pointerEvent->pointerId(),
270 EventTargetAttributes(target, false)); 272 EventTargetAttributes(target, false));
271 sendNodeTransitionEvents(nullptr, target, pointerEvent); 273 sendNodeTransitionEvents(nullptr, target, pointerEvent);
272 } 274 }
273 } 275 }
274 276
275 void PointerEventManager::sendTouchCancelPointerEvent(PassRefPtrWillBeRawPtr<Eve ntTarget> target, 277 void PointerEventManager::sendTouchCancelPointerEvent(PassRefPtrWillBeRawPtr<Eve ntTarget> prpTarget, const PlatformTouchPoint& point)
276 const PlatformTouchPoint& point)
277 { 278 {
278 RefPtrWillBeRawPtr<PointerEvent> pointerEvent = 279 RefPtrWillBeRawPtr<EventTarget> target = prpTarget;
279 m_pointerEventFactory.createPointerCancel(point); 280 RefPtrWillBeRawPtr<PointerEvent> pointerEvent = m_pointerEventFactory.create PointerCancel(point);
280 281
281 processPendingPointerCapture(pointerEvent, target); 282 processPendingPointerCapture(pointerEvent, target);
282 283
283 // TODO(nzolghadr): crbug.com/579553 dealing with implicit touch capturing v s pointer event capturing 284 // TODO(nzolghadr): crbug.com/579553 dealing with implicit touch capturing v s pointer event capturing
284 dispatchPointerEvent( 285 dispatchPointerEvent(
285 getEffectiveTargetForPointerEvent(target, pointerEvent->pointerId()), 286 getEffectiveTargetForPointerEvent(target, pointerEvent->pointerId()),
286 pointerEvent.get()); 287 pointerEvent.get());
287 288
288 setNodeUnderPointer(pointerEvent, nullptr); 289 setNodeUnderPointer(pointerEvent, nullptr);
289 290
(...skipping 25 matching lines...) Expand all
315 if (touchPoint.state() == PlatformTouchPoint::TouchReleased 316 if (touchPoint.state() == PlatformTouchPoint::TouchReleased
316 || touchPoint.state() == PlatformTouchPoint::TouchCancelled) { 317 || touchPoint.state() == PlatformTouchPoint::TouchCancelled) {
317 setNodeUnderPointer(pointerEvent, nullptr); 318 setNodeUnderPointer(pointerEvent, nullptr);
318 removePointer(pointerEvent); 319 removePointer(pointerEvent);
319 } 320 }
320 321
321 return result; 322 return result;
322 } 323 }
323 324
324 WebInputEventResult PointerEventManager::sendMousePointerEvent( 325 WebInputEventResult PointerEventManager::sendMousePointerEvent(
325 PassRefPtrWillBeRawPtr<Node> target, const AtomicString& mouseEventType, 326 PassRefPtrWillBeRawPtr<Node> prpTarget, const AtomicString& mouseEventType,
326 int clickCount, const PlatformMouseEvent& mouseEvent, 327 int clickCount, const PlatformMouseEvent& mouseEvent,
327 PassRefPtrWillBeRawPtr<Node> relatedTarget, 328 PassRefPtrWillBeRawPtr<Node> relatedTarget,
328 PassRefPtrWillBeRawPtr<AbstractView> view) 329 PassRefPtrWillBeRawPtr<AbstractView> view)
329 { 330 {
331 RefPtrWillBeRawPtr<Node> target = prpTarget;
330 RefPtrWillBeRawPtr<PointerEvent> pointerEvent = 332 RefPtrWillBeRawPtr<PointerEvent> pointerEvent =
331 m_pointerEventFactory.create(mouseEventType, mouseEvent, 333 m_pointerEventFactory.create(mouseEventType, mouseEvent,
332 relatedTarget, view); 334 relatedTarget, view);
333 335
334 processPendingPointerCapture(pointerEvent, target, mouseEvent, true); 336 processPendingPointerCapture(pointerEvent, target, mouseEvent, true);
335 337
336 // TODO(crbug.com/587955): We should call setNodeUnderPointer here but it ca uses sending 338 // TODO(crbug.com/587955): We should call setNodeUnderPointer here but it ca uses sending
337 // transition events that should be first removed from EventHandler. 339 // transition events that should be first removed from EventHandler.
338 340
339 RefPtrWillBeRawPtr<EventTarget> effectiveTarget = 341 RefPtrWillBeRawPtr<EventTarget> effectiveTarget =
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
442 } 444 }
443 445
444 EventTarget* PointerEventManager::getCapturingNode(int pointerId) 446 EventTarget* PointerEventManager::getCapturingNode(int pointerId)
445 { 447 {
446 if (m_pointerCaptureTarget.contains(pointerId)) 448 if (m_pointerCaptureTarget.contains(pointerId))
447 return m_pointerCaptureTarget.get(pointerId); 449 return m_pointerCaptureTarget.get(pointerId);
448 return nullptr; 450 return nullptr;
449 } 451 }
450 452
451 void PointerEventManager::removePointer( 453 void PointerEventManager::removePointer(
452 const PassRefPtrWillBeRawPtr<PointerEvent> pointerEvent) 454 const PassRefPtrWillBeRawPtr<PointerEvent> prpPointerEvent)
453 { 455 {
456 RefPtrWillBeRawPtr<PointerEvent> pointerEvent = prpPointerEvent;
454 if (m_pointerEventFactory.remove(pointerEvent)) { 457 if (m_pointerEventFactory.remove(pointerEvent)) {
455 int pointerId = pointerEvent->pointerId(); 458 int pointerId = pointerEvent->pointerId();
456 m_pendingPointerCaptureTarget.remove(pointerId); 459 m_pendingPointerCaptureTarget.remove(pointerId);
457 m_pointerCaptureTarget.remove(pointerId); 460 m_pointerCaptureTarget.remove(pointerId);
458 m_nodeUnderPointer.remove(pointerId); 461 m_nodeUnderPointer.remove(pointerId);
459 } 462 }
460 } 463 }
461 464
462 void PointerEventManager::elementRemoved(EventTarget* target) 465 void PointerEventManager::elementRemoved(EventTarget* target)
463 { 466 {
(...skipping 28 matching lines...) Expand all
492 { 495 {
493 #if ENABLE(OILPAN) 496 #if ENABLE(OILPAN)
494 visitor->trace(m_nodeUnderPointer); 497 visitor->trace(m_nodeUnderPointer);
495 visitor->trace(m_pointerCaptureTarget); 498 visitor->trace(m_pointerCaptureTarget);
496 visitor->trace(m_pendingPointerCaptureTarget); 499 visitor->trace(m_pendingPointerCaptureTarget);
497 #endif 500 #endif
498 } 501 }
499 502
500 503
501 } // namespace blink 504 } // namespace blink
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698