Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1158)

Unified Diff: Source/core/rendering/RenderLayerRepainter.cpp

Issue 202433003: Fix NeedsFullRepaintForPositionedMovementLayout (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Added some more rebaseline Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/rendering/RenderLayerRepainter.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/rendering/RenderLayerRepainter.cpp
diff --git a/Source/core/rendering/RenderLayerRepainter.cpp b/Source/core/rendering/RenderLayerRepainter.cpp
index 7381c8ead3d057e6ad69727147d623d550c222a8..141d303d802851ee0aca4d1b0bb7a6d7cd5cb6cc 100644
--- a/Source/core/rendering/RenderLayerRepainter.cpp
+++ b/Source/core/rendering/RenderLayerRepainter.cpp
@@ -74,6 +74,7 @@ void RenderLayerRepainter::repaintAfterLayout(RenderGeometryMap* geometryMap, bo
LayoutRect oldRepaintRect = m_repaintRect;
LayoutRect oldOutlineBox = m_outlineBox;
computeRepaintRects(repaintContainer, geometryMap);
+ shouldCheckForRepaint &= shouldRepaintLayer();
// FIXME: Should ASSERT that value calculated for m_outlineBox using the cached offset is the same
// as the value not using the cached offset, but we can't due to https://bugs.webkit.org/show_bug.cgi?id=37048
@@ -83,7 +84,7 @@ void RenderLayerRepainter::repaintAfterLayout(RenderGeometryMap* geometryMap, bo
m_renderer->repaintUsingContainer(repaintContainer, pixelSnappedIntRect(oldRepaintRect));
if (m_repaintRect != oldRepaintRect)
m_renderer->repaintUsingContainer(repaintContainer, pixelSnappedIntRect(m_repaintRect));
- } else if (shouldRepaintAfterLayout()) {
+ } else {
m_renderer->repaintAfterLayoutIfNeeded(repaintContainer, m_renderer->selfNeedsLayout(), oldRepaintRect, oldOutlineBox, &m_repaintRect, &m_outlineBox);
}
}
@@ -121,14 +122,13 @@ void RenderLayerRepainter::computeRepaintRectsIncludingDescendants()
layer->repainter().computeRepaintRectsIncludingDescendants();
}
-inline bool RenderLayerRepainter::shouldRepaintAfterLayout() const
+inline bool RenderLayerRepainter::shouldRepaintLayer() const
{
- if (m_repaintStatus == NeedsNormalRepaint)
+ if (m_repaintStatus != NeedsFullRepaintForPositionedMovementLayout)
return true;
// Composited layers that were moved during a positioned movement only
// layout, don't need to be repainted. They just need to be recomposited.
- ASSERT(m_repaintStatus == NeedsFullRepaintForPositionedMovementLayout);
return m_renderer->compositingState() != PaintsIntoOwnBacking;
}
« no previous file with comments | « Source/core/rendering/RenderLayerRepainter.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698