Title: [242830] trunk/Source/WebCore
Revision
242830
Author
[email protected]
Date
2019-03-12 15:35:36 -0700 (Tue, 12 Mar 2019)

Log Message

Compositing layer that renders two positioned elements should not hit test
https://bugs.webkit.org/show_bug.cgi?id=195371
<rdar://problem/48649586>

Reviewed by Simon Fraser.

Followup to fix the test case (fast/scrolling/ios/overflow-scroll-overlap-2.html)

* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setEventRegion):

Revert a last minute change (that was done to fix a Mac displaylist test).

* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::paintIntoLayer):

Compute the region on iOS only for now (it is not used on other platforms).

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (242829 => 242830)


--- trunk/Source/WebCore/ChangeLog	2019-03-12 21:47:38 UTC (rev 242829)
+++ trunk/Source/WebCore/ChangeLog	2019-03-12 22:35:36 UTC (rev 242830)
@@ -1,3 +1,23 @@
+2019-03-12  Antti Koivisto  <[email protected]>
+
+        Compositing layer that renders two positioned elements should not hit test
+        https://bugs.webkit.org/show_bug.cgi?id=195371
+        <rdar://problem/48649586>
+
+        Reviewed by Simon Fraser.
+
+        Followup to fix the test case (fast/scrolling/ios/overflow-scroll-overlap-2.html)
+
+        * platform/graphics/ca/GraphicsLayerCA.cpp:
+        (WebCore::GraphicsLayerCA::setEventRegion):
+
+        Revert a last minute change (that was done to fix a Mac displaylist test).
+
+        * rendering/RenderLayerBacking.cpp:
+        (WebCore::RenderLayerBacking::paintIntoLayer):
+
+        Compute the region on iOS only for now (it is not used on other platforms).
+
 2019-03-12  Dean Jackson  <[email protected]>
 
         [WebGL] WebGLBuffer can be too large

Modified: trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp (242829 => 242830)


--- trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp	2019-03-12 21:47:38 UTC (rev 242829)
+++ trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp	2019-03-12 22:35:36 UTC (rev 242830)
@@ -990,7 +990,7 @@
         return;
 
     GraphicsLayer::setEventRegion(WTFMove(eventRegion));
-    noteLayerPropertyChanged(EventRegionChanged, DontScheduleFlush);
+    noteLayerPropertyChanged(EventRegionChanged, m_isCommittingChanges ? DontScheduleFlush : ScheduleFlush);
 }
 
 bool GraphicsLayerCA::shouldRepaintOnSizeChange() const

Modified: trunk/Source/WebCore/rendering/RenderLayerBacking.cpp (242829 => 242830)


--- trunk/Source/WebCore/rendering/RenderLayerBacking.cpp	2019-03-12 21:47:38 UTC (rev 242829)
+++ trunk/Source/WebCore/rendering/RenderLayerBacking.cpp	2019-03-12 22:35:36 UTC (rev 242830)
@@ -2576,11 +2576,14 @@
 
     RenderLayer::LayerPaintingInfo paintingInfo(&m_owningLayer, paintDirtyRect, paintBehavior, -m_subpixelOffsetFromRenderer);
 
+#if PLATFORM(IOS_FAMILY)
     auto eventRegion = std::make_unique<Region>();
     paintingInfo.eventRegion = eventRegion.get();
+#endif
 
     m_owningLayer.paintLayerContents(context, paintingInfo, paintFlags);
 
+#if PLATFORM(IOS_FAMILY)
     paintingInfo.eventRegion = nullptr;
     // Use null event region to indicate the entire layer is sensitive to events (the common case).
     // FIXME: We could optimize Region so it doesn't use lots of memory if it contains a single rect only.
@@ -2589,6 +2592,7 @@
     else
         eventRegion->translate(roundedIntSize(contentOffsetInCompositingLayer()));
     m_graphicsLayer->setEventRegion(WTFMove(eventRegion));
+#endif
 
     if (m_owningLayer.containsDirtyOverlayScrollbars())
         m_owningLayer.paintLayerContents(context, paintingInfo, paintFlags | RenderLayer::PaintLayerPaintingOverlayScrollbars);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to