Changeset 202531 in webkit


Ignore:
Timestamp:
Jun 27, 2016 6:13:53 PM (8 years ago)
Author:
benjamin@webkit.org
Message:

Adopt the iOS TouchEventHandler API for cases that must have synchronous dispatch
https://bugs.webkit.org/show_bug.cgi?id=159179
rdar://problem/27006387

Reviewed by Simon Fraser.

Source/WebCore:

Tests: fast/events/touch/ios/block-without-overflow-scroll-and-passive-observer-on-block-scrolling-state.html

fast/events/touch/ios/block-without-overflow-scroll-and-passive-observer-on-document-scrolling-state.html
fast/events/touch/ios/block-without-overflow-scroll-scrolling-state.html
fast/events/touch/ios/drag-block-without-overflow-scroll-and-passive-observer-on-block.html
fast/events/touch/ios/drag-block-without-overflow-scroll-and-passive-observer-on-document.html
fast/events/touch/ios/drag-block-without-overflow-scroll.html

  • dom/Document.cpp:

(WebCore::Document::prepareForDestruction):
(WebCore::Document::removeAllEventListeners):

  • dom/Node.cpp:

(WebCore::Node::willBeDeletedFrom):
(WebCore::tryAddEventListener):
(WebCore::tryRemoveEventListener):

  • html/shadow/SliderThumbElement.cpp:

(WebCore::SliderThumbElement::registerForTouchEvents):
(WebCore::SliderThumbElement::unregisterForTouchEvents):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::registerAsTouchEventListenerForScrolling):
(WebCore::RenderLayer::unregisterAsTouchEventListenerForScrolling):

LayoutTests:

Several of those tests expose existing bugs with overflow scrolling.
They are not using PASS/FAIL at the moment, just dump the called listeners.

  • fast/events/touch/ios/block-without-overflow-scroll-and-passive-observer-on-block-scrolling-state-expected.txt: Added.
  • fast/events/touch/ios/block-without-overflow-scroll-and-passive-observer-on-block-scrolling-state.html: Added.
  • fast/events/touch/ios/block-without-overflow-scroll-and-passive-observer-on-document-scrolling-state-expected.txt: Added.
  • fast/events/touch/ios/block-without-overflow-scroll-and-passive-observer-on-document-scrolling-state.html: Added.
  • fast/events/touch/ios/block-without-overflow-scroll-scrolling-state-expected.txt: Added.
  • fast/events/touch/ios/block-without-overflow-scroll-scrolling-state.html: Added.
  • fast/events/touch/ios/drag-block-without-overflow-scroll-and-passive-observer-on-block-expected.txt: Added.
  • fast/events/touch/ios/drag-block-without-overflow-scroll-and-passive-observer-on-block.html: Added.
  • fast/events/touch/ios/drag-block-without-overflow-scroll-and-passive-observer-on-document-expected.txt: Added.
  • fast/events/touch/ios/drag-block-without-overflow-scroll-and-passive-observer-on-document.html: Added.
  • fast/events/touch/ios/drag-block-without-overflow-scroll-expected.txt: Added.
  • fast/events/touch/ios/drag-block-without-overflow-scroll.html: Added.
