Title: [147759] trunk/Source/WebCore
Revision
147759
Author
[email protected]
Date
2013-04-05 10:36:12 -0700 (Fri, 05 Apr 2013)

Log Message

ASSERTION FAILED: m_repaintRect == renderer()->clippedOverflowRectForRepaint(renderer()->containerForRepaint()) after r135816
https://bugs.webkit.org/show_bug.cgi?id=103432

Reviewed by Allan Sandfeld Jensen.

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.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (147758 => 147759)


--- trunk/Source/WebCore/ChangeLog	2013-04-05 17:30:27 UTC (rev 147758)
+++ trunk/Source/WebCore/ChangeLog	2013-04-05 17:36:12 UTC (rev 147759)
@@ -1,3 +1,20 @@
+2013-04-05  Simon Fraser  <[email protected]>
+
+        ASSERTION FAILED: m_repaintRect == renderer()->clippedOverflowRectForRepaint(renderer()->containerForRepaint()) after r135816
+        https://bugs.webkit.org/show_bug.cgi?id=103432
+
+        Reviewed by Allan Sandfeld Jensen.
+        
+        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.
+
 2013-04-05  Bear Travis  <[email protected]>
 
         [css exclusions] Dynamically removing shape-inside should cause relayout of child blocks' inline content

Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (147758 => 147759)


--- trunk/Source/WebCore/rendering/RenderLayer.cpp	2013-04-05 17:30:27 UTC (rev 147758)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp	2013-04-05 17:36:12 UTC (rev 147759)
@@ -178,7 +178,6 @@
 #if !ASSERT_DISABLED
     , m_layerListMutationAllowed(true)
 #endif
-    , m_canSkipRepaintRectsUpdateOnScroll(renderer->isTableCell())
 #if ENABLE(CSS_FILTERS)
     , m_hasFilterInfo(false)
 #endif
@@ -774,14 +773,13 @@
         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 {
         // Check that our cached rects are correct.
-        // FIXME: re-enable these assertions when the issue with table cells is resolved: https://bugs.webkit.org/show_bug.cgi?id=103432
-        // ASSERT(m_repaintRect == renderer()->clippedOverflowRectForRepaint(renderer()->containerForRepaint()));
-        // ASSERT(m_outlineBox == renderer()->outlineBoundsForRepaint(renderer()->containerForRepaint(), geometryMap));
+        ASSERT(m_repaintRect == renderer()->clippedOverflowRectForRepaint(renderer()->containerForRepaint()));
+        ASSERT(m_outlineBox == renderer()->outlineBoundsForRepaint(renderer()->containerForRepaint(), geometryMap));
     }
     
     for (RenderLayer* child = firstChild(); child; child = child->nextSibling())

Modified: trunk/Source/WebCore/rendering/RenderLayer.h (147758 => 147759)


--- trunk/Source/WebCore/rendering/RenderLayer.h	2013-04-05 17:30:27 UTC (rev 147758)
+++ trunk/Source/WebCore/rendering/RenderLayer.h	2013-04-05 17:36:12 UTC (rev 147759)
@@ -1207,10 +1207,6 @@
 #if !ASSERT_DISABLED
     bool m_layerListMutationAllowed : 1;
 #endif
-    // This is an optimization added for <table>.
-    // 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;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to