[webkit-changes] [WebKit/WebKit] 7b68c9: Use dynamicDowncast<T> even more in the DOM

Chris Dumez noreply at github.com
Tue Nov 14 09:00:02 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7b68c9b9e188caabb240fde9d0884d0343a45e81
      https://github.com/WebKit/WebKit/commit/7b68c9b9e188caabb240fde9d0884d0343a45e81
  Author: Chris Dumez <cdumez at apple.com>
  Date:   2023-11-14 (Tue, 14 Nov 2023)

  Changed paths:
    M Source/WebCore/dom/ElementTraversal.h
    M Source/WebCore/dom/Event.cpp
    M Source/WebCore/dom/EventContext.cpp
    M Source/WebCore/dom/EventNames.h
    M Source/WebCore/dom/EventPath.cpp
    M Source/WebCore/dom/EventPath.h
    M Source/WebCore/dom/EventTarget.cpp
    M Source/WebCore/dom/FragmentDirectiveRangeFinder.cpp
    M Source/WebCore/dom/FullscreenManager.cpp
    M Source/WebCore/dom/ImageOverlay.cpp
    M Source/WebCore/dom/KeyboardEvent.cpp
    M Source/WebCore/dom/MessagePort.cpp
    M Source/WebCore/dom/MouseEvent.cpp
    M Source/WebCore/dom/MouseRelatedEvent.cpp

  Log Message:
  -----------
  Use dynamicDowncast<T> even more in the DOM
https://bugs.webkit.org/show_bug.cgi?id=264792

Reviewed by Darin Adler.

Use dynamicDowncast<T> even more in the DOM instead of is<T>() + downcast<T>().
It is less error-prone and often results in more concise code. I am also hoping
to have downcast<>() do a type check on release builds in the future. It is
currently too expensive to do so but it may become affordable if we use
dynamicDowncast<T>() instead when possible.

* Source/WebCore/dom/ElementTraversal.h:
(WebCore::Traversal<Element>::nextTemplate):
(WebCore::Traversal<ElementType>::firstChildTemplate):
(WebCore::Traversal<ElementType>::lastChildTemplate):
(WebCore::Traversal<ElementType>::firstWithinTemplate):
(WebCore::Traversal<ElementType>::lastWithinTemplate):
(WebCore::Traversal<ElementType>::nextTemplate):
(WebCore::Traversal<ElementType>::previous):
(WebCore::Traversal<ElementType>::nextSibling):
(WebCore::Traversal<ElementType>::previousSibling):
(WebCore::Traversal<ElementType>::nextSkippingChildren):
(WebCore::Traversal<ElementType>::inclusiveFirstWithin):
(WebCore::Traversal<ElementType>::inclusiveLastWithin):
(WebCore::ElementTraversal::previousIncludingPseudo):
(WebCore::ElementTraversal::nextIncludingPseudo):
(WebCore::ElementTraversal::nextIncludingPseudoSkippingChildren):
(WebCore::ElementTraversal::pseudoAwarePreviousSibling):
* Source/WebCore/dom/Event.cpp:
(WebCore::Event::setCurrentTarget):
(WebCore::Event::timeStampForBindings const):
* Source/WebCore/dom/EventContext.cpp:
(WebCore::EventContext::handleLocalEvents const):
(WebCore::EventContext::isUnreachableNode const):
* Source/WebCore/dom/EventNames.h:
(WebCore::EventNames::isTouchRelatedEventType const):
* Source/WebCore/dom/EventPath.cpp:
(WebCore::shouldEventCrossShadowBoundary):
(WebCore::nodeOrHostIfPseudoElement):
(WebCore::EventPath::EventPath):
(WebCore::EventPath::buildPath):
(WebCore::EventPath::retargetTouch):
* Source/WebCore/dom/EventPath.h:
(WebCore::EventPath::eventTargetRespectingTargetRules):
* Source/WebCore/dom/EventTarget.cpp:
(WebCore::EventTarget::addEventListener):
(WebCore::EventTarget::innerInvokeEventListeners):
(WebCore::EventTarget::invalidateEventListenerRegions):
* Source/WebCore/dom/FragmentDirectiveRangeFinder.cpp:
(WebCore::FragmentDirectiveRangeFinder::boundaryPointAtIndexInNodes):
(WebCore::FragmentDirectiveRangeFinder::isVisibleTextNode):
(WebCore::FragmentDirectiveRangeFinder::findRangeFromNodeList):
(WebCore::FragmentDirectiveRangeFinder::rangeOfStringInRange):
* Source/WebCore/dom/FullscreenManager.cpp:
(WebCore::markRendererDirtyAfterTopLayerChange):
(WebCore::FullscreenManager::dispatchFullscreenChangeOrErrorEvent):
* Source/WebCore/dom/ImageOverlay.cpp:
(WebCore::ImageOverlay::containerRect):
* Source/WebCore/dom/KeyboardEvent.cpp:
(WebCore::viewIsCompositing):
(WebCore::KeyboardEvent::charCode const):
* Source/WebCore/dom/MessagePort.cpp:
(WebCore::MessagePort::dispatchMessages):
(WebCore::MessagePort::dispatchEvent):
* Source/WebCore/dom/MouseEvent.cpp:
(WebCore::MouseEvent::canTriggerActivationBehavior):
* Source/WebCore/dom/MouseRelatedEvent.cpp:
(WebCore::MouseRelatedEvent::frameViewFromWindowProxy):

Canonical link: https://commits.webkit.org/270710@main




More information about the webkit-changes mailing list