Title: [234329] trunk
Revision
234329
Author
[email protected]
Date
2018-07-27 15:11:32 -0700 (Fri, 27 Jul 2018)

Log Message

[WK1] ASSERTION FAILED: renderer().repaintLayoutRects().m_repaintRect == renderer().clippedOverflowRectForRepaint(renderer().containerForRepaint()) in WebCore::RenderLayer::updateLayerPositionsAfterScroll
https://bugs.webkit.org/show_bug.cgi?id=188122
<rdar://problem/42584790>

Reviewed by Simon Fraser.

Source/WebCore:

When ScrollView's m_paintsEntireContents flag flips due to layer backing changes, the repaint area transitions from
visual to layout overflow. When this happens the cached repaint rects become invalid and they need to be recomputed.
Currently there's no mechanism to trigger repaint cache invalidation from ScrollView.
Skip assertion for now on WK1 (see webkit.org/b/188121)

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositionsAfterScroll):

LayoutTests:

* platform/mac-wk1/TestExpectations:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (234328 => 234329)


--- trunk/LayoutTests/ChangeLog	2018-07-27 21:20:22 UTC (rev 234328)
+++ trunk/LayoutTests/ChangeLog	2018-07-27 22:11:32 UTC (rev 234329)
@@ -1,3 +1,13 @@
+2018-07-27  Zalan Bujtas  <[email protected]>
+
+        [WK1] ASSERTION FAILED: renderer().repaintLayoutRects().m_repaintRect == renderer().clippedOverflowRectForRepaint(renderer().containerForRepaint()) in WebCore::RenderLayer::updateLayerPositionsAfterScroll
+        https://bugs.webkit.org/show_bug.cgi?id=188122
+        <rdar://problem/42584790>
+
+        Reviewed by Simon Fraser.
+
+        * platform/mac-wk1/TestExpectations:
+
 2018-07-27  Michael Catanzaro  <[email protected]>
 
         Unreviewed GTK test gardening

Modified: trunk/LayoutTests/platform/mac-wk1/TestExpectations (234328 => 234329)


--- trunk/LayoutTests/platform/mac-wk1/TestExpectations	2018-07-27 21:20:22 UTC (rev 234328)
+++ trunk/LayoutTests/platform/mac-wk1/TestExpectations	2018-07-27 22:11:32 UTC (rev 234329)
@@ -586,43 +586,6 @@
 
 webkit.org/b/187711 [ Debug ] svg/custom/linking-uri-01-b.svg [ Pass Failure ]
 
-# <rdar://problem/42584790>
-[ Mojave+ Debug ] fast/css/sticky/inflow-sticky.html [ Skip ]
-[ Mojave+ Debug ] fast/css/sticky/inline-sticky-abspos-child.html [ Skip ]
-[ Mojave+ Debug ] fast/css/sticky/inline-sticky.html [ Skip ]
-[ Mojave+ Debug ] fast/css/sticky/replaced-sticky.html [ Skip ]
-[ Mojave+ Debug ] fast/css/sticky/sticky-as-positioning-container.html [ Skip ]
-[ Mojave+ Debug ] fast/css/sticky/sticky-both-sides.html [ Skip ]
-[ Mojave+ Debug ] fast/css/sticky/sticky-left-percentage.html [ Skip ]
-[ Mojave+ Debug ] fast/css/sticky/sticky-left.html [ Skip ]
-[ Mojave+ Debug ] fast/css/sticky/sticky-margins.html [ Skip ]
-[ Mojave+ Debug ] fast/css/sticky/sticky-overflowing.html [ Skip ]
-[ Mojave+ Debug ] fast/css/sticky/sticky-side-margins.html [ Skip ]
-[ Mojave+ Debug ] fast/css/sticky/sticky-table-row-top.html [ Skip ]
-[ Mojave+ Debug ] fast/css/sticky/sticky-table-thead-top.html [ Skip ]
-[ Mojave+ Debug ] fast/css/sticky/sticky-top-margins.html [ Skip ]
-[ Mojave+ Debug ] fast/css/sticky/sticky-top.html [ Skip ]
-[ Mojave+ Debug ] fast/css/sticky/sticky-writing-mode-horizontal-bt.html [ Skip ]
-[ Mojave+ Debug ] fast/css/sticky/sticky-writing-mode-vertical-lr.html [ Skip ]
-[ Mojave+ Debug ] fast/css/sticky/sticky-writing-mode-vertical-rl.html [ Skip ]
-[ Mojave+ Debug ] fast/events/document-elementFromPoint.html [ Skip ]
-[ Mojave+ Debug ] fast/events/offsetX-offsetY.html [ Skip ]
-[ Mojave+ Debug ] fast/hidpi/hidpi-long-page-with-inset-element.html [ Skip ]
-[ Mojave+ Debug ] fast/repaint/absolute-position-changed.html [ Skip ]
-[ Mojave+ Debug ] fast/repaint/fixed-scale.html [ Skip ]
-[ Mojave+ Debug ] fast/repaint/fixed-table-cell.html [ Skip ]
-[ Mojave+ Debug ] fast/repaint/fixed-table-overflow-zindex.html [ Skip ]
-[ Mojave+ Debug ] fast/repaint/fixed-table-overflow.html [ Skip ]
-[ Mojave+ Debug ] fast/repaint/fixed.html [ Skip ]
-[ Mojave+ Debug ] fast/repaint/scroll-fixed-layer-with-reflection.html [ Skip ]
-[ Mojave+ Debug ] fast/scrolling/rtl-scrollbars-sticky-document-2.html [ Skip ]
-[ Mojave+ Debug ] fast/visual-viewport/client-coordinates-relative-to-layout-viewport.html [ Skip ]
-[ Mojave+ Debug ] fast/visual-viewport/zoomed-fixed-scroll-down-then-up.html [ Skip ]
-[ Mojave+ Debug ] fast/visual-viewport/zoomed-scroll-to-anchor-in-position-fixed.html [ Skip ]
-[ Mojave+ Debug ] fast/zooming/client-rect-in-fixed-zoomed.html [ Skip ]
-[ Mojave+ Debug ] transforms/2d/perspective-not-fixed-container.html [ Skip ]
-[ Mojave+ Debug ] transforms/2d/preserve3d-not-fixed-container.html [ Skip ]
-
 # <rdar://problem/42625657>
 [ Mojave+ ] fast/images/animated-gif-paint-after-animation.html [ Skip ]
 [ Mojave+ ] fast/images/async-image-background-image-repeated.html [ Skip ]

