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);