Title: [292370] trunk/Source/WebCore
Revision
292370
Author
cdu...@apple.com
Date
2022-04-04 20:46:42 -0700 (Mon, 04 Apr 2022)

Log Message

Avoid repeated calls to WebCore::eventNames()
https://bugs.webkit.org/show_bug.cgi?id=238773

Reviewed by Geoffrey Garen.

Avoid repeated calls to WebCore::eventNames() by caching it where appropriate.
WebCore::eventNames() calls pthread_get_specific.

* dom/Element.cpp:
(WebCore::isCompatibilityMouseEvent):
* dom/EventContext.cpp:
(WebCore::EventContext::handleLocalEvents const):
* dom/EventTarget.cpp:
(WebCore::legacyType):
(WebCore::EventTarget::removeAllEventListeners):
* dom/MouseEvent.cpp:
(WebCore::MouseEvent::toElement const):
(WebCore::MouseEvent::fromElement const):
* dom/Node.cpp:
(WebCore::Node::moveNodeToNewDocument):
(WebCore::tryAddEventListener):
(WebCore::tryRemoveEventListener):
(WebCore::Node::defaultEventHandler):
(WebCore::Node::willRespondToMouseMoveEvents):
(WebCore::Node::willRespondToTouchEvents):
(WebCore::Node::willRespondToMouseClickEvents):
* dom/PointerEvent.h:
(WebCore::PointerEvent::typeIsEnterOrLeave):
* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::defaultEventHandler):
* html/HTMLButtonElement.cpp:
(WebCore::HTMLButtonElement::defaultEventHandler):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::willDispatchEvent):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::menuListDefaultEventHandler):
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
* html/HTMLSummaryElement.cpp:
(WebCore::HTMLSummaryElement::defaultEventHandler):
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::forwardEvent):
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::forwardEvent):
* html/shadow/SliderThumbElement.cpp:
(WebCore::SliderThumbElement::handleTouchEvent):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::dispatchAllPendingUnloadEvents):
(WebCore::DOMWindow::addEventListener):
(WebCore::DOMWindow::deviceOrientationController const): Deleted.
(WebCore::DOMWindow::deviceMotionController const): Deleted.
(WebCore::DOMWindow::isAllowedToUseDeviceMotionOrOrientation const): Deleted.
(WebCore::DOMWindow::isAllowedToUseDeviceMotion const): Deleted.
(WebCore::DOMWindow::isAllowedToUseDeviceOrientation const): Deleted.
(WebCore::DOMWindow::hasPermissionToReceiveDeviceMotionOrOrientationEvents const): Deleted.
(WebCore::DOMWindow::startListeningForDeviceOrientationIfNecessary): Deleted.
(WebCore::DOMWindow::stopListeningForDeviceOrientationIfNecessary): Deleted.
(WebCore::DOMWindow::startListeningForDeviceMotionIfNecessary): Deleted.
(WebCore::DOMWindow::stopListeningForDeviceMotionIfNecessary): Deleted.
(WebCore::DOMWindow::failedToRegisterDeviceMotionEventListener): Deleted.
(WebCore::DOMWindow::incrementScrollEventListenersCount): Deleted.
(WebCore::DOMWindow::decrementScrollEventListenersCount): Deleted.
(WebCore::DOMWindow::resetAllGeolocationPermission): Deleted.
(WebCore::DOMWindow::removeEventListener): Deleted.
(WebCore::DOMWindow::languagesChanged): Deleted.
(WebCore::DOMWindow::dispatchLoadEvent): Deleted.
(WebCore::DOMWindow::dispatchEvent): Deleted.
(WebCore::DOMWindow::removeAllEventListeners): Deleted.
(WebCore::DOMWindow::captureEvents): Deleted.
(WebCore::DOMWindow::releaseEvents): Deleted.
(WebCore::DOMWindow::finishedLoading): Deleted.
(WebCore::DOMWindow::setLocation): Deleted.
(WebCore::DOMWindow::printErrorMessage const): Deleted.
(WebCore::DOMWindow::crossDomainAccessErrorMessage): Deleted.
(WebCore::DOMWindow::isInsecureScriptAccess): Deleted.
(WebCore::DOMWindow::createWindow): Deleted.
(WebCore::DOMWindow::open): Deleted.
(WebCore::DOMWindow::showModalDialog): Deleted.
(WebCore::DOMWindow::enableSuddenTermination): Deleted.
(WebCore::DOMWindow::disableSuddenTermination): Deleted.
(WebCore::DOMWindow::frame const): Deleted.
(WebCore::DOMWindow::eventListenersDidChange): Deleted.
* page/EventHandler.cpp:
(WebCore::EventHandler::updateMouseEventTargetNode):
(WebCore::EventHandler::isKeyboardOptionTab):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (292369 => 292370)


