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