Changeset 279529 in webkit
- Timestamp:
- Jul 2, 2021, 6:24:12 PM (5 years ago)
- Location:
- branches/safari-611.3.10.1-branch/Source/WebCore
- Files:
-
- 5 edited
-
ChangeLog (modified) (1 diff)
-
dom/Element.cpp (modified) (1 diff)
-
page/EventHandler.cpp (modified) (3 diffs)
-
page/PointerLockController.cpp (modified) (1 diff)
-
page/Quirks.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/safari-611.3.10.1-branch/Source/WebCore/ChangeLog
r279077 r279529 1 2021-07-02 Ruben Turcios <rubent_22@apple.com> 2 3 Cherry-pick r278964. rdar://problem/79474157 4 5 Protect Element before calling dispatchMouseEvent() on it 6 https://bugs.webkit.org/show_bug.cgi?id=226767 7 <rdar://problem/79009112> 8 9 Reviewed by Ryosuke Niwa. 10 11 * page/EventHandler.cpp: 12 (WebCore::EventHandler::updateMouseEventTargetNode): 13 (WebCore::EventHandler::dispatchMouseEvent): 14 * page/PointerLockController.cpp: 15 (WebCore::PointerLockController::dispatchLockedMouseEvent): 16 * page/Quirks.cpp: 17 (WebCore::Quirks::triggerOptionalStorageAccessQuirk const): 18 19 20 git-svn-id: https://svn.webkit.org/repository/webkit/trunk@278964 268f45cc-cd09-0410-ab3c-d52691b4dbfc 21 22 2021-06-16 Chris Dumez <cdumez@apple.com> 23 24 Protect Element before calling dispatchMouseEvent() on it 25 https://bugs.webkit.org/show_bug.cgi?id=226767 26 <rdar://problem/79009112> 27 28 Reviewed by Ryosuke Niwa. 29 30 * page/EventHandler.cpp: 31 (WebCore::EventHandler::updateMouseEventTargetNode): 32 (WebCore::EventHandler::dispatchMouseEvent): 33 * page/PointerLockController.cpp: 34 (WebCore::PointerLockController::dispatchLockedMouseEvent): 35 * page/Quirks.cpp: 36 (WebCore::Quirks::triggerOptionalStorageAccessQuirk const): 37 1 38 2021-06-21 Alan Coon <alancoon@apple.com> 2 39 -
branches/safari-611.3.10.1-branch/Source/WebCore/dom/Element.cpp
r278502 r279529 386 386 return true; // Shouldn't happen. 387 387 388 Ref protectedThis { *this }; 388 389 bool didNotSwallowEvent = true; 389 390 -
branches/safari-611.3.10.1-branch/Source/WebCore/page/EventHandler.cpp
r276045 r279529 2548 2548 } 2549 2549 2550 if ( m_lastElementUnderMouse)2551 m_lastElementUnderMouse->dispatchMouseEvent(platformMouseEvent, eventNames().mouseoutEvent, 0, m_elementUnderMouse.get());2550 if (auto lastElementUnderMouse = m_lastElementUnderMouse) 2551 lastElementUnderMouse->dispatchMouseEvent(platformMouseEvent, eventNames().mouseoutEvent, 0, m_elementUnderMouse.get()); 2552 2552 2553 2553 for (auto& chain : leftElementsChain) { … … 2556 2556 } 2557 2557 2558 if ( m_elementUnderMouse)2559 m_elementUnderMouse->dispatchMouseEvent(platformMouseEvent, eventNames().mouseoverEvent, 0, m_lastElementUnderMouse.get());2558 if (auto elementUnderMouse = m_elementUnderMouse) 2559 elementUnderMouse->dispatchMouseEvent(platformMouseEvent, eventNames().mouseoverEvent, 0, m_lastElementUnderMouse.get()); 2560 2560 2561 2561 for (auto& chain : WTF::makeReversedRange(enteredElementsChain)) { … … 2641 2641 updateMouseEventTargetNode(eventType, targetNode, platformMouseEvent, fireMouseOverOut); 2642 2642 2643 if (m_elementUnderMouse && !m_elementUnderMouse->dispatchMouseEvent(platformMouseEvent, eventType, clickCount)) 2644 return false; 2643 if (auto elementUnderMouse = m_elementUnderMouse) { 2644 if (!elementUnderMouse->dispatchMouseEvent(platformMouseEvent, eventType, clickCount)) 2645 return false; 2646 } 2645 2647 2646 2648 if (eventType != eventNames().mousedownEvent) -
branches/safari-611.3.10.1-branch/Source/WebCore/page/PointerLockController.cpp
r273389 r279529 182 182 return; 183 183 184 m_element->dispatchMouseEvent(event, eventType, event.clickCount()); 184 Ref protectedElement { *m_element }; 185 protectedElement->dispatchMouseEvent(event, eventType, event.clickCount()); 185 186 186 187 // Create click events 187 188 if (eventType == eventNames().mouseupEvent) 188 m_element->dispatchMouseEvent(event, eventNames().clickEvent, event.clickCount());189 protectedElement->dispatchMouseEvent(event, eventNames().clickEvent, event.clickCount()); 189 190 } 190 191 -
branches/safari-611.3.10.1-branch/Source/WebCore/page/Quirks.cpp
r278502 r279529 1193 1193 if (isStorageAccessQuirkDomainAndElement(m_document->url(), element)) { 1194 1194 return requestStorageAccessAndHandleClick([element = makeWeakPtr(element), platformEvent, eventType, detail, relatedTarget] (ShouldDispatchClick shouldDispatchClick) mutable { 1195 if (!element) 1195 RefPtr protectedElement { element.get() }; 1196 if (!protectedElement) 1196 1197 return; 1197 1198 1198 1199 if (shouldDispatchClick == ShouldDispatchClick::Yes) 1199 element->dispatchMouseEvent(platformEvent, eventType, detail, relatedTarget);1200 protectedElement->dispatchMouseEvent(platformEvent, eventType, detail, relatedTarget); 1200 1201 }); 1201 1202 }
Note:
See TracChangeset
for help on using the changeset viewer.