Location:
trunk
Files:
12 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r202529 r202531  
     12016-06-27  Benjamin Poulain  <benjamin@webkit.org>
     2
     3        Adopt the iOS TouchEventHandler API for cases that must have synchronous dispatch
     4        https://bugs.webkit.org/show_bug.cgi?id=159179
     5        rdar://problem/27006387
     6
     7        Reviewed by Simon Fraser.
     8
     9        Several of those tests expose existing bugs with overflow scrolling.
     10        They are not using PASS/FAIL at the moment, just dump the called listeners.
     11
     12        * fast/events/touch/ios/block-without-overflow-scroll-and-passive-observer-on-block-scrolling-state-expected.txt: Added.
     13        * fast/events/touch/ios/block-without-overflow-scroll-and-passive-observer-on-block-scrolling-state.html: Added.
     14        * fast/events/touch/ios/block-without-overflow-scroll-and-passive-observer-on-document-scrolling-state-expected.txt: Added.
     15        * fast/events/touch/ios/block-without-overflow-scroll-and-passive-observer-on-document-scrolling-state.html: Added.
     16        * fast/events/touch/ios/block-without-overflow-scroll-scrolling-state-expected.txt: Added.
     17        * fast/events/touch/ios/block-without-overflow-scroll-scrolling-state.html: Added.
     18        * fast/events/touch/ios/drag-block-without-overflow-scroll-and-passive-observer-on-block-expected.txt: Added.
     19        * fast/events/touch/ios/drag-block-without-overflow-scroll-and-passive-observer-on-block.html: Added.
     20        * fast/events/touch/ios/drag-block-without-overflow-scroll-and-passive-observer-on-document-expected.txt: Added.
     21        * fast/events/touch/ios/drag-block-without-overflow-scroll-and-passive-observer-on-document.html: Added.
     22        * fast/events/touch/ios/drag-block-without-overflow-scroll-expected.txt: Added.
     23        * fast/events/touch/ios/drag-block-without-overflow-scroll.html: Added.
     24
    1252016-06-27  Joseph Pecoraro  <pecoraro@apple.com>
    226
  • trunk/Source/WebCore/ChangeLog

    r202530 r202531  
     12016-06-27  Benjamin Poulain  <benjamin@webkit.org>
     2
     3        Adopt the iOS TouchEventHandler API for cases that must have synchronous dispatch
     4        https://bugs.webkit.org/show_bug.cgi?id=159179
     5        rdar://problem/27006387
     6
     7        Reviewed by Simon Fraser.
     8
     9        Tests: fast/events/touch/ios/block-without-overflow-scroll-and-passive-observer-on-block-scrolling-state.html
     10               fast/events/touch/ios/block-without-overflow-scroll-and-passive-observer-on-document-scrolling-state.html
     11               fast/events/touch/ios/block-without-overflow-scroll-scrolling-state.html
     12               fast/events/touch/ios/drag-block-without-overflow-scroll-and-passive-observer-on-block.html
     13               fast/events/touch/ios/drag-block-without-overflow-scroll-and-passive-observer-on-document.html
     14               fast/events/touch/ios/drag-block-without-overflow-scroll.html
     15
     16        * dom/Document.cpp:
     17        (WebCore::Document::prepareForDestruction):
     18        (WebCore::Document::removeAllEventListeners):
     19        * dom/Node.cpp:
     20        (WebCore::Node::willBeDeletedFrom):
     21        (WebCore::tryAddEventListener):
     22        (WebCore::tryRemoveEventListener):
     23        * html/shadow/SliderThumbElement.cpp:
     24        (WebCore::SliderThumbElement::registerForTouchEvents):
     25        (WebCore::SliderThumbElement::unregisterForTouchEvents):
     26        * rendering/RenderLayer.cpp:
     27        (WebCore::RenderLayer::registerAsTouchEventListenerForScrolling):
     28        (WebCore::RenderLayer::unregisterAsTouchEventListenerForScrolling):
     29
    1302016-06-27  Alex Christensen  <achristensen@webkit.org>
    231
  • trunk/Source/WebCore/dom/Document.cpp

    r202470 r202531  
    23332333
    23342334#if ENABLE(IOS_TOUCH_EVENTS)
    2335     clearTouchEventListeners();
     2335    clearTouchEventHandlersAndListeners();
    23362336#endif
    23372337
     
    24022402        m_domWindow->removeAllEventListeners();
    24032403#if ENABLE(IOS_TOUCH_EVENTS)
    2404     clearTouchEventListeners();
     2404    clearTouchEventHandlersAndListeners();
    24052405#endif
    24062406    for (Node* node = firstChild(); node; node = NodeTraversal::next(*node))
  • trunk/Source/WebCore/dom/Node.cpp

    r202172 r202531  
    318318#if ENABLE(TOUCH_EVENTS) && PLATFORM(IOS)
    319319        document.removeTouchEventListener(this, true);
     320        document.removeTouchEventHandler(this, true);
    320321#else
    321322        // FIXME: This should call didRemoveTouchEventHandler().
     
    19341935#if ENABLE(IOS_GESTURE_EVENTS) && ENABLE(TOUCH_EVENTS)
    19351936    if (eventType == eventNames().gesturestartEvent || eventType == eventNames().gesturechangeEvent || eventType == eventNames().gestureendEvent)
    1936         targetNode->document().addTouchEventListener(targetNode);
     1937        targetNode->document().addTouchEventHandler(targetNode);
    19371938#endif
    19381939
     
    19751976#if ENABLE(IOS_GESTURE_EVENTS) && ENABLE(TOUCH_EVENTS)
    19761977    if (eventType == eventNames().gesturestartEvent || eventType == eventNames().gesturechangeEvent || eventType == eventNames().gestureendEvent)
    1977         targetNode->document().removeTouchEventListener(targetNode);
     1978        targetNode->document().removeTouchEventHandler(targetNode);
    19781979#endif
    19791980
  • trunk/Source/WebCore/html/shadow/SliderThumbElement.cpp

    r202105 r202531  
    551551    ASSERT(shouldAcceptTouchEvents());
    552552
    553     document().addTouchEventListener(this);
     553    document().addTouchEventHandler(this);
    554554    m_isRegisteredAsTouchEventListener = true;
    555555}
     
    563563    stopDragging();
    564564
    565     document().removeTouchEventListener(this);
     565    document().removeTouchEventHandler(this);
    566566    m_isRegisteredAsTouchEventListener = false;
    567567}
  • trunk/Source/WebCore/rendering/RenderLayer.cpp

    r202292 r202531  
    21892189        return;
    21902190   
    2191     renderer().document().addTouchEventListener(renderer().element());
     2191    renderer().document().addTouchEventHandler(renderer().element());
    21922192    m_registeredAsTouchEventListenerForScrolling = true;
    21932193}
     
    21982198        return;
    21992199
    2200     renderer().document().removeTouchEventListener(renderer().element());
     2200    renderer().document().removeTouchEventHandler(renderer().element());
    22012201    m_registeredAsTouchEventListenerForScrolling = false;
    22022202}
Note: See TracChangeset for help on using the changeset viewer.