Changeset 156390 in webkit


Ignore:
Timestamp:
Sep 25, 2013 6:02:20 AM (11 years ago)
Author:
akling@apple.com
Message:

Remove EventPathWalker.
<https://webkit.org/b/121890>

Reviewed by Antti Koivisto.

Purge some more leftover Shadow DOM code.

  • dom/EventPathWalker.cpp:
  • dom/EventPathWalker.h:

Removed.

  • dom/EventRetargeter.cpp:

(WebCore::nodeOrHostIfPseudoElement):
(WebCore::EventRetargeter::calculateEventPath):
(WebCore::EventRetargeter::buildRelatedNodeMap):

If starting at a pseudo element, e.g for events originating from
a transition on :before/:after, retarget to the pseudo element's
host as appropriate. This was the only real "feature" we were
using in EventPathWalker.

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleMouseDraggedEvent):
(WebCore::EventHandler::updateDragAndDrop):
(WebCore::EventHandler::updateMouseEventTargetNode):
(WebCore::EventHandler::handleWheelEvent):
(WebCore::EventHandler::handleTouchEvent):

Replace use of EventPathWalker with parentOrShadowHostElement()
parent chain climbing.

Location:
trunk/Source/WebCore
Files:
2 deleted
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/CMakeLists.txt

    r156381 r156390  
    11691169    dom/EventListenerMap.cpp
    11701170    dom/EventNames.cpp
    1171     dom/EventPathWalker.cpp
    11721171    dom/EventRetargeter.cpp
    11731172    dom/EventTarget.cpp
  • trunk/Source/WebCore/ChangeLog

    r156387 r156390  
     12013-09-25  Andreas Kling  <akling@apple.com>
     2
     3        Remove EventPathWalker.
     4        <https://webkit.org/b/121890>
     5
     6        Reviewed by Antti Koivisto.
     7
     8        Purge some more leftover Shadow DOM code.
     9
     10        * dom/EventPathWalker.cpp:
     11        * dom/EventPathWalker.h:
     12
     13            Removed.
     14
     15        * dom/EventRetargeter.cpp:
     16        (WebCore::nodeOrHostIfPseudoElement):
     17        (WebCore::EventRetargeter::calculateEventPath):
     18        (WebCore::EventRetargeter::buildRelatedNodeMap):
     19
     20            If starting at a pseudo element, e.g for events originating from
     21            a transition on :before/:after, retarget to the pseudo element's
     22            host as appropriate. This was the only real "feature" we were
     23            using in EventPathWalker.
     24
     25        * page/EventHandler.cpp:
     26        (WebCore::EventHandler::handleMouseDraggedEvent):
     27        (WebCore::EventHandler::updateDragAndDrop):
     28        (WebCore::EventHandler::updateMouseEventTargetNode):
     29        (WebCore::EventHandler::handleWheelEvent):
     30        (WebCore::EventHandler::handleTouchEvent):
     31
     32            Replace use of EventPathWalker with parentOrShadowHostElement()
     33            parent chain climbing.
     34
    1352013-09-25  Gurpreet Kaur  <k.gurpreet@samsung.com>
    236
  • trunk/Source/WebCore/GNUmakefile.list.am

    r156381 r156390  
    29282928        Source/WebCore/dom/EventNames.cpp \
    29292929        Source/WebCore/dom/EventNames.h \
    2930         Source/WebCore/dom/EventPathWalker.cpp \
    2931         Source/WebCore/dom/EventPathWalker.h \
    29322930        Source/WebCore/dom/EventRetargeter.cpp \
    29332931        Source/WebCore/dom/EventRetargeter.h \
  • trunk/Source/WebCore/Target.pri

    r156381 r156390  
    410410    dom/EventListenerMap.cpp \
    411411    dom/EventNames.cpp \
    412     dom/EventPathWalker.cpp \
    413412    dom/EventRetargeter.cpp \
    414413    dom/EventTarget.cpp \
     
    16151614    dom/EventListenerMap.h \
    16161615    dom/EventNames.h \
    1617     dom/EventPathWalker.h \
    16181616    dom/EventQueue.h \
    16191617    dom/EventSender.h \
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r156381 r156390  
    15151515                4A9CC82016BF9BB400EC645A /* InspectorCSSOMWrappers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4A9CC81E16BF9BB400EC645A /* InspectorCSSOMWrappers.cpp */; };
    15161516                4A9CC82116BF9BB400EC645A /* InspectorCSSOMWrappers.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A9CC81F16BF9BB400EC645A /* InspectorCSSOMWrappers.h */; };
    1517                 4AAAB4C416D379B5001DA41B /* EventPathWalker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4AAAB4C216D379B5001DA41B /* EventPathWalker.cpp */; };
    1518                 4AAAB4C516D379B5001DA41B /* EventPathWalker.h in Headers */ = {isa = PBXBuildFile; fileRef = 4AAAB4C316D379B5001DA41B /* EventPathWalker.h */; };
    15191517                4ACBC0BE12713CBD0094F9B2 /* ClassList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4ACBC0BC12713CBD0094F9B2 /* ClassList.cpp */; };
    15201518                4ACBC0BF12713CBD0094F9B2 /* ClassList.h in Headers */ = {isa = PBXBuildFile; fileRef = 4ACBC0BD12713CBD0094F9B2 /* ClassList.h */; };
     
    80998097                4A9CC81E16BF9BB400EC645A /* InspectorCSSOMWrappers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorCSSOMWrappers.cpp; sourceTree = "<group>"; };
    81008098                4A9CC81F16BF9BB400EC645A /* InspectorCSSOMWrappers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorCSSOMWrappers.h; sourceTree = "<group>"; };
    8101                 4AAAB4C216D379B5001DA41B /* EventPathWalker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EventPathWalker.cpp; sourceTree = "<group>"; };
    8102                 4AAAB4C316D379B5001DA41B /* EventPathWalker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EventPathWalker.h; sourceTree = "<group>"; };
    81038099                4ACBC0BC12713CBD0094F9B2 /* ClassList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ClassList.cpp; sourceTree = "<group>"; };
    81048100                4ACBC0BD12713CBD0094F9B2 /* ClassList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClassList.h; sourceTree = "<group>"; };
     
    2096020956                                939885C208B7E3D100E707C4 /* EventNames.h */,
    2096120957                                BC9A6142146859D9006057FD /* EventNames.in */,
    20962                                 4AAAB4C216D379B5001DA41B /* EventPathWalker.cpp */,
    20963                                 4AAAB4C316D379B5001DA41B /* EventPathWalker.h */,
    2096420958                                8F6756191288B17B0047ACA3 /* EventQueue.h */,
    2096520959                                4A5CB1C316C3A5FD00AB2886 /* EventRetargeter.cpp */,
     
    2243322427                                1CA19E160DC255CA0065A994 /* EventLoop.h in Headers */,
    2243422428                                939885C408B7E3D100E707C4 /* EventNames.h in Headers */,
    22435                                 4AAAB4C516D379B5001DA41B /* EventPathWalker.h in Headers */,
    2243622429                                8F67561B1288B17B0047ACA3 /* EventQueue.h in Headers */,
    2243722430                                4A5CB1C616C3A5FD00AB2886 /* EventRetargeter.h in Headers */,
     
    2572925722                                1CA19E050DC255950065A994 /* EventLoopMac.mm in Sources */,
    2573025723                                939885C308B7E3D100E707C4 /* EventNames.cpp in Sources */,
    25731                                 4AAAB4C416D379B5001DA41B /* EventPathWalker.cpp in Sources */,
    2573225724                                07969DB917D14151007FF842 /* JSRTCPeerConnection.cpp in Sources */,
    2573325725                                4A5CB1C516C3A5FD00AB2886 /* EventRetargeter.cpp in Sources */,
  • trunk/Source/WebCore/dom/DOMAllInOne.cpp

    r155938 r156390  
    7878#include "EventListenerMap.cpp"
    7979#include "EventNames.cpp"
    80 #include "EventPathWalker.cpp"
    8180#include "EventRetargeter.cpp"
    8281#include "EventTarget.cpp"
  • trunk/Source/WebCore/dom/EventDispatcher.cpp

    r154877 r156390  
    3030#include "EventContext.h"
    3131#include "EventDispatchMediator.h"
    32 #include "EventPathWalker.h"
    3332#include "EventRetargeter.h"
    3433#include "FrameView.h"
  • trunk/Source/WebCore/dom/EventRetargeter.cpp

    r154877 r156390  
    2323#include "ContainerNode.h"
    2424#include "EventContext.h"
    25 #include "EventPathWalker.h"
    2625#include "FocusEvent.h"
    2726#include "MouseEvent.h"
     
    7675}
    7776
    78 void EventRetargeter::calculateEventPath(Node* node, Event* event, EventPath& eventPath)
    79 {
    80     bool inDocument = node->inDocument();
    81     bool isSVGElement = node->isSVGElement();
     77static Node* nodeOrHostIfPseudoElement(Node* node)
     78{
     79    return node->isPseudoElement() ? toPseudoElement(node)->hostElement() : node;
     80}
     81
     82void EventRetargeter::calculateEventPath(Node* targetNode, Event* event, EventPath& eventPath)
     83{
     84    bool inDocument = targetNode->inDocument();
     85    bool isSVGElement = targetNode->isSVGElement();
    8286    bool isMouseOrFocusEvent = event->isMouseEvent() || event->isFocusEvent();
    8387#if ENABLE(TOUCH_EVENTS)
     
    8589#endif
    8690    Vector<EventTarget*, 32> targetStack;
    87     for (EventPathWalker walker(node); walker.node(); walker.moveToParent()) {
    88         Node* node = walker.node();
     91
     92    for (Node* node = nodeOrHostIfPseudoElement(targetNode); node; node = node->parentOrShadowHostNode()) {
    8993        if (targetStack.isEmpty())
    9094            targetStack.append(eventTargetRespectingTargetRules(node));
    91         else if (walker.isVisitingInsertionPointInReprojection())
    92             targetStack.append(targetStack.last());
    9395        if (isMouseOrFocusEvent)
    9496            eventPath.append(adoptPtr(new MouseOrFocusEventContext(node, eventTargetRespectingTargetRules(node), targetStack.last())));
     
    220222    Vector<Node*, 32> relatedNodeStack;
    221223    TreeScope* lastTreeScope = 0;
    222     for (EventPathWalker walker(relatedNode); walker.node(); walker.moveToParent()) {
    223         Node* node = walker.node();
     224    for (Node* node = nodeOrHostIfPseudoElement(const_cast<Node*>(relatedNode)); node; node = node->parentOrShadowHostNode()) {
    224225        if (relatedNodeStack.isEmpty())
    225226            relatedNodeStack.append(node);
    226         else if (walker.isVisitingInsertionPointInReprojection())
    227             relatedNodeStack.append(relatedNodeStack.last());
    228227        TreeScope* scope = node->treeScope();
    229228        // Skips adding a node to the map if treeScope does not change. Just for the performance optimization.
  • trunk/Source/WebCore/html/HTMLLIElement.cpp

    r155795 r156390  
    2727#include "CSSPropertyNames.h"
    2828#include "CSSValueKeywords.h"
    29 #include "EventPathWalker.h"
    3029#include "HTMLNames.h"
    3130#include "RenderListItem.h"
  • trunk/Source/WebCore/page/EventHandler.cpp

    r156372 r156390  
    4343#include "EditorClient.h"
    4444#include "EventNames.h"
    45 #include "EventPathWalker.h"
    4645#include "ExceptionCodePlaceholder.h"
    4746#include "FileList.h"
     
    734733    RenderObject* renderer = targetNode->renderer();
    735734    if (!renderer) {
    736         Node* parent = EventPathWalker::parent(targetNode);
     735        Element* parent = targetNode->parentOrShadowHostElement();
    737736        if (!parent)
    738737            return false;
     
    20962095    RefPtr<Node> newTarget = mev.targetNode();
    20972096    if (newTarget && newTarget->isTextNode())
    2098         newTarget = EventPathWalker::parent(newTarget.get());
     2097        newTarget = newTarget->parentOrShadowHostElement();
    20992098
    21002099    m_autoscrollController->updateDragAndDrop(newTarget.get(), event.position(), event.timestamp());
     
    22332232        // If the target node is a text node, dispatch on the parent node - rdar://4196646
    22342233        if (result && result->isTextNode())
    2235             result = EventPathWalker::parent(result);
     2234            result = result->parentOrShadowHostElement();
    22362235    }
    22372236    m_nodeUnderMouse = result;
     
    24802479    bool useLatchedWheelEventNode = e.useLatchedEventNode();
    24812480
    2482     // FIXME: Is the following code different from just calling innerElement?
    2483     Node* node = result.innerNode();
    2484     // Wheel events should not dispatch to text nodes.
    2485     if (node && node->isTextNode())
    2486         node = EventPathWalker::parent(node);
     2481    // FIXME: This code should use Element* instead of Node*.
     2482    Node* node = result.innerElement();
    24872483
    24882484    bool isOverWidget;
     
    40254021                continue;
    40264022
    4027             // FIXME: Is the following code different from just calling innerElement?
    4028             Node* node = result.innerNode();
     4023            // FIXME: This code should use Element* instead of Node*.
     4024            Node* node = result.innerElement();
    40294025            ASSERT(node);
    4030             // Touch events should not go to text nodes
    4031             if (node->isTextNode())
    4032                 node = EventPathWalker::parent(node);
    40334026
    40344027            if (InspectorInstrumentation::handleTouchEvent(m_frame.page(), node))
Note: See TracChangeset for help on using the changeset viewer.