Modified: trunk/Source/WebCore/ChangeLog (234328 => 234329)


--- trunk/Source/WebCore/ChangeLog	2018-07-27 21:20:22 UTC (rev 234328)
+++ trunk/Source/WebCore/ChangeLog	2018-07-27 22:11:32 UTC (rev 234329)
@@ -1,3 +1,19 @@
+2018-07-27  Zalan Bujtas  <[email protected]>
+
+        [WK1] ASSERTION FAILED: renderer().repaintLayoutRects().m_repaintRect == renderer().clippedOverflowRectForRepaint(renderer().containerForRepaint()) in WebCore::RenderLayer::updateLayerPositionsAfterScroll
+        https://bugs.webkit.org/show_bug.cgi?id=188122
+        <rdar://problem/42584790>
+
+        Reviewed by Simon Fraser.
+
+        When ScrollView's m_paintsEntireContents flag flips due to layer backing changes, the repaint area transitions from
+        visual to layout overflow. When this happens the cached repaint rects become invalid and they need to be recomputed.
+        Currently there's no mechanism to trigger repaint cache invalidation from ScrollView.
+        Skip assertion for now on WK1 (see webkit.org/b/188121)
+
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::updateLayerPositionsAfterScroll):
+
 2018-07-27  Myles C. Maxfield  <[email protected]>
 
         [WIN] Crash when trying to access store pages

Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (234328 => 234329)


--- trunk/Source/WebCore/rendering/RenderLayer.cpp	2018-07-27 21:20:22 UTC (rev 234328)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp	2018-07-27 22:11:32 UTC (rev 234329)
@@ -881,7 +881,9 @@
             clearRepaintRects();
         else // FIXME: We could track the repaint container as we walk down the tree.
             computeRepaintRects(renderer().containerForRepaint(), geometryMap);
-    } else {
+    } else if (!renderer().view().frameView().platformWidget()) {
+        // When ScrollView's m_paintsEntireContents flag flips due to layer backing changes, the repaint area transitions from
+        // visual to layout overflow. When this happens the cached repaint rects become invalid and they need to be recomputed (see webkit.org/b/188121).
         // Check that our cached rects are correct.
         ASSERT(!renderer().hasRepaintLayoutRects() || renderer().repaintLayoutRects().m_repaintRect == renderer().clippedOverflowRectForRepaint(renderer().containerForRepaint()));
         ASSERT(!renderer().hasRepaintLayoutRects() || renderer().repaintLayoutRects().m_outlineBox == renderer().outlineBoundsForRepaint(renderer().containerForRepaint()));
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to