Title: [234354] branches/safari-606-branch
Revision
234354
Author
[email protected]
Date
2018-07-29 23:28:10 -0700 (Sun, 29 Jul 2018)

Log Message

Cherry-pick r234329. rdar://problem/42721126

    [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:

    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234329 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Modified Paths

Diff

Modified: branches/safari-606-branch/LayoutTests/ChangeLog (234353 => 234354)


--- branches/safari-606-branch/LayoutTests/ChangeLog	2018-07-30 06:28:07 UTC (rev 234353)
+++ branches/safari-606-branch/LayoutTests/ChangeLog	2018-07-30 06:28:10 UTC (rev 234354)
@@ -1,5 +1,41 @@
 2018-07-29  Babak Shafiei  <[email protected]>
 
+        Cherry-pick r234329. rdar://problem/42721126
+
+    [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:
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234329 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    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-29  Babak Shafiei  <[email protected]>
+
         Cherry-pick r234125. rdar://problem/42721214
 
     CrashTracer: com.apple.WebKit.Storage at WebCore: WebCore::encodeKey

Modified: branches/safari-606-branch/LayoutTests/platform/mac-wk1/TestExpectations (234353 => 234354)


--- branches/safari-606-branch/LayoutTests/platform/mac-wk1/TestExpectations	2018-07-30 06:28:07 UTC (rev 234353)
+++ branches/safari-606-branch/LayoutTests/platform/mac-wk1/TestExpectations	2018-07-30 06:28:10 UTC (rev 234354)
@@ -584,43 +584,6 @@
 webkit.org/b/187557 [ Debug ] media/media-fragments/TC0090.html [ Pass Failure ]
 webkit.org/b/187557 [ Debug ] media/media-fragments/TC0091.html [ 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: branches/safari-606-branch/Source/WebCore/ChangeLog (234353 => 234354)


--- branches/safari-606-branch/Source/WebCore/ChangeLog	2018-07-30 06:28:07 UTC (rev 234353)
+++ branches/safari-606-branch/Source/WebCore/ChangeLog	2018-07-30 06:28:10 UTC (rev 234354)
@@ -1,5 +1,47 @@
 2018-07-29  Babak Shafiei  <[email protected]>
 
+        Cherry-pick r234329. rdar://problem/42721126
+
+    [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:
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234329 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    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-29  Babak Shafiei  <[email protected]>
+
         Cherry-pick r234125. rdar://problem/42721214
 
     CrashTracer: com.apple.WebKit.Storage at WebCore: WebCore::encodeKey

Modified: branches/safari-606-branch/Source/WebCore/rendering/RenderLayer.cpp (234353 => 234354)


--- branches/safari-606-branch/Source/WebCore/rendering/RenderLayer.cpp	2018-07-30 06:28:07 UTC (rev 234353)
+++ branches/safari-606-branch/Source/WebCore/rendering/RenderLayer.cpp	2018-07-30 06:28:10 UTC (rev 234354)
@@ -880,7 +880,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