Changeset 261314 in webkit


Ignore:
Timestamp:
May 7, 2020 11:01:01 AM (4 years ago)
Author:
Antti Koivisto
Message:

[Wheel event region] Include listeners on Window
https://bugs.webkit.org/show_bug.cgi?id=211577

Reviewed by Simon Fraser.

Source/WebCore:

Test: fast/scrolling/mac/wheel-event-listener-region-window.html

  • dom/EventTarget.h:
  • dom/Node.h:
  • style/StyleAdjuster.cpp:

(WebCore::Style::Adjuster::computeEventListenerRegionTypes):

Take EventTarget so this can be used with DOMWindow.

  • style/StyleAdjuster.h:
  • style/StyleResolveForDocument.cpp:

(WebCore::Style::resolveForDocument):

LayoutTests:

  • fast/scrolling/mac/wheel-event-listener-region-window-expected.txt: Added.
  • fast/scrolling/mac/wheel-event-listener-region-window.html: Added.
Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r261304 r261314  
     12020-05-07  Antti Koivisto  <antti@apple.com>
     2
     3        [Wheel event region] Include listeners on Window
     4        https://bugs.webkit.org/show_bug.cgi?id=211577
     5
     6        Reviewed by Simon Fraser.
     7
     8        * fast/scrolling/mac/wheel-event-listener-region-window-expected.txt: Added.
     9        * fast/scrolling/mac/wheel-event-listener-region-window.html: Added.
     10
    1112020-05-07  Chris Dumez  <cdumez@apple.com>
    212
  • trunk/Source/WebCore/ChangeLog

    r261306 r261314  
     12020-05-07  Antti Koivisto  <antti@apple.com>
     2
     3        [Wheel event region] Include listeners on Window
     4        https://bugs.webkit.org/show_bug.cgi?id=211577
     5
     6        Reviewed by Simon Fraser.
     7
     8        Test: fast/scrolling/mac/wheel-event-listener-region-window.html
     9
     10        * dom/EventTarget.h:
     11        * dom/Node.h:
     12        * style/StyleAdjuster.cpp:
     13        (WebCore::Style::Adjuster::computeEventListenerRegionTypes):
     14
     15        Take EventTarget so this can be used with DOMWindow.
     16
     17        * style/StyleAdjuster.h:
     18        * style/StyleResolveForDocument.cpp:
     19        (WebCore::Style::resolveForDocument):
     20
    1212020-05-07  Simon Fraser  <simon.fraser@apple.com>
    222
  • trunk/Source/WebCore/dom/EventTarget.h

    r260243 r261314  
    117117    void invalidateJSEventListeners(JSC::JSObject*);
    118118
     119    const EventTargetData* eventTargetData() const;
     120
    119121protected:
    120122    virtual ~EventTarget() = default;
     
    123125    virtual EventTargetData* eventTargetDataConcurrently() = 0;
    124126    virtual EventTargetData& ensureEventTargetData() = 0;
    125     const EventTargetData* eventTargetData() const;
    126127
    127128    virtual void eventListenersDidChange() { }
  • trunk/Source/WebCore/dom/Node.h

    r261279 r261314  
    483483#endif
    484484
    485     using EventTarget::eventTargetData;
    486485    EventTargetData* eventTargetData() final;
    487486    EventTargetData* eventTargetDataConcurrently() final;
  • trunk/Source/WebCore/style/StyleAdjuster.cpp

    r261297 r261314  
    194194}
    195195
    196 OptionSet<EventListenerRegionType> Adjuster::computeEventListenerRegionTypes(const Node& node, OptionSet<EventListenerRegionType> parentTypes)
     196OptionSet<EventListenerRegionType> Adjuster::computeEventListenerRegionTypes(const EventTarget& eventTarget, OptionSet<EventListenerRegionType> parentTypes)
    197197{
    198198#if !PLATFORM(IOS_FAMILY)
    199     if (!node.hasEventListeners())
     199    if (!eventTarget.hasEventListeners())
    200200        return parentTypes;
    201201
     
    203203
    204204    auto findListeners = [&](auto& eventName, auto type, auto nonPassiveType) {
    205         auto* eventListenerVector = node.eventTargetData()->eventListenerMap.find(eventName);
     205        auto* eventListenerVector = eventTarget.eventTargetData()->eventListenerMap.find(eventName);
    206206        if (!eventListenerVector)
    207207            return;
     
    226226    return types;
    227227#else
    228     UNUSED_PARAM(node);
     228    UNUSED_PARAM(eventTarget);
    229229    UNUSED_PARAM(parentTypes);
    230230    return { };
  • trunk/Source/WebCore/style/StyleAdjuster.h

    r261297 r261314  
    4949    static void adjustAnimatedStyle(RenderStyle&, const RenderStyle* parentBoxStyle, OptionSet<AnimationImpact>);
    5050   
    51     static OptionSet<EventListenerRegionType> computeEventListenerRegionTypes(const Node&, OptionSet<EventListenerRegionType>);
     51    static OptionSet<EventListenerRegionType> computeEventListenerRegionTypes(const EventTarget&, OptionSet<EventListenerRegionType>);
    5252
    5353#if ENABLE(TEXT_AUTOSIZING)
  • trunk/Source/WebCore/style/StyleResolveForDocument.cpp

    r261297 r261314  
    3131
    3232#include "CSSFontSelector.h"
     33#include "DOMWindow.h"
    3334#include "Document.h"
    3435#include "FontCascade.h"
     
    7475#endif
    7576
    76     documentStyle.setEventListenerRegionTypes(Adjuster::computeEventListenerRegionTypes(document, { }));
     77    auto regionTypes = Adjuster::computeEventListenerRegionTypes(document, { });
     78    if (auto* window = document.domWindow())
     79        regionTypes.add(Adjuster::computeEventListenerRegionTypes(*window, { }));
     80
     81    documentStyle.setEventListenerRegionTypes(regionTypes);
    7782
    7883    Element* docElement = document.documentElement();
Note: See TracChangeset for help on using the changeset viewer.