Title: [239601] trunk/Source/WebCore
Revision
239601
Author
[email protected]
Date
2019-01-03 15:47:59 -0800 (Thu, 03 Jan 2019)

Log Message

REGRESSION (r238090): After showing the Find banner or tab bar, hit tests are vertically offset (or painting is not offset)
https://bugs.webkit.org/show_bug.cgi?id=193124
rdar://problem/46755409

Reviewed by Tim Horton.

Top content inset feeds into scrolling tree geometry, so when it changes we need to trigger
an update of the root scrolling node, which happens via RenderLayerBacking::updateGeometry().
So set a dirty bit on the root layer in frameViewDidChangeSize(), which is called from the code
path that runs when top content inset changes.

Find banner behavior is not easily testable. platform/mac/fast/events/content-inset-hit-testing.html did not detect the regression.

* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::frameViewDidChangeSize):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (239600 => 239601)


--- trunk/Source/WebCore/ChangeLog	2019-01-03 23:25:57 UTC (rev 239600)
+++ trunk/Source/WebCore/ChangeLog	2019-01-03 23:47:59 UTC (rev 239601)
@@ -1,3 +1,21 @@
+2019-01-03  Simon Fraser  <[email protected]>
+
+        REGRESSION (r238090): After showing the Find banner or tab bar, hit tests are vertically offset (or painting is not offset)
+        https://bugs.webkit.org/show_bug.cgi?id=193124
+        rdar://problem/46755409
+
+        Reviewed by Tim Horton.
+
+        Top content inset feeds into scrolling tree geometry, so when it changes we need to trigger
+        an update of the root scrolling node, which happens via RenderLayerBacking::updateGeometry().
+        So set a dirty bit on the root layer in frameViewDidChangeSize(), which is called from the code
+        path that runs when top content inset changes.
+
+        Find banner behavior is not easily testable. platform/mac/fast/events/content-inset-hit-testing.html did not detect the regression.
+
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::frameViewDidChangeSize):
+
 2019-01-03  Chris Dumez  <[email protected]>
 
         Potential infinite recursion in isFrameFamiliarWith(Frame&, Frame&)

Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp (239600 => 239601)


--- trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp	2019-01-03 23:25:57 UTC (rev 239600)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp	2019-01-03 23:47:59 UTC (rev 239601)
@@ -1806,6 +1806,9 @@
 
 void RenderLayerCompositor::frameViewDidChangeSize()
 {
+    if (auto* layer = m_renderView.layer())
+        layer->setNeedsCompositingGeometryUpdate();
+
     if (m_clipLayer) {
         const FrameView& frameView = m_renderView.frameView();
         m_clipLayer->setSize(frameView.sizeForVisibleContent());
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to