--- trunk/Source/WebCore/ChangeLog	2022-04-05 03:32:00 UTC (rev 292369)
+++ trunk/Source/WebCore/ChangeLog	2022-04-05 03:46:42 UTC (rev 292370)
@@ -1,3 +1,90 @@
+2022-04-04  Chris Dumez  <cdu...@apple.com>
+
+        Avoid repeated calls to WebCore::eventNames()
+        https://bugs.webkit.org/show_bug.cgi?id=238773
+
+        Reviewed by Geoffrey Garen.
+
+        Avoid repeated calls to WebCore::eventNames() by caching it where appropriate.
+        WebCore::eventNames() calls pthread_get_specific.
+
+        * dom/Element.cpp:
+        (WebCore::isCompatibilityMouseEvent):
+        * dom/EventContext.cpp:
+        (WebCore::EventContext::handleLocalEvents const):
+        * dom/EventTarget.cpp:
+        (WebCore::legacyType):
+        (WebCore::EventTarget::removeAllEventListeners):
+        * dom/MouseEvent.cpp:
+        (WebCore::MouseEvent::toElement const):
+        (WebCore::MouseEvent::fromElement const):
+        * dom/Node.cpp:
+        (WebCore::Node::moveNodeToNewDocument):
+        (WebCore::tryAddEventListener):
+        (WebCore::tryRemoveEventListener):
+        (WebCore::Node::defaultEventHandler):
+        (WebCore::Node::willRespondToMouseMoveEvents):
+        (WebCore::Node::willRespondToTouchEvents):
+        (WebCore::Node::willRespondToMouseClickEvents):
+        * dom/PointerEvent.h:
+        (WebCore::PointerEvent::typeIsEnterOrLeave):
+        * html/HTMLAnchorElement.cpp:
+        (WebCore::HTMLAnchorElement::defaultEventHandler):
+        * html/HTMLButtonElement.cpp:
+        (WebCore::HTMLButtonElement::defaultEventHandler):
+        * html/HTMLInputElement.cpp:
+        (WebCore::HTMLInputElement::willDispatchEvent):
+        * html/HTMLSelectElement.cpp:
+        (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
+        (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
+        * html/HTMLSummaryElement.cpp:
+        (WebCore::HTMLSummaryElement::defaultEventHandler):
+        * html/HTMLTextFormControlElement.cpp:
+        (WebCore::HTMLTextFormControlElement::forwardEvent):
+        * html/TextFieldInputType.cpp:
+        (WebCore::TextFieldInputType::forwardEvent):
+        * html/shadow/SliderThumbElement.cpp:
+        (WebCore::SliderThumbElement::handleTouchEvent):
+        * page/DOMWindow.cpp:
+        (WebCore::DOMWindow::dispatchAllPendingUnloadEvents):
+        (WebCore::DOMWindow::addEventListener):
+        (WebCore::DOMWindow::deviceOrientationController const): Deleted.
+        (WebCore::DOMWindow::deviceMotionController const): Deleted.
+        (WebCore::DOMWindow::isAllowedToUseDeviceMotionOrOrientation const): Deleted.
+        (WebCore::DOMWindow::isAllowedToUseDeviceMotion const): Deleted.
+        (WebCore::DOMWindow::isAllowedToUseDeviceOrientation const): Deleted.
+        (WebCore::DOMWindow::hasPermissionToReceiveDeviceMotionOrOrientationEvents const): Deleted.
+        (WebCore::DOMWindow::startListeningForDeviceOrientationIfNecessary): Deleted.
+        (WebCore::DOMWindow::stopListeningForDeviceOrientationIfNecessary): Deleted.
+        (WebCore::DOMWindow::startListeningForDeviceMotionIfNecessary): Deleted.
+        (WebCore::DOMWindow::stopListeningForDeviceMotionIfNecessary): Deleted.
+        (WebCore::DOMWindow::failedToRegisterDeviceMotionEventListener): Deleted.
+        (WebCore::DOMWindow::incrementScrollEventListenersCount): Deleted.
+        (WebCore::DOMWindow::decrementScrollEventListenersCount): Deleted.
+        (WebCore::DOMWindow::resetAllGeolocationPermission): Deleted.
+        (WebCore::DOMWindow::removeEventListener): Deleted.
+        (WebCore::DOMWindow::languagesChanged): Deleted.
+        (WebCore::DOMWindow::dispatchLoadEvent): Deleted.
+        (WebCore::DOMWindow::dispatchEvent): Deleted.
+        (WebCore::DOMWindow::removeAllEventListeners): Deleted.
+        (WebCore::DOMWindow::captureEvents): Deleted.
+        (WebCore::DOMWindow::releaseEvents): Deleted.
+        (WebCore::DOMWindow::finishedLoading): Deleted.
+        (WebCore::DOMWindow::setLocation): Deleted.
+        (WebCore::DOMWindow::printErrorMessage const): Deleted.
+        (WebCore::DOMWindow::crossDomainAccessErrorMessage): Deleted.
+        (WebCore::DOMWindow::isInsecureScriptAccess): Deleted.
+        (WebCore::DOMWindow::createWindow): Deleted.
+        (WebCore::DOMWindow::open): Deleted.
+        (WebCore::DOMWindow::showModalDialog): Deleted.
+        (WebCore::DOMWindow::enableSuddenTermination): Deleted.
+        (WebCore::DOMWindow::disableSuddenTermination): Deleted.
+        (WebCore::DOMWindow::frame const): Deleted.
+        (WebCore::DOMWindow::eventListenersDidChange): Deleted.
+        * page/EventHandler.cpp:
+        (WebCore::EventHandler::updateMouseEventTargetNode):
+        (WebCore::EventHandler::isKeyboardOptionTab):
+
 2022-04-04  Said Abou-Hallawa  <s...@apple.com>
 
         [GPU Process] CSSFilter should be created only at the painting time

Modified: trunk/Source/WebCore/dom/Element.cpp (292369 => 292370)


--- trunk/Source/WebCore/dom/Element.cpp	2022-04-05 03:32:00 UTC (rev 292369)
+++ trunk/Source/WebCore/dom/Element.cpp	2022-04-05 03:46:42 UTC (rev 292370)
@@ -433,7 +433,8 @@
 {
     // https://www.w3.org/TR/pointerevents/#compatibility-mapping-with-mouse-events
     const auto& type = mouseEvent.type();
-    return type != eventNames().clickEvent && type != eventNames().mouseoverEvent && type != eventNames().mouseoutEvent && type != eventNames().mouseenterEvent && type != eventNames().mouseleaveEvent;
+    auto& eventNames = WebCore::eventNames();
+    return type != eventNames.clickEvent && type != eventNames.mouseoverEvent && type != eventNames.mouseoutEvent && type != eventNames.mouseenterEvent && type != eventNames.mouseleaveEvent;
 }
 
 enum class ShouldIgnoreMouseEvent : bool { No, Yes };

Modified: trunk/Source/WebCore/dom/EventContext.cpp (292369 => 292370)


--- trunk/Source/WebCore/dom/EventContext.cpp	2022-04-05 03:32:00 UTC (rev 292369)
+++ trunk/Source/WebCore/dom/EventContext.cpp	2022-04-05 03:46:42 UTC (rev 292370)
@@ -78,7 +78,8 @@
 
     if (UNLIKELY(m_contextNodeIsFormElement)) {
         ASSERT(is<HTMLFormElement>(*m_node));
-        if ((event.type() == eventNames().submitEvent || event.type() == eventNames().resetEvent)
+        auto& eventNames = WebCore::eventNames();
+        if ((event.type() == eventNames.submitEvent || event.type() == eventNames.resetEvent)
             && event.eventPhase() != Event::CAPTURING_PHASE && event.target() != m_node && is<Node>(event.target())) {
             event.stopPropagation();
             return;

Modified: trunk/Source/WebCore/dom/EventTarget.cpp (292369 => 292370)


--- trunk/Source/WebCore/dom/EventTarget.cpp	2022-04-05 03:32:00 UTC (rev 292369)
+++ trunk/Source/WebCore/dom/EventTarget.cpp	2022-04-05 03:46:42 UTC (rev 292370)
@@ -260,21 +260,22 @@
 
 static const AtomString& legacyType(const Event& event)
 {
-    if (event.type() == eventNames().animationendEvent)
-        return eventNames().webkitAnimationEndEvent;
+    auto& eventNames = WebCore::eventNames();
+    if (event.type() == eventNames.animationendEvent)
+        return eventNames.webkitAnimationEndEvent;
 
-    if (event.type() == eventNames().animationstartEvent)
-        return eventNames().webkitAnimationStartEvent;
+    if (event.type() == eventNames.animationstartEvent)
+        return eventNames.webkitAnimationStartEvent;
 
-    if (event.type() == eventNames().animationiterationEvent)
-        return eventNames().webkitAnimationIterationEvent;
+    if (event.type() == eventNames.animationiterationEvent)
+        return eventNames.webkitAnimationIterationEvent;
 
-    if (event.type() == eventNames().transitionendEvent)
-        return eventNames().webkitTransitionEndEvent;
+    if (event.type() == eventNames.transitionendEvent)
+        return eventNames.webkitTransitionEndEvent;
 
     // FIXME: This legacy name is not part of the specification (https://dom.spec.whatwg.org/#dispatching-events).
-    if (event.type() == eventNames().wheelEvent)
-        return eventNames().mousewheelEvent;
+    if (event.type() == eventNames.wheelEvent)
+        return eventNames.mousewheelEvent;
 
     return nullAtom();
 }
@@ -395,7 +396,8 @@
 
     auto* data = ""
     if (data && !data->eventListenerMap.isEmpty()) {
-        if (data->eventListenerMap.contains(eventNames().wheelEvent) || data->eventListenerMap.contains(eventNames().mousewheelEvent))
+        auto& eventNames = WebCore::eventNames();
+        if (data->eventListenerMap.contains(eventNames.wheelEvent) || data->eventListenerMap.contains(eventNames.mousewheelEvent))
             invalidateEventListenerRegions();
 
         data->eventListenerMap.clear();

Modified: trunk/Source/WebCore/dom/MouseEvent.cpp (292369 => 292370)


--- trunk/Source/WebCore/dom/MouseEvent.cpp	2022-04-05 03:32:00 UTC (rev 292369)
+++ trunk/Source/WebCore/dom/MouseEvent.cpp	2022-04-05 03:46:42 UTC (rev 292370)
@@ -194,7 +194,8 @@
 {
     // MSIE extension - "the object toward which the user is moving the mouse pointer"
     EventTarget* target;
-    if (type() == eventNames().mouseoutEvent || type() == eventNames().mouseleaveEvent)
+    auto& eventNames = WebCore::eventNames();
+    if (type() == eventNames.mouseoutEvent || type() == eventNames.mouseleaveEvent)
         target = relatedTarget();
     else
         target = this->target();
@@ -205,7 +206,8 @@
 {
     // MSIE extension - "object from which activation or the mouse pointer is exiting during the event" (huh?)
     EventTarget* target;
-    if (type() == eventNames().mouseoutEvent || type() == eventNames().mouseleaveEvent)
+    auto& eventNames = WebCore::eventNames();
+    if (type() == eventNames.mouseoutEvent || type() == eventNames.mouseleaveEvent)
         target = this->target();
     else
         target = relatedTarget();

Modified: trunk/Source/WebCore/dom/Node.cpp (292369 => 292370)


--- trunk/Source/WebCore/dom/Node.cpp	2022-04-05 03:32:00 UTC (rev 292369)
+++ trunk/Source/WebCore/dom/Node.cpp	2022-04-05 03:46:42 UTC (rev 292370)
@@ -2083,12 +2083,13 @@
         textManipulationController->removeNode(*this);
 
     if (auto* eventTargetData = this->eventTargetData()) {
+        auto& eventNames = WebCore::eventNames();
         if (!eventTargetData->eventListenerMap.isEmpty()) {
             for (auto& type : eventTargetData->eventListenerMap.eventTypes())
                 newDocument.addListenerTypeIfNeeded(type);
         }
 
-        unsigned numWheelEventHandlers = eventListeners(eventNames().mousewheelEvent).size() + eventListeners(eventNames().wheelEvent).size();
+        unsigned numWheelEventHandlers = eventListeners(eventNames.mousewheelEvent).size() + eventListeners(eventNames.wheelEvent).size();
         for (unsigned i = 0; i < numWheelEventHandlers; ++i) {
             oldDocument.didRemoveWheelEventHandler(*this);
             newDocument.didAddWheelEventHandler(*this);
@@ -2097,11 +2098,11 @@
         unsigned numTouchEventListeners = 0;
 #if ENABLE(TOUCH_EVENTS)
         if (newDocument.quirks().shouldDispatchSimulatedMouseEvents(this)) {
-            for (auto& name : eventNames().extendedTouchRelatedEventNames())
+            for (auto& name : eventNames.extendedTouchRelatedEventNames())
                 numTouchEventListeners += eventListeners(name).size();
         } else {
 #endif
-            for (auto& name : eventNames().touchRelatedEventNames())
+            for (auto& name : eventNames.touchRelatedEventNames())
                 numTouchEventListeners += eventListeners(name).size();
 #if ENABLE(TOUCH_EVENTS)
         }
@@ -2118,7 +2119,7 @@
 
 #if ENABLE(TOUCH_EVENTS) && ENABLE(IOS_GESTURE_EVENTS)
         unsigned numGestureEventListeners = 0;
-        for (auto& name : eventNames().gestureEventNames())
+        for (auto& name : eventNames.gestureEventNames())
             numGestureEventListeners += eventListeners(name).size();
 
         for (unsigned i = 0; i < numGestureEventListeners; ++i) {
@@ -2148,25 +2149,27 @@
         return false;
 
     targetNode->document().addListenerTypeIfNeeded(eventType);
-    if (eventNames().isWheelEventType(eventType))
+
+    auto& eventNames = WebCore::eventNames();
+    if (eventNames.isWheelEventType(eventType))
         targetNode->document().didAddWheelEventHandler(*targetNode);
-    else if (eventNames().isTouchRelatedEventType(eventType, *targetNode))
+    else if (eventNames.isTouchRelatedEventType(eventType, *targetNode))
         targetNode->document().didAddTouchEventHandler(*targetNode);
 
 #if PLATFORM(IOS_FAMILY)
-    if (targetNode == &targetNode->document() && eventType == eventNames().scrollEvent) {
+    if (targetNode == &targetNode->document() && eventType == eventNames.scrollEvent) {
         if (auto* window = targetNode->document().domWindow())
             window->incrementScrollEventListenersCount();
     }
 
 #if ENABLE(TOUCH_EVENTS)
-    if (eventNames().isTouchRelatedEventType(eventType, *targetNode))
+    if (eventNames.isTouchRelatedEventType(eventType, *targetNode))
         targetNode->document().addTouchEventListener(*targetNode);
 #endif
 #endif // PLATFORM(IOS_FAMILY)
 
 #if ENABLE(IOS_GESTURE_EVENTS) && ENABLE(TOUCH_EVENTS)
-    if (eventNames().isGestureEventType(eventType))
+    if (eventNames.isGestureEventType(eventType))
         targetNode->document().addTouchEventHandler(*targetNode);
 #endif
 
@@ -2185,25 +2188,26 @@
 
     // FIXME: Notify Document that the listener has vanished. We need to keep track of a number of
     // listeners for each type, not just a bool - see https://bugs.webkit.org/show_bug.cgi?id=33861
-    if (eventNames().isWheelEventType(eventType))
+    auto& eventNames = WebCore::eventNames();
+    if (eventNames.isWheelEventType(eventType))
         targetNode->document().didRemoveWheelEventHandler(*targetNode);
-    else if (eventNames().isTouchRelatedEventType(eventType, *targetNode))
+    else if (eventNames.isTouchRelatedEventType(eventType, *targetNode))
         targetNode->document().didRemoveTouchEventHandler(*targetNode);
 
 #if PLATFORM(IOS_FAMILY)
-    if (targetNode == &targetNode->document() && eventType == eventNames().scrollEvent) {
+    if (targetNode == &targetNode->document() && eventType == eventNames.scrollEvent) {
         if (auto* window = targetNode->document().domWindow())
             window->decrementScrollEventListenersCount();
     }
 
 #if ENABLE(TOUCH_EVENTS)
-    if (eventNames().isTouchRelatedEventType(eventType, *targetNode))
+    if (eventNames.isTouchRelatedEventType(eventType, *targetNode))
         targetNode->document().removeTouchEventListener(*targetNode);
 #endif
 #endif // PLATFORM(IOS_FAMILY)
 
 #if ENABLE(IOS_GESTURE_EVENTS) && ENABLE(TOUCH_EVENTS)
-    if (eventNames().isGestureEventType(eventType))
+    if (eventNames.isGestureEventType(eventType))
         targetNode->document().removeTouchEventHandler(*targetNode);
 #endif
 
@@ -2427,27 +2431,28 @@
 {
     if (event.target() != this)
         return;
-    const AtomString& eventType = event.type();
-    if (eventType == eventNames().keydownEvent || eventType == eventNames().keypressEvent || eventType == eventNames().keyupEvent) {
+    auto& eventType = event.type();
+    auto& eventNames = WebCore::eventNames();
+    if (eventType == eventNames.keydownEvent || eventType == eventNames.keypressEvent || eventType == eventNames.keyupEvent) {
         if (is<KeyboardEvent>(event)) {
             if (Frame* frame = document().frame())
                 frame->eventHandler().defaultKeyboardEventHandler(downcast<KeyboardEvent>(event));
         }
-    } else if (eventType == eventNames().clickEvent) {
+    } else if (eventType == eventNames.clickEvent) {
         dispatchDOMActivateEvent(event);
 #if ENABLE(CONTEXT_MENUS)
-    } else if (eventType == eventNames().contextmenuEvent) {
+    } else if (eventType == eventNames.contextmenuEvent) {
         if (Frame* frame = document().frame())
             if (Page* page = frame->page())
                 page->contextMenuController().handleContextMenuEvent(event);
 #endif
-    } else if (eventType == eventNames().textInputEvent) {
+    } else if (eventType == eventNames.textInputEvent) {
         if (is<TextEvent>(event)) {
             if (Frame* frame = document().frame())
                 frame->eventHandler().defaultTextInputEventHandler(downcast<TextEvent>(event));
         }
 #if ENABLE(PAN_SCROLLING)
-    } else if (eventType == eventNames().mousedownEvent && is<MouseEvent>(event)) {
+    } else if (eventType == eventNames.mousedownEvent && is<MouseEvent>(event)) {
         if (downcast<MouseEvent>(event).button() == MiddleButton) {
             if (enclosingLinkEventParentOrSelf())
                 return;
@@ -2462,7 +2467,7 @@
             }
         }
 #endif
-    } else if (eventNames().isWheelEventType(eventType) && is<WheelEvent>(event)) {
+    } else if (eventNames.isWheelEventType(eventType) && is<WheelEvent>(event)) {
         // If we don't have a renderer, send the wheel event to the first node we find with a renderer.
         // This is needed for <option> and <optgroup> elements so that <select>s get a wheel scroll.
         Node* startNode = this;
@@ -2474,9 +2479,9 @@
                 frame->eventHandler().defaultWheelEventHandler(startNode, downcast<WheelEvent>(event));
         }
 #if ENABLE(TOUCH_EVENTS) && PLATFORM(IOS_FAMILY)
-    } else if (is<TouchEvent>(event) && eventNames().isTouchRelatedEventType(eventType, *this)) {
+    } else if (is<TouchEvent>(event) && eventNames.isTouchRelatedEventType(eventType, *this)) {
         // Capture the target node's visibility state before dispatching touchStart.
-        if (is<Element>(*this) && eventType == eventNames().touchstartEvent) {
+        if (is<Element>(*this) && eventType == eventNames.touchstartEvent) {
 #if ENABLE(CONTENT_CHANGE_OBSERVER)
             auto& contentChangeObserver = document().contentChangeObserver();
             if (ContentChangeObserver::isVisuallyHidden(*this))
@@ -2507,13 +2512,15 @@
     if (downcast<Element>(*this).isDisabledFormControl())
         return false;
 #endif
-    return hasEventListeners(eventNames().mousemoveEvent) || hasEventListeners(eventNames().mouseoverEvent) || hasEventListeners(eventNames().mouseoutEvent);
+    auto& eventNames = WebCore::eventNames();
+    return hasEventListeners(eventNames.mousemoveEvent) || hasEventListeners(eventNames.mouseoverEvent) || hasEventListeners(eventNames.mouseoutEvent);
 }
 
 bool Node::willRespondToTouchEvents()
 {
+    auto& eventNames = WebCore::eventNames();
     return eventTypes().containsIf([&](const auto& type) {
-        return eventNames().isTouchRelatedEventType(type, *this);
+        return eventNames.isTouchRelatedEventType(type, *this);
     });
 }
 
@@ -2521,14 +2528,19 @@
 {
     // FIXME: Why is the iOS code path different from the non-iOS code path?
 #if PLATFORM(IOS_FAMILY)
-    return isContentEditable() || hasEventListeners(eventNames().mouseupEvent) || hasEventListeners(eventNames().mousedownEvent) || hasEventListeners(eventNames().clickEvent);
+    if (isContentEditable())
+        return true;
+    auto& eventNames = WebCore::eventNames();
+    return hasEventListeners(eventNames.mouseupEvent) || hasEventListeners(eventNames.mousedownEvent) || hasEventListeners(eventNames.clickEvent);
 #else
     if (!is<Element>(*this))
         return false;
     if (downcast<Element>(*this).isDisabledFormControl())
         return false;
-    return computeEditability(UserSelectAllIsAlwaysNonEditable, ShouldUpdateStyle::Update) != Editability::ReadOnly
-        || hasEventListeners(eventNames().mouseupEvent) || hasEventListeners(eventNames().mousedownEvent) || hasEventListeners(eventNames().clickEvent) || hasEventListeners(eventNames().DOMActivateEvent);
+    if (computeEditability(UserSelectAllIsAlwaysNonEditable, ShouldUpdateStyle::Update) != Editability::ReadOnly)
+        return true;
+    auto& eventNames = WebCore::eventNames();
+    return hasEventListeners(eventNames.mouseupEvent) || hasEventListeners(eventNames.mousedownEvent) || hasEventListeners(eventNames.clickEvent) || hasEventListeners(eventNames.DOMActivateEvent);
 #endif
 }
 

Modified: trunk/Source/WebCore/dom/PointerEvent.h (292369 => 292370)


--- trunk/Source/WebCore/dom/PointerEvent.h	2022-04-05 03:32:00 UTC (rev 292369)
+++ trunk/Source/WebCore/dom/PointerEvent.h	2022-04-05 03:46:42 UTC (rev 292370)
@@ -112,7 +112,7 @@
     EventInterface eventInterface() const override;
 
 private:
-    static bool typeIsEnterOrLeave(const AtomString& type) { return type == eventNames().pointerenterEvent || type == eventNames().pointerleaveEvent; }
+    static bool typeIsEnterOrLeave(const AtomString& type);
     static CanBubble typeCanBubble(const AtomString& type) { return typeIsEnterOrLeave(type) ? CanBubble::No : CanBubble::Yes; }
     static IsCancelable typeIsCancelable(const AtomString& type) { return typeIsEnterOrLeave(type) ? IsCancelable::No : IsCancelable::Yes; }
     static IsComposed typeIsComposed(const AtomString& type) { return typeIsEnterOrLeave(type) ? IsComposed::No : IsComposed::Yes; }
@@ -137,6 +137,12 @@
     bool m_isPrimary { false };
 };
 
+inline bool PointerEvent::typeIsEnterOrLeave(const AtomString& type)
+{
+    auto& eventNames = WebCore::eventNames();
+    return type == eventNames.pointerenterEvent || type == eventNames.pointerleaveEvent;
+}
+
 } // namespace WebCore
 
 SPECIALIZE_TYPE_TRAITS_EVENT(PointerEvent)

Modified: trunk/Source/WebCore/html/HTMLAnchorElement.cpp (292369 => 292370)


--- trunk/Source/WebCore/html/HTMLAnchorElement.cpp	2022-04-05 03:32:00 UTC (rev 292369)
+++ trunk/Source/WebCore/html/HTMLAnchorElement.cpp	2022-04-05 03:46:42 UTC (rev 292370)
@@ -198,10 +198,11 @@
         if (hasEditableStyle()) {
             // This keeps track of the editable block that the selection was in (if it was in one) just before the link was clicked
             // for the LiveWhenNotFocused editable link behavior
-            if (event.type() == eventNames().mousedownEvent && is<MouseEvent>(event) && downcast<MouseEvent>(event).button() != RightButton && document().frame()) {
+            auto& eventNames = WebCore::eventNames();
+            if (event.type() == eventNames.mousedownEvent && is<MouseEvent>(event) && downcast<MouseEvent>(event).button() != RightButton && document().frame()) {
                 setRootEditableElementForSelectionOnMouseDown(document().frame()->selection().selection().rootEditableElement());
                 m_wasShiftKeyDownOnMouseDown = downcast<MouseEvent>(event).shiftKey();
-            } else if (event.type() == eventNames().mouseoverEvent) {
+            } else if (event.type() == eventNames.mouseoverEvent) {
                 // These are cleared on mouseover and not mouseout because their values are needed for drag events,
                 // but drag events happen after mouse out events.
                 clearRootEditableElementForSelectionOnMouseDown();

Modified: trunk/Source/WebCore/html/HTMLButtonElement.cpp (292369 => 292370)


--- trunk/Source/WebCore/html/HTMLButtonElement.cpp	2022-04-05 03:32:00 UTC (rev 292369)
+++ trunk/Source/WebCore/html/HTMLButtonElement.cpp	2022-04-05 03:46:42 UTC (rev 292370)
@@ -136,7 +136,8 @@
     if (ImageControlsMac::handleEvent(*this, event))
         return;
 #endif
-    if (event.type() == eventNames().DOMActivateEvent && !isDisabledFormControl()) {
+    auto& eventNames = WebCore::eventNames();
+    if (event.type() == eventNames.DOMActivateEvent && !isDisabledFormControl()) {
         RefPtr<HTMLFormElement> protectedForm(form());
 
         if (protectedForm) {
@@ -161,12 +162,12 @@
 
     if (is<KeyboardEvent>(event)) {
         KeyboardEvent& keyboardEvent = downcast<KeyboardEvent>(event);
-        if (keyboardEvent.type() == eventNames().keydownEvent && keyboardEvent.keyIdentifier() == "U+0020") {
+        if (keyboardEvent.type() == eventNames.keydownEvent && keyboardEvent.keyIdentifier() == "U+0020") {
             setActive(true, true);
             // No setDefaultHandled() - IE dispatches a keypress in this case.
             return;
         }
-        if (keyboardEvent.type() == eventNames().keypressEvent) {
+        if (keyboardEvent.type() == eventNames.keypressEvent) {
             switch (keyboardEvent.charCode()) {
                 case '\r':
                     dispatchSimulatedClick(&keyboardEvent);
@@ -178,7 +179,7 @@
                     return;
             }
         }
-        if (keyboardEvent.type() == eventNames().keyupEvent && keyboardEvent.keyIdentifier() == "U+0020") {
+        if (keyboardEvent.type() == eventNames.keyupEvent && keyboardEvent.keyIdentifier() == "U+0020") {
             if (active())
                 dispatchSimulatedClick(&keyboardEvent);
             keyboardEvent.setDefaultHandled();

Modified: trunk/Source/WebCore/html/HTMLInputElement.cpp (292369 => 292370)


--- trunk/Source/WebCore/html/HTMLInputElement.cpp	2022-04-05 03:32:00 UTC (rev 292369)
+++ trunk/Source/WebCore/html/HTMLInputElement.cpp	2022-04-05 03:46:42 UTC (rev 292370)
@@ -1163,9 +1163,10 @@
 
 void HTMLInputElement::willDispatchEvent(Event& event, InputElementClickState& state)
 {
-    if (event.type() == eventNames().textInputEvent && m_inputType->shouldSubmitImplicitly(event))
+    auto& eventNames = WebCore::eventNames();
+    if (event.type() == eventNames.textInputEvent && m_inputType->shouldSubmitImplicitly(event))
         event.stopPropagation();
-    if (event.type() == eventNames().clickEvent && is<MouseEvent>(event) && downcast<MouseEvent>(event).button() == LeftButton) {
+    if (event.type() == eventNames.clickEvent && is<MouseEvent>(event) && downcast<MouseEvent>(event).button() == LeftButton) {
         m_inputType->willDispatchClick(state);
         state.stateful = true;
     }

Modified: trunk/Source/WebCore/html/HTMLSelectElement.cpp (292369 => 292370)


--- trunk/Source/WebCore/html/HTMLSelectElement.cpp	2022-04-05 03:32:00 UTC (rev 292369)
+++ trunk/Source/WebCore/html/HTMLSelectElement.cpp	2022-04-05 03:46:42 UTC (rev 292370)
@@ -1144,7 +1144,8 @@
     ASSERT(renderer());
     ASSERT(renderer()->isMenuList());
 
-    if (event.type() == eventNames().keydownEvent) {
+    auto& eventNames = WebCore::eventNames();
+    if (event.type() == eventNames.keydownEvent) {
         if (!is<KeyboardEvent>(event))
             return;
 
@@ -1196,7 +1197,7 @@
 
     // Use key press event here since sending simulated mouse events
     // on key down blocks the proper sending of the key press event.
-    if (event.type() == eventNames().keypressEvent) {
+    if (event.type() == eventNames.keypressEvent) {
         if (!is<KeyboardEvent>(event))
             return;
 
@@ -1258,7 +1259,7 @@
             keyboardEvent.setDefaultHandled();
     }
 
-    if (event.type() == eventNames().mousedownEvent && is<MouseEvent>(event) && downcast<MouseEvent>(event).button() == LeftButton) {
+    if (event.type() == eventNames.mousedownEvent && is<MouseEvent>(event) && downcast<MouseEvent>(event).button() == LeftButton) {
         focus();
 #if !PLATFORM(IOS_FAMILY)
         document().updateStyleIfNeeded();
@@ -1280,7 +1281,7 @@
     }
 
 #if !PLATFORM(IOS_FAMILY)
-    if (event.type() == eventNames().blurEvent && !focused()) {
+    if (event.type() == eventNames.blurEvent && !focused()) {
         auto& menuList = downcast<RenderMenuList>(*renderer());
         if (menuList.popupIsVisible())
             menuList.hidePopup();
@@ -1345,7 +1346,8 @@
 {
     auto& listItems = this->listItems();
 
-    if (event.type() == eventNames().mousedownEvent && is<MouseEvent>(event) && downcast<MouseEvent>(event).button() == LeftButton) {
+    auto& eventNames = WebCore::eventNames();
+    if (event.type() == eventNames.mousedownEvent && is<MouseEvent>(event) && downcast<MouseEvent>(event).button() == LeftButton) {
         focus();
         document().updateStyleIfNeeded();
 
@@ -1372,7 +1374,7 @@
 
             mouseEvent.setDefaultHandled();
         }
-    } else if (event.type() == eventNames().mousemoveEvent && is<MouseEvent>(event) && !downcast<RenderListBox>(*renderer()).canBeScrolledAndHasScrollableArea()) {
+    } else if (event.type() == eventNames.mousemoveEvent && is<MouseEvent>(event) && !downcast<RenderListBox>(*renderer()).canBeScrolledAndHasScrollableArea()) {
         MouseEvent& mouseEvent = downcast<MouseEvent>(event);
         if (mouseEvent.button() != LeftButton || !mouseEvent.buttonDown())
             return;
@@ -1397,7 +1399,7 @@
             }
             mouseEvent.setDefaultHandled();
         }
-    } else if (event.type() == eventNames().mouseupEvent && is<MouseEvent>(event) && downcast<MouseEvent>(event).button() == LeftButton && document().frame()->eventHandler().autoscrollRenderer() != renderer()) {
+    } else if (event.type() == eventNames.mouseupEvent && is<MouseEvent>(event) && downcast<MouseEvent>(event).button() == LeftButton && document().frame()->eventHandler().autoscrollRenderer() != renderer()) {
         // This click or drag event was not over any of the options.
         if (m_lastOnChangeSelection.isEmpty())
             return;
@@ -1405,7 +1407,7 @@
         // click. For drag selection, onChange will fire when the autoscroll
         // timer stops.
         listBoxOnChange();
-    } else if (event.type() == eventNames().keydownEvent) {
+    } else if (event.type() == eventNames.keydownEvent) {
         if (!is<KeyboardEvent>(event))
             return;
 
@@ -1496,7 +1498,7 @@
 
             keyboardEvent.setDefaultHandled();
         }
-    } else if (event.type() == eventNames().keypressEvent) {
+    } else if (event.type() == eventNames.keypressEvent) {
         if (!is<KeyboardEvent>(event))
             return;
         KeyboardEvent& keyboardEvent = downcast<KeyboardEvent>(event);

Modified: trunk/Source/WebCore/html/HTMLSummaryElement.cpp (292369 => 292370)


--- trunk/Source/WebCore/html/HTMLSummaryElement.cpp	2022-04-05 03:32:00 UTC (rev 292369)
+++ trunk/Source/WebCore/html/HTMLSummaryElement.cpp	2022-04-05 03:46:42 UTC (rev 292370)
@@ -117,7 +117,8 @@
 void HTMLSummaryElement::defaultEventHandler(Event& event)
 {
     if (isActiveSummary() && renderer()) {
-        if (event.type() == eventNames().DOMActivateEvent && !isClickableControl(event.target())) {
+        auto& eventNames = WebCore::eventNames();
+        if (event.type() == eventNames.DOMActivateEvent && !isClickableControl(event.target())) {
             if (RefPtr<HTMLDetailsElement> details = detailsElement())
                 details->toggleOpen();
             event.setDefaultHandled();
@@ -126,12 +127,12 @@
 
         if (is<KeyboardEvent>(event)) {
             KeyboardEvent& keyboardEvent = downcast<KeyboardEvent>(event);
-            if (keyboardEvent.type() == eventNames().keydownEvent && keyboardEvent.keyIdentifier() == "U+0020") {
+            if (keyboardEvent.type() == eventNames.keydownEvent && keyboardEvent.keyIdentifier() == "U+0020") {
                 setActive(true, true);
                 // No setDefaultHandled() - IE dispatches a keypress in this case.
                 return;
             }
-            if (keyboardEvent.type() == eventNames().keypressEvent) {
+            if (keyboardEvent.type() == eventNames.keypressEvent) {
                 switch (keyboardEvent.charCode()) {
                 case '\r':
                     dispatchSimulatedClick(&event);
@@ -143,7 +144,7 @@
                     return;
                 }
             }
-            if (keyboardEvent.type() == eventNames().keyupEvent && keyboardEvent.keyIdentifier() == "U+0020") {
+            if (keyboardEvent.type() == eventNames.keyupEvent && keyboardEvent.keyIdentifier() == "U+0020") {
                 if (active())
                     dispatchSimulatedClick(&event);
                 keyboardEvent.setDefaultHandled();

Modified: trunk/Source/WebCore/html/HTMLTextFormControlElement.cpp (292369 => 292370)


--- trunk/Source/WebCore/html/HTMLTextFormControlElement.cpp	2022-04-05 03:32:00 UTC (rev 292369)
+++ trunk/Source/WebCore/html/HTMLTextFormControlElement.cpp	2022-04-05 03:46:42 UTC (rev 292370)
@@ -158,7 +158,8 @@
 
 void HTMLTextFormControlElement::forwardEvent(Event& event)
 {
-    if (event.type() == eventNames().blurEvent || event.type() == eventNames().focusEvent)
+    auto& eventNames = WebCore::eventNames();
+    if (event.type() == eventNames.blurEvent || event.type() == eventNames.focusEvent)
         return;
 
     if (auto innerText = innerTextElement())

Modified: trunk/Source/WebCore/html/TextFieldInputType.cpp (292369 => 292370)


--- trunk/Source/WebCore/html/TextFieldInputType.cpp	2022-04-05 03:32:00 UTC (rev 292369)
+++ trunk/Source/WebCore/html/TextFieldInputType.cpp	2022-04-05 03:46:42 UTC (rev 292370)
@@ -235,8 +235,9 @@
             return;
     }
 
-    bool isFocusEvent = event.type() == eventNames().focusEvent;
-    bool isBlurEvent = event.type() == eventNames().blurEvent;
+    auto& eventNames = WebCore::eventNames();
+    bool isFocusEvent = event.type() == eventNames.focusEvent;
+    bool isBlurEvent = event.type() == eventNames.blurEvent;
     if (isFocusEvent || isBlurEvent)
         capsLockStateMayHaveChanged();
     if (event.isMouseEvent() || isFocusEvent || isBlurEvent)

Modified: trunk/Source/WebCore/html/shadow/SliderThumbElement.cpp (292369 => 292370)


--- trunk/Source/WebCore/html/shadow/SliderThumbElement.cpp	2022-04-05 03:32:00 UTC (rev 292369)
+++ trunk/Source/WebCore/html/shadow/SliderThumbElement.cpp	2022-04-05 03:46:42 UTC (rev 292370)
@@ -520,15 +520,16 @@
     }
 
     const AtomString& eventType = touchEvent.type();
-    if (eventType == eventNames().touchstartEvent) {
+    auto& eventNames = WebCore::eventNames();
+    if (eventType == eventNames.touchstartEvent) {
         handleTouchStart(touchEvent);
         return;
     }
-    if (eventType == eventNames().touchendEvent || eventType == eventNames().touchcancelEvent) {
+    if (eventType == eventNames.touchendEvent || eventType == eventNames.touchcancelEvent) {
         handleTouchEndAndCancel(touchEvent);
         return;
     }
-    if (eventType == eventNames().touchmoveEvent) {
+    if (eventType == eventNames.touchmoveEvent) {
         handleTouchMove(touchEvent);
         return;
     }

Modified: trunk/Source/WebCore/page/DOMWindow.cpp (292369 => 292370)


--- trunk/Source/WebCore/page/DOMWindow.cpp	2022-04-05 03:32:00 UTC (rev 292369)
+++ trunk/Source/WebCore/page/DOMWindow.cpp	2022-04-05 03:46:42 UTC (rev 292370)
@@ -297,12 +297,13 @@
         return Ref<DOMWindow>(*(keyValue.key));
     });
 
+    auto& eventNames = WebCore::eventNames();
     for (auto& window : windows) {
         if (!set.contains(window.ptr()))
             continue;
 
-        window->dispatchEvent(PageTransitionEvent::create(eventNames().pagehideEvent, false), window->document());
-        window->dispatchEvent(Event::create(eventNames().unloadEvent, Event::CanBubble::No, Event::IsCancelable::No), window->document());
+        window->dispatchEvent(PageTransitionEvent::create(eventNames.pagehideEvent, false), window->document());
+        window->dispatchEvent(Event::create(eventNames.unloadEvent, Event::CanBubble::No, Event::IsCancelable::No), window->document());
 
         window->enableSuddenTermination();
     }
@@ -1972,40 +1973,41 @@
         return false;
 
     RefPtr document = this->document();
+    auto& eventNames = WebCore::eventNames();
     if (document) {
         document->addListenerTypeIfNeeded(eventType);
-        if (eventNames().isWheelEventType(eventType))
+        if (eventNames.isWheelEventType(eventType))
             document->didAddWheelEventHandler(*document);
-        else if (eventNames().isTouchRelatedEventType(eventType, *document))
+        else if (eventNames.isTouchRelatedEventType(eventType, *document))
             document->didAddTouchEventHandler(*document);
-        else if (eventType == eventNames().storageEvent)
+        else if (eventType == eventNames.storageEvent)
             didAddStorageEventListener(*this);
     }
 
-    if (eventType == eventNames().unloadEvent)
+    if (eventType == eventNames.unloadEvent)
         addUnloadEventListener(this);
-    else if (eventType == eventNames().beforeunloadEvent && allowsBeforeUnloadListeners(this))
+    else if (eventType == eventNames.beforeunloadEvent && allowsBeforeUnloadListeners(this))
         addBeforeUnloadEventListener(this);
 #if PLATFORM(IOS_FAMILY)
-    else if (eventType == eventNames().scrollEvent)
+    else if (eventType == eventNames.scrollEvent)
         incrementScrollEventListenersCount();
 #endif
 #if ENABLE(IOS_TOUCH_EVENTS)
-    else if (document && eventNames().isTouchRelatedEventType(eventType, *document))
+    else if (document && eventNames(.isTouchRelatedEventType(eventType, *document))
         ++m_touchAndGestureEventListenerCount;
 #endif
 #if ENABLE(IOS_GESTURE_EVENTS)
-    else if (eventNames().isGestureEventType(eventType))
+    else if (eventNames.isGestureEventType(eventType))
         ++m_touchAndGestureEventListenerCount;
 #endif
 #if ENABLE(GAMEPAD)
-    else if (eventNames().isGamepadEventType(eventType))
+    else if (eventNames.isGamepadEventType(eventType))
         incrementGamepadEventListenerCount();
 #endif
 #if ENABLE(DEVICE_ORIENTATION)
-    else if (eventType == eventNames().deviceorientationEvent)
+    else if (eventType == eventNames.deviceorientationEvent)
         startListeningForDeviceOrientationIfNecessary();
-    else if (eventType == eventNames().devicemotionEvent)
+    else if (eventType == eventNames.devicemotionEvent)
         startListeningForDeviceMotionIfNecessary();
 #endif
 
@@ -2215,41 +2217,42 @@
         return false;
 
     RefPtr document = this->document();
+    auto& eventNames = WebCore::eventNames();
     if (document) {
-        if (eventNames().isWheelEventType(eventType))
+        if (eventNames.isWheelEventType(eventType))
             document->didRemoveWheelEventHandler(*document);
-        else if (eventNames().isTouchRelatedEventType(eventType, *document))
+        else if (eventNames.isTouchRelatedEventType(eventType, *document))
             document->didRemoveTouchEventHandler(*document);
     }
 
-    if (eventType == eventNames().unloadEvent)
+    if (eventType == eventNames.unloadEvent)
         removeUnloadEventListener(this);
-    else if (eventType == eventNames().beforeunloadEvent && allowsBeforeUnloadListeners(this))
+    else if (eventType == eventNames.beforeunloadEvent && allowsBeforeUnloadListeners(this))
         removeBeforeUnloadEventListener(this);
 #if PLATFORM(IOS_FAMILY)
-    else if (eventType == eventNames().scrollEvent)
+    else if (eventType == eventNames.scrollEvent)
         decrementScrollEventListenersCount();
 #endif
 #if ENABLE(IOS_TOUCH_EVENTS)
-    else if (document && eventNames().isTouchRelatedEventType(eventType, *document)) {
+    else if (document && eventNames.isTouchRelatedEventType(eventType, *document)) {
         ASSERT(m_touchAndGestureEventListenerCount > 0);
         --m_touchAndGestureEventListenerCount;
     }
 #endif
 #if ENABLE(IOS_GESTURE_EVENTS)
-    else if (eventNames().isGestureEventType(eventType)) {
+    else if (eventNames.isGestureEventType(eventType)) {
         ASSERT(m_touchAndGestureEventListenerCount > 0);
         --m_touchAndGestureEventListenerCount;
     }
 #endif
 #if ENABLE(GAMEPAD)
-    else if (eventNames().isGamepadEventType(eventType))
+    else if (eventNames.isGamepadEventType(eventType))
         decrementGamepadEventListenerCount();
 #endif
 #if ENABLE(DEVICE_ORIENTATION)
-    else if (eventType == eventNames().deviceorientationEvent)
+    else if (eventType == eventNames.deviceorientationEvent)
         stopListeningForDeviceOrientationIfNecessary();
-    else if (eventType == eventNames().devicemotionEvent)
+    else if (eventType == eventNames.devicemotionEvent)
         stopListeningForDeviceMotionIfNecessary();
 #endif
 

Modified: trunk/Source/WebCore/page/EventHandler.cpp (292369 => 292370)


--- trunk/Source/WebCore/page/EventHandler.cpp	2022-04-05 03:32:00 UTC (rev 292369)
+++ trunk/Source/WebCore/page/EventHandler.cpp	2022-04-05 03:46:42 UTC (rev 292370)
@@ -2605,8 +2605,9 @@
             // mouseenter and mouseleave events are only dispatched if there is a capturing eventhandler on an ancestor
             // or a normal eventhandler on the element itself (they don't bubble).
             // This optimization is necessary since these events can cause O(n^2) capturing event-handler checks.
-            bool hasCapturingMouseEnterListener = hierarchyHasCapturingEventListeners(m_elementUnderMouse.get(), eventNames().pointerenterEvent, eventNames().mouseenterEvent);
-            bool hasCapturingMouseLeaveListener = hierarchyHasCapturingEventListeners(m_lastElementUnderMouse.get(), eventNames().pointerleaveEvent, eventNames().mouseleaveEvent);
+            auto& eventNames = WebCore::eventNames();
+            bool hasCapturingMouseEnterListener = hierarchyHasCapturingEventListeners(m_elementUnderMouse.get(), eventNames.pointerenterEvent, eventNames.mouseenterEvent);
+            bool hasCapturingMouseLeaveListener = hierarchyHasCapturingEventListeners(m_lastElementUnderMouse.get(), eventNames.pointerleaveEvent, eventNames.mouseleaveEvent);
 
             Vector<Ref<Element>, 32> leftElementsChain;
             for (Element* element = m_lastElementUnderMouse.get(); element; element = element->parentElementInComposedTree())
@@ -2627,19 +2628,19 @@
             }
 
             if (auto lastElementUnderMouse = m_lastElementUnderMouse)
-                lastElementUnderMouse->dispatchMouseEvent(platformMouseEvent, eventNames().mouseoutEvent, 0, m_elementUnderMouse.get());
+                lastElementUnderMouse->dispatchMouseEvent(platformMouseEvent, eventNames.mouseoutEvent, 0, m_elementUnderMouse.get());
 
             for (auto& chain : leftElementsChain) {
-                if (hasCapturingMouseLeaveListener || chain->hasEventListeners(eventNames().pointerleaveEvent) || chain->hasEventListeners(eventNames().mouseleaveEvent))
-                    chain->dispatchMouseEvent(platformMouseEvent, eventNames().mouseleaveEvent, 0, m_elementUnderMouse.get());
+                if (hasCapturingMouseLeaveListener || chain->hasEventListeners(eventNames.pointerleaveEvent) || chain->hasEventListeners(eventNames.mouseleaveEvent))
+                    chain->dispatchMouseEvent(platformMouseEvent, eventNames.mouseleaveEvent, 0, m_elementUnderMouse.get());
             }
 
             if (auto elementUnderMouse = m_elementUnderMouse)
-                elementUnderMouse->dispatchMouseEvent(platformMouseEvent, eventNames().mouseoverEvent, 0, m_lastElementUnderMouse.get());
+                elementUnderMouse->dispatchMouseEvent(platformMouseEvent, eventNames.mouseoverEvent, 0, m_lastElementUnderMouse.get());
 
             for (auto& chain : makeReversedRange(enteredElementsChain)) {
-                if (hasCapturingMouseEnterListener || chain->hasEventListeners(eventNames().pointerenterEvent) || chain->hasEventListeners(eventNames().mouseenterEvent))
-                    chain->dispatchMouseEvent(platformMouseEvent, eventNames().mouseenterEvent, 0, m_lastElementUnderMouse.get());
+                if (hasCapturingMouseEnterListener || chain->hasEventListeners(eventNames.pointerenterEvent) || chain->hasEventListeners(eventNames.mouseenterEvent))
+                    chain->dispatchMouseEvent(platformMouseEvent, eventNames.mouseenterEvent, 0, m_lastElementUnderMouse.get());
             }
         }
 
@@ -4240,7 +4241,8 @@
     
 bool EventHandler::isKeyboardOptionTab(KeyboardEvent& event)
 {
-    return (event.type() == eventNames().keydownEvent || event.type() == eventNames().keypressEvent)
+    auto& eventNames = WebCore::eventNames();
+    return (event.type() == eventNames.keydownEvent || event.type() == eventNames.keypressEvent)
         && event.altKey()
         && event.keyIdentifier() == "U+0009";
 }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to