From aca7ee6efbdd8a149ce6135df54cc93fbe362922 Mon Sep 17 00:00:00 2001 From: Simon Fraser Date: Thu, 28 Mar 2013 22:47:20 +1100 Subject: ASSERTION FAILED: m_repaintRect == renderer()->clippedOverflowRectForRepaint(renderer()->containerForRepaint()) after r135816 https://bugs.webkit.org/show_bug.cgi?id=103432 Remove optimization added in r99752 that attempted to avoid clip rect updates for table cells. As the assertions show, this optimization is not always correct, so remove it. Bug 108272 tracks adding it back in. * rendering/RenderLayer.cpp: (WebCore::RenderLayer::RenderLayer): (WebCore::RenderLayer::updateLayerPositionsAfterScroll): Remove m_canSkipRepaintRectsUpdateOnScroll check when updating clip rects. * rendering/RenderLayer.h: Remove the m_canSkipRepaintRectsUpdateOnScroll bit. Task-number: QTBUG-29214 Change-Id: I453ad4db59218631e236e938c2392a444840df64 Reviewed-by: Jocelyn Turcotte Reviewed-by: Jonathan Liu --- Source/WebCore/rendering/RenderLayer.cpp | 3 +-- Source/WebCore/rendering/RenderLayer.h | 4 ---- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/Source/WebCore/rendering/RenderLayer.cpp b/Source/WebCore/rendering/RenderLayer.cpp index 3c7cf6e56..c8437895f 100644 --- a/Source/WebCore/rendering/RenderLayer.cpp +++ b/Source/WebCore/rendering/RenderLayer.cpp @@ -166,7 +166,6 @@ RenderLayer::RenderLayer(RenderLayerModelObject* renderer) #if !ASSERT_DISABLED , m_layerListMutationAllowed(true) #endif - , m_canSkipRepaintRectsUpdateOnScroll(renderer->isTableCell()) #if ENABLE(CSS_FILTERS) , m_hasFilterInfo(false) #endif @@ -546,7 +545,7 @@ void RenderLayer::updateLayerPositionsAfterScroll(RenderGeometryMap* geometryMap flags |= HasSeenAncestorWithOverflowClip; if (flags & HasSeenViewportConstrainedAncestor - || (flags & IsOverflowScroll && flags & HasSeenAncestorWithOverflowClip && !m_canSkipRepaintRectsUpdateOnScroll)) { + || (flags & IsOverflowScroll && flags & HasSeenAncestorWithOverflowClip)) { // FIXME: We could track the repaint container as we walk down the tree. computeRepaintRects(renderer()->containerForRepaint(), geometryMap); } else { diff --git a/Source/WebCore/rendering/RenderLayer.h b/Source/WebCore/rendering/RenderLayer.h index 65f1070ab..c5e652411 100644 --- a/Source/WebCore/rendering/RenderLayer.h +++ b/Source/WebCore/rendering/RenderLayer.h @@ -996,10 +996,6 @@ protected: #if !ASSERT_DISABLED bool m_layerListMutationAllowed : 1; #endif - // This is an optimization added for . - // Currently cells do not need to update their repaint rectangles when scrolling. This also - // saves a lot of time when scrolling on a table. - const bool m_canSkipRepaintRectsUpdateOnScroll : 1; #if ENABLE(CSS_FILTERS) bool m_hasFilterInfo : 1; -- cgit v1.2.3