Changeset 181514 in webkit


Ignore:
Timestamp:
Mar 15, 2015 3:47:08 PM (9 years ago)
Author:
Simon Fraser
Message:

Clean up related to wheelEvent names
https://bugs.webkit.org/show_bug.cgi?id=142713

Reviewed by Anders Carlsson.

Add EventNames::isWheelEventType() and use it in places that test for the
two wheel event names.

Source/WebCore:

  • dom/Document.cpp:

(WebCore::Document::didAddWheelEventHandler):
(WebCore::Document::didRemoveWheelEventHandler):

  • dom/Document.h: No need for exports (I grepped). Pass the Node*, which

will be used in a later patch.

  • dom/EventNames.h:

(WebCore::EventNames::isWheelEventType):

  • dom/Node.cpp:

(WebCore::Node::didMoveToNewDocument):
(WebCore::tryAddEventListener):
(WebCore::tryRemoveEventListener):
(WebCore::Node::defaultEventHandler):

  • html/shadow/MediaControlsApple.cpp:

(WebCore::MediaControlsAppleEventListener::handleEvent):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::addEventListener):
(WebCore::DOMWindow::removeEventListener):

  • page/ios/FrameIOS.mm:

(WebCore::ancestorRespondingToScrollWheelEvents): Remove dead code.

Source/WebKit2:

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::handleEvent):

Location:
trunk/Source
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r181513 r181514  
     12015-03-15  Simon Fraser  <simon.fraser@apple.com>
     2
     3        Clean up related to wheelEvent names
     4        https://bugs.webkit.org/show_bug.cgi?id=142713
     5
     6        Reviewed by Anders Carlsson.
     7
     8        Add EventNames::isWheelEventType() and use it in places that test for the
     9        two wheel event names.
     10
     11        * dom/Document.cpp:
     12        (WebCore::Document::didAddWheelEventHandler):
     13        (WebCore::Document::didRemoveWheelEventHandler):
     14        * dom/Document.h: No need for exports (I grepped). Pass the Node*, which
     15        will be used in a later patch.
     16        * dom/EventNames.h:
     17        (WebCore::EventNames::isWheelEventType):
     18        * dom/Node.cpp:
     19        (WebCore::Node::didMoveToNewDocument):
     20        (WebCore::tryAddEventListener):
     21        (WebCore::tryRemoveEventListener):
     22        (WebCore::Node::defaultEventHandler):
     23        * html/shadow/MediaControlsApple.cpp:
     24        (WebCore::MediaControlsAppleEventListener::handleEvent):
     25        * page/DOMWindow.cpp:
     26        (WebCore::DOMWindow::addEventListener):
     27        (WebCore::DOMWindow::removeEventListener):
     28        * page/ios/FrameIOS.mm:
     29        (WebCore::ancestorRespondingToScrollWheelEvents): Remove dead code.
     30
    1312015-03-15  Simon Fraser  <simon.fraser@apple.com>
    232
  • trunk/Source/WebCore/dom/Document.cpp

    r181442 r181514  
    59965996}
    59975997
    5998 void Document::didAddWheelEventHandler()
     5998void Document::didAddWheelEventHandler(Node&)
    59995999{
    60006000    ++m_wheelEventHandlerCount;
     
    60026002}
    60036003
    6004 void Document::didRemoveWheelEventHandler()
     6004void Document::didRemoveWheelEventHandler(Node&)
    60056005{
    60066006    ASSERT(m_wheelEventHandlerCount > 0);
     
    60096009}
    60106010
    6011 void Document::didAddTouchEventHandler(Node* handler)
     6011void Document::didAddTouchEventHandler(Node& handler)
    60126012{
    60136013#if ENABLE(TOUCH_EVENTS)
    60146014    if (!m_touchEventTargets.get())
    60156015        m_touchEventTargets = std::make_unique<TouchEventTargetSet>();
    6016     m_touchEventTargets->add(handler);
     6016    m_touchEventTargets->add(&handler);
    60176017    if (Document* parent = parentDocument()) {
    60186018        parent->didAddTouchEventHandler(this);
     
    60286028}
    60296029
    6030 void Document::didRemoveTouchEventHandler(Node* handler)
     6030void Document::didRemoveTouchEventHandler(Node& handler)
    60316031{
    60326032#if ENABLE(TOUCH_EVENTS)
     
    60346034        return;
    60356035    ASSERT(m_touchEventTargets->contains(handler));
    6036     m_touchEventTargets->remove(handler);
     6036    m_touchEventTargets->remove(&handler);
    60376037    if (Document* parent = parentDocument()) {
    60386038        parent->didRemoveTouchEventHandler(this);
  • trunk/Source/WebCore/dom/Document.h

    r181423 r181514  
    11231123
    11241124    unsigned wheelEventHandlerCount() const { return m_wheelEventHandlerCount; }
    1125     WEBCORE_EXPORT void didAddWheelEventHandler();
    1126     WEBCORE_EXPORT void didRemoveWheelEventHandler();
     1125    void didAddWheelEventHandler(Node&);
     1126    void didRemoveWheelEventHandler(Node&);
    11271127
    11281128    double lastHandledUserGestureTimestamp() const { return m_lastHandledUserGestureTimestamp; }
     
    11351135#endif
    11361136
    1137     void didAddTouchEventHandler(Node*);
    1138     void didRemoveTouchEventHandler(Node*);
     1137    void didAddTouchEventHandler(Node&);
     1138    void didRemoveTouchEventHandler(Node&);
    11391139
    11401140#if ENABLE(TOUCH_EVENTS)
  • trunk/Source/WebCore/dom/EventNames.h

    r181212 r181514  
    265265    // FIXME: Inelegant to call these both event names and event types.
    266266    // We should choose one term and stick to it.
     267    bool isWheelEventType(const AtomicString& eventType) const;
    267268    bool isGestureEventType(const AtomicString& eventType) const;
    268269    bool isTouchEventType(const AtomicString& eventType) const;
     
    300301}
    301302
     303inline bool EventNames::isWheelEventType(const AtomicString& eventType) const
     304{
     305    return eventType == wheelEvent
     306        || eventType == mousewheelEvent;
     307}
     308
    302309inline std::array<std::reference_wrapper<const AtomicString>, 4> EventNames::touchEventNames() const
    303310{
  • trunk/Source/WebCore/dom/Node.cpp

    r181212 r181514  
    17131713    }
    17141714
    1715     unsigned numWheelEventHandlers = getEventListeners(eventNames().mousewheelEvent).size()
    1716         + getEventListeners(eventNames().wheelEvent).size();
     1715    unsigned numWheelEventHandlers = getEventListeners(eventNames().mousewheelEvent).size() + getEventListeners(eventNames().wheelEvent).size();
    17171716    for (unsigned i = 0; i < numWheelEventHandlers; ++i) {
    1718         oldDocument->didRemoveWheelEventHandler();
    1719         document().didAddWheelEventHandler();
     1717        oldDocument->didRemoveWheelEventHandler(*this);
     1718        document().didAddWheelEventHandler(*this);
    17201719    }
    17211720
     
    17231722    for (auto& name : eventNames().touchEventNames())
    17241723        numTouchEventHandlers += getEventListeners(name).size();
     1724
    17251725    for (unsigned i = 0; i < numTouchEventHandlers; ++i) {
    1726         oldDocument->didRemoveTouchEventHandler(this);
    1727         document().didAddTouchEventHandler(this);
     1726        oldDocument->didRemoveTouchEventHandler(*this);
     1727        document().didAddTouchEventHandler(*this);
    17281728    }
    17291729
     
    17471747
    17481748    targetNode->document().addListenerTypeIfNeeded(eventType);
    1749     if (eventType == eventNames().wheelEvent || eventType == eventNames().mousewheelEvent)
    1750         targetNode->document().didAddWheelEventHandler();
     1749    if (eventNames().isWheelEventType(eventType))
     1750        targetNode->document().didAddWheelEventHandler(*targetNode);
    17511751    else if (eventNames().isTouchEventType(eventType))
    1752         targetNode->document().didAddTouchEventHandler(targetNode);
     1752        targetNode->document().didAddTouchEventHandler(*targetNode);
    17531753
    17541754#if PLATFORM(IOS)
     
    17891789    // FIXME: Notify Document that the listener has vanished. We need to keep track of a number of
    17901790    // listeners for each type, not just a bool - see https://bugs.webkit.org/show_bug.cgi?id=33861
    1791     if (eventType == eventNames().wheelEvent || eventType == eventNames().mousewheelEvent)
    1792         targetNode->document().didRemoveWheelEventHandler();
     1791    if (eventNames().isWheelEventType(eventType))
     1792        targetNode->document().didRemoveWheelEventHandler(*targetNode);
    17931793    else if (eventNames().isTouchEventType(eventType))
    1794         targetNode->document().didRemoveTouchEventHandler(targetNode);
     1794        targetNode->document().didRemoveTouchEventHandler(*targetNode);
    17951795
    17961796#if PLATFORM(IOS)
     
    20872087        }
    20882088#endif
    2089     } else if ((eventType == eventNames().wheelEvent || eventType == eventNames().mousewheelEvent) && is<WheelEvent>(*event)) {
    2090 
     2089    } else if (eventNames().isWheelEventType(eventType) && is<WheelEvent>(*event)) {
    20912090        // If we don't have a renderer, send the wheel event to the first node we find with a renderer.
    20922091        // This is needed for <option> and <optgroup> elements so that <select>s get a wheel scroll.
  • trunk/Source/WebCore/history/CachedFrame.cpp

    r179409 r181514  
    117117        if (DOMWindow* domWindow = m_document->domWindow()) {
    118118            // FIXME: Add SCROLL_LISTENER to the list of event types on Document, and use m_document->hasListenerType(). See <rdar://problem/9615482>.
     119            // FIXME: Can use Document::hasListenerType() now.
    119120            if (domWindow->scrollEventListenerCount() && frame.page())
    120121                frame.page()->chrome().client().setNeedsScrollNotifications(&frame, true);
  • trunk/Source/WebCore/html/shadow/MediaControlsApple.cpp

    r180441 r181514  
    589589    if (event->type() == eventNames().clickEvent)
    590590        m_mediaControls->handleClickEvent(event);
    591     else if ((event->type() == eventNames().wheelEvent || event->type() == eventNames().mousewheelEvent) && is<WheelEvent>(*event)) {
     591    else if (eventNames().isWheelEventType(event->type()) && is<WheelEvent>(*event)) {
    592592        WheelEvent& wheelEvent = downcast<WheelEvent>(*event);
    593593        if (m_mediaControls->shouldClosedCaptionsContainerPreventPageScrolling(wheelEvent.wheelDeltaY()))
  • trunk/Source/WebCore/page/DOMWindow.cpp

    r180653 r181514  
    16981698    if (Document* document = this->document()) {
    16991699        document->addListenerTypeIfNeeded(eventType);
    1700         if (eventType == eventNames().wheelEvent || eventType == eventNames().mousewheelEvent)
    1701             document->didAddWheelEventHandler();
     1700        if (eventNames().isWheelEventType(eventType))
     1701            document->didAddWheelEventHandler(*document);
    17021702        else if (eventNames().isTouchEventType(eventType))
    1703             document->didAddTouchEventHandler(document);
     1703            document->didAddTouchEventHandler(*document);
    17041704        else if (eventType == eventNames().storageEvent)
    17051705            didAddStorageEventListener(this);
     
    17891789
    17901790    if (Document* document = this->document()) {
    1791         if (eventType == eventNames().wheelEvent || eventType == eventNames().mousewheelEvent)
    1792             document->didRemoveWheelEventHandler();
     1791        if (eventNames().isWheelEventType(eventType))
     1792            document->didRemoveWheelEventHandler(*document);
    17931793        else if (eventNames().isTouchEventType(eventType))
    1794             document->didRemoveTouchEventHandler(document);
     1794            document->didRemoveTouchEventHandler(*document);
    17951795    }
    17961796
  • trunk/Source/WebCore/page/ios/FrameIOS.mm

    r179157 r181514  
    274274}
    275275
    276 #define ALLOW_SCROLL_LISTENERS 0
    277 
    278276static Node* ancestorRespondingToScrollWheelEvents(const HitTestResult& hitTestResult, Node* terminationNode, IntRect* nodeBounds)
    279277{
     
    283281    Node* scrollingAncestor = nullptr;
    284282    for (Node* node = hitTestResult.innerNode(); node && node != terminationNode && !node->hasTagName(HTMLNames::bodyTag); node = node->parentNode()) {
    285 #if ALLOW_SCROLL_LISTENERS
    286         if (node->willRespondToMouseWheelEvents()) {
    287             scrollingAncestor = node;
    288             continue;
    289         }
    290 #endif
    291 
    292283        RenderObject* renderer = node->renderer();
    293284        if (!renderer)
  • trunk/Source/WebKit2/ChangeLog

    r181511 r181514  
     12015-03-15  Simon Fraser  <simon.fraser@apple.com>
     2
     3        Clean up related to wheelEvent names
     4        https://bugs.webkit.org/show_bug.cgi?id=142713
     5
     6        Reviewed by Anders Carlsson.
     7
     8        Add EventNames::isWheelEventType() and use it in places that test for the
     9        two wheel event names.
     10
     11        * WebProcess/Plugins/PluginView.cpp:
     12        (WebKit::PluginView::handleEvent):
     13
    1142015-03-15  Dan Bernstein  <mitz@apple.com>
    215
  • trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp

    r180115 r181514  
    920920        if (event->type() != eventNames().mousemoveEvent)
    921921            pluginDidReceiveUserInteraction();
    922     } else if ((event->type() == eventNames().wheelEvent || event->type() == eventNames().mousewheelEvent)
     922    } else if (eventNames().isWheelEventType(event->type())
    923923        && currentEvent->type() == WebEvent::Wheel && m_plugin->wantsWheelEvents()) {
    924924        didHandleEvent = m_plugin->handleWheelEvent(static_cast<const WebWheelEvent&>(*currentEvent));
Note: See TracChangeset for help on using the changeset viewer.