Title: [262476] trunk
Revision
262476
Author
[email protected]
Date
2020-06-02 21:54:21 -0700 (Tue, 02 Jun 2020)

Log Message

EventRegion::translate() needs to offset the wheel event regions
https://bugs.webkit.org/show_bug.cgi?id=212683

Reviewed by Zalan Bujtas.

Source/WebCore:

EventRegion::translate() failed to offset the wheel event regions, which resulted
in wrong reasons for GraphicsLayers with a non-zero offsetFromRenderer.

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

* rendering/EventRegion.cpp:
(WebCore::EventRegion::translate):

LayoutTests:

* fast/scrolling/mac/wheel-event-listener-region-layer-offset-expected.txt: Added.
* fast/scrolling/mac/wheel-event-listener-region-layer-offset.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (262475 => 262476)


--- trunk/LayoutTests/ChangeLog	2020-06-03 04:47:30 UTC (rev 262475)
+++ trunk/LayoutTests/ChangeLog	2020-06-03 04:54:21 UTC (rev 262476)
@@ -1,3 +1,13 @@
+2020-06-02  Simon Fraser  <[email protected]>
+
+        EventRegion::translate() needs to offset the wheel event regions
+        https://bugs.webkit.org/show_bug.cgi?id=212683
+
+        Reviewed by Zalan Bujtas.
+
+        * fast/scrolling/mac/wheel-event-listener-region-layer-offset-expected.txt: Added.
+        * fast/scrolling/mac/wheel-event-listener-region-layer-offset.html: Added.
+
 2020-06-02  Zalan Bujtas  <[email protected]>
 
         [iOS] fast/events/touch/ios/content-observation/opacity-change-happens-on-touchstart-with-transition2.html is a flaky failure

Modified: trunk/LayoutTests/fast/scrolling/mac/wheel-event-listener-region-inside-overflow-scroll-expected.txt (262475 => 262476)


--- trunk/LayoutTests/fast/scrolling/mac/wheel-event-listener-region-inside-overflow-scroll-expected.txt	2020-06-03 04:47:30 UTC (rev 262475)
+++ trunk/LayoutTests/fast/scrolling/mac/wheel-event-listener-region-inside-overflow-scroll-expected.txt	2020-06-03 04:54:21 UTC (rev 262476)
@@ -42,9 +42,9 @@
                     (rect (-2,-2) width=204 height=204)
                     (rect (0,202) width=185 height=218)
                   (wheel event listener region
-                    (rect (22,22) width=100 height=400)
+                    (rect (20,20) width=100 height=400)
                     (non-passive
-                      (rect (22,22) width=100 height=400)
+                      (rect (20,20) width=100 height=400)
                     )
                   )
                   )

Added: trunk/LayoutTests/fast/scrolling/mac/wheel-event-listener-region-layer-offset-expected.txt (0 => 262476)


--- trunk/LayoutTests/fast/scrolling/mac/wheel-event-listener-region-layer-offset-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/scrolling/mac/wheel-event-listener-region-layer-offset-expected.txt	2020-06-03 04:54:21 UTC (rev 262476)
@@ -0,0 +1,40 @@
+(GraphicsLayer
+  (anchor 0.00 0.00)
+  (bounds 800.00 600.00)
+  (children 1
+    (GraphicsLayer
+      (bounds 800.00 600.00)
+      (contentsOpaque 1)
+      (event region
+        (rect (0,0) width=800 height=600)
+      )
+      (children 1
+        (GraphicsLayer
+          (offsetFromRenderer width=-94 height=-69)
+          (position 14.00 44.00)
+          (bounds 294.00 269.00)
+          (drawsContent 1)
+          (event region
+            (rect (20,20) width=50 height=49)
+            (rect (20,69) width=50 height=1)
+            (rect (94,69) width=200 height=1)
+            (rect (94,70) width=200 height=199)
+          (wheel event listener region
+            (rect (20,20) width=50 height=49)
+            (rect (20,69) width=50 height=1)
+            (rect (94,69) width=200 height=1)
+            (rect (94,70) width=200 height=199)
+            (non-passive
+              (rect (20,20) width=50 height=49)
+              (rect (20,69) width=50 height=1)
+              (rect (94,69) width=200 height=1)
+              (rect (94,70) width=200 height=199)
+            )
+          )
+          )
+        )
+      )
+    )
+  )
+)
+

Added: trunk/LayoutTests/fast/scrolling/mac/wheel-event-listener-region-layer-offset.html (0 => 262476)


--- trunk/LayoutTests/fast/scrolling/mac/wheel-event-listener-region-layer-offset.html	                        (rev 0)
+++ trunk/LayoutTests/fast/scrolling/mac/wheel-event-listener-region-layer-offset.html	2020-06-03 04:54:21 UTC (rev 262476)
@@ -0,0 +1,44 @@
+<!DOCTYPE html> <!-- webkit-test-runner [ internal:AsyncOverflowScrollingEnabled=true ] -->
+<html>
+<style>
+    * {
+        box-sizing: border-box;
+    }
+    
+    .event {
+        position: absolute;
+        background-color: silver;
+        width: 200px;
+        height: 200px;
+        border: 1px solid black;
+        margin: 100px;
+        will-change: transform;
+    }
+    .child {
+        position: relative;
+        background-color: silver;
+        left: -75px;
+        top: -50px;
+        width: 50px;
+        height: 50px;
+        border: 1px solid black;
+        box-shadow: -20px -20px 0px gray;
+    }
+</style>
+<script>
+window._onload_ = () => {
+    if (window.testRunner)
+        testRunner.dumpAsText();
+
+    if (window.internals)
+        results.innerText = internals.layerTreeAsText(document, internals.LAYER_TREE_INCLUDES_EVENT_REGION);
+}
+</script>
+<body>
+<div class="event" _onwheel_="(void)0">
+    <div class="child"></div>
+</div>
+<pre id="results"></pre>
+</body>
+</html>
+

Modified: trunk/Source/WebCore/ChangeLog (262475 => 262476)


--- trunk/Source/WebCore/ChangeLog	2020-06-03 04:47:30 UTC (rev 262475)
+++ trunk/Source/WebCore/ChangeLog	2020-06-03 04:54:21 UTC (rev 262476)
@@ -1,3 +1,18 @@
+2020-06-02  Simon Fraser  <[email protected]>
+
+        EventRegion::translate() needs to offset the wheel event regions
+        https://bugs.webkit.org/show_bug.cgi?id=212683
+
+        Reviewed by Zalan Bujtas.
+
+        EventRegion::translate() failed to offset the wheel event regions, which resulted 
+        in wrong reasons for GraphicsLayers with a non-zero offsetFromRenderer.
+
+        Test: fast/scrolling/mac/wheel-event-listener-region-layer-offset.html
+
+        * rendering/EventRegion.cpp:
+        (WebCore::EventRegion::translate):
+
 2020-06-02  Wenson Hsieh  <[email protected]>
 
         Add a helper method to populate a DataTransfer before dispatching a "dragstart" event

Modified: trunk/Source/WebCore/rendering/EventRegion.cpp (262475 => 262476)


--- trunk/Source/WebCore/rendering/EventRegion.cpp	2020-06-03 04:47:30 UTC (rev 262475)
+++ trunk/Source/WebCore/rendering/EventRegion.cpp	2020-06-03 04:54:21 UTC (rev 262476)
@@ -146,7 +146,10 @@
         touchActionRegion.translate(offset);
 #endif
 
-    // FIXME: Translate m_wheelEventListenerRegion and m_nonPassiveWheelEventListenerRegion
+#if ENABLE(WHEEL_EVENT_REGIONS)
+    m_wheelEventListenerRegion.translate(offset);
+    m_nonPassiveWheelEventListenerRegion.translate(offset);
+#endif
 
 #if ENABLE(EDITABLE_REGION)
     m_editableRegion.translate(offset);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to