Title: [261314] trunk
Revision
261314
Author
an...@apple.com
Date
2020-05-07 11:01:01 -0700 (Thu, 07 May 2020)

Log 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.

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (261313 => 261314)


--- trunk/LayoutTests/ChangeLog	2020-05-07 18:00:12 UTC (rev 261313)
+++ trunk/LayoutTests/ChangeLog	2020-05-07 18:01:01 UTC (rev 261314)
@@ -1,3 +1,13 @@
+2020-05-07  Antti Koivisto  <an...@apple.com>
+
+        [Wheel event region] Include listeners on Window
+        https://bugs.webkit.org/show_bug.cgi?id=211577
+
+        Reviewed by Simon Fraser.
+
+        * fast/scrolling/mac/wheel-event-listener-region-window-expected.txt: Added.
+        * fast/scrolling/mac/wheel-event-listener-region-window.html: Added.
+
 2020-05-07  Chris Dumez  <cdu...@apple.com>
 
         Unreviewed, mark imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/scroll-restoration-order.html as flaky on iOS.

Modified: trunk/Source/WebCore/ChangeLog (261313 => 261314)


--- trunk/Source/WebCore/ChangeLog	2020-05-07 18:00:12 UTC (rev 261313)
+++ trunk/Source/WebCore/ChangeLog	2020-05-07 18:01:01 UTC (rev 261314)
@@ -1,3 +1,23 @@
+2020-05-07  Antti Koivisto  <an...@apple.com>
+
+        [Wheel event region] Include listeners on Window
+        https://bugs.webkit.org/show_bug.cgi?id=211577
+
+        Reviewed by Simon Fraser.
+
+        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):
+
 2020-05-07  Simon Fraser  <simon.fra...@apple.com>
 
         REGRESSION (r261056): [ Mac WK1 ] inspector/console/console-api.html is flaky crashing

Modified: trunk/Source/WebCore/dom/EventTarget.h (261313 => 261314)


--- trunk/Source/WebCore/dom/EventTarget.h	2020-05-07 18:00:12 UTC (rev 261313)
+++ trunk/Source/WebCore/dom/EventTarget.h	2020-05-07 18:01:01 UTC (rev 261314)
@@ -116,6 +116,8 @@
     void visitJSEventListeners(JSC::SlotVisitor&);
     void invalidateJSEventListeners(JSC::JSObject*);
 
+    const EventTargetData* eventTargetData() const;
+
 protected:
     virtual ~EventTarget() = default;
     
@@ -122,7 +124,6 @@
     virtual EventTargetData* eventTargetData() = 0;
     virtual EventTargetData* eventTargetDataConcurrently() = 0;
     virtual EventTargetData& ensureEventTargetData() = 0;
-    const EventTargetData* eventTargetData() const;
 
     virtual void eventListenersDidChange() { }
 

Modified: trunk/Source/WebCore/dom/Node.h (261313 => 261314)


--- trunk/Source/WebCore/dom/Node.h	2020-05-07 18:00:12 UTC (rev 261313)
+++ trunk/Source/WebCore/dom/Node.h	2020-05-07 18:01:01 UTC (rev 261314)
@@ -482,7 +482,6 @@
     bool m_adoptionIsRequired { true };
 #endif
 
-    using EventTarget::eventTargetData;
     EventTargetData* eventTargetData() final;
     EventTargetData* eventTargetDataConcurrently() final;
     EventTargetData& ensureEventTargetData() final;

Modified: trunk/Source/WebCore/style/StyleAdjuster.cpp (261313 => 261314)


--- trunk/Source/WebCore/style/StyleAdjuster.cpp	2020-05-07 18:00:12 UTC (rev 261313)
+++ trunk/Source/WebCore/style/StyleAdjuster.cpp	2020-05-07 18:01:01 UTC (rev 261314)
@@ -193,16 +193,16 @@
     return sharedTouchActions;
 }
 
-OptionSet<EventListenerRegionType> Adjuster::computeEventListenerRegionTypes(const Node& node, OptionSet<EventListenerRegionType> parentTypes)
+OptionSet<EventListenerRegionType> Adjuster::computeEventListenerRegionTypes(const EventTarget& eventTarget, OptionSet<EventListenerRegionType> parentTypes)
 {
 #if !PLATFORM(IOS_FAMILY)
-    if (!node.hasEventListeners())
+    if (!eventTarget.hasEventListeners())
         return parentTypes;
 
     auto types = parentTypes;
 
     auto findListeners = [&](auto& eventName, auto type, auto nonPassiveType) {
-        auto* eventListenerVector = node.eventTargetData()->eventListenerMap.find(eventName);
+        auto* eventListenerVector = eventTarget.eventTargetData()->eventListenerMap.find(eventName);
         if (!eventListenerVector)
             return;
 
@@ -225,7 +225,7 @@
 
     return types;
 #else
-    UNUSED_PARAM(node);
+    UNUSED_PARAM(eventTarget);
     UNUSED_PARAM(parentTypes);
     return { };
 #endif

Modified: trunk/Source/WebCore/style/StyleAdjuster.h (261313 => 261314)


--- trunk/Source/WebCore/style/StyleAdjuster.h	2020-05-07 18:00:12 UTC (rev 261313)
+++ trunk/Source/WebCore/style/StyleAdjuster.h	2020-05-07 18:01:01 UTC (rev 261314)
@@ -48,7 +48,7 @@
     static void adjustSVGElementStyle(RenderStyle&, const SVGElement&);
     static void adjustAnimatedStyle(RenderStyle&, const RenderStyle* parentBoxStyle, OptionSet<AnimationImpact>);
     
-    static OptionSet<EventListenerRegionType> computeEventListenerRegionTypes(const Node&, OptionSet<EventListenerRegionType>);
+    static OptionSet<EventListenerRegionType> computeEventListenerRegionTypes(const EventTarget&, OptionSet<EventListenerRegionType>);
 
 #if ENABLE(TEXT_AUTOSIZING)
     struct AdjustmentForTextAutosizing {

Modified: trunk/Source/WebCore/style/StyleResolveForDocument.cpp (261313 => 261314)


--- trunk/Source/WebCore/style/StyleResolveForDocument.cpp	2020-05-07 18:00:12 UTC (rev 261313)
+++ trunk/Source/WebCore/style/StyleResolveForDocument.cpp	2020-05-07 18:01:01 UTC (rev 261314)
@@ -30,6 +30,7 @@
 #include "StyleResolveForDocument.h"
 
 #include "CSSFontSelector.h"
+#include "DOMWindow.h"
 #include "Document.h"
 #include "FontCascade.h"
 #include "Frame.h"
@@ -73,8 +74,12 @@
         documentStyle.setTextSizeAdjust(TextSizeAdjustment(NoTextSizeAdjustment));
 #endif
 
-    documentStyle.setEventListenerRegionTypes(Adjuster::computeEventListenerRegionTypes(document, { }));
+    auto regionTypes = Adjuster::computeEventListenerRegionTypes(document, { });
+    if (auto* window = document.domWindow())
+        regionTypes.add(Adjuster::computeEventListenerRegionTypes(*window, { }));
 
+    documentStyle.setEventListenerRegionTypes(regionTypes);
+
     Element* docElement = document.documentElement();
     RenderObject* docElementRenderer = docElement ? docElement->renderer() : nullptr;
     if (docElementRenderer) {
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to