Index: Source/core/rendering/RenderLayer.cpp |
diff --git a/Source/core/rendering/RenderLayer.cpp b/Source/core/rendering/RenderLayer.cpp |
index 512b4828f3961fc5612afcd8233161d04854eaad..4a779407260689dd658738289b02f2799baaf019 100644 |
--- a/Source/core/rendering/RenderLayer.cpp |
+++ b/Source/core/rendering/RenderLayer.cpp |
@@ -64,6 +64,7 @@ |
#include "core/rendering/HitTestRequest.h" |
#include "core/rendering/HitTestResult.h" |
#include "core/rendering/HitTestingTransformState.h" |
+#include "core/rendering/LayoutRectRecorder.h" |
#include "core/rendering/RenderFlowThread.h" |
#include "core/rendering/RenderGeometryMap.h" |
#include "core/rendering/RenderInline.h" |
@@ -496,6 +497,10 @@ void RenderLayer::updateLayerPositionsAfterScroll(RenderGeometryMap* geometryMap |
if (flags & HasSeenViewportConstrainedAncestor |
|| (flags & IsOverflowScroll && flags & HasSeenAncestorWithOverflowClip && !m_canSkipRepaintRectsUpdateOnScroll)) { |
+ // FIXME: This may not be needed. Once repaint-after-layout isn't |
+ // under-painting for layer's we should see if this can be removed. |
+ LayoutRectRecorder recorder(*m_renderer); |
+ |
// FIXME: Remove incremental compositing updates after fixing the chicken/egg issues |
// https://code.google.com/p/chromium/issues/detail?id=343756 |
DisableCompositingQueryAsserts disabler; |
@@ -923,6 +928,9 @@ bool RenderLayer::updateLayerPosition() |
{ |
LayoutPoint localPoint; |
LayoutSize inlineBoundingBoxOffset; // We don't put this into the RenderLayer x/y for inlines, so we need to subtract it out when done. |
+ |
+ LayoutRectRecorder recorder(*m_renderer); |
Julien - ping for review
2014/03/04 18:22:10
This shouldn't be needed and *will* cause over-inv
dsinclair
2014/03/04 19:21:52
That should be fine as it checks if newBounds == o
|
+ |
if (renderer()->isInline() && renderer()->isRenderInline()) { |
RenderInline* inlineFlow = toRenderInline(renderer()); |
IntRect lineBox = inlineFlow->linesBoundingBox(); |
@@ -1466,7 +1474,11 @@ void RenderLayer::removeOnlyThisLayer() |
RenderLayer* next = current->nextSibling(); |
removeChild(current); |
m_parent->addChild(current, nextSib); |
- current->repainter().setRepaintStatus(NeedsFullRepaint); |
+ |
+ if (RuntimeEnabledFeatures::repaintAfterLayoutEnabled()) |
+ current->renderer()->setShouldDoFullRepaintAfterLayout(true); |
+ else |
+ current->repainter().setRepaintStatus(NeedsFullRepaint); |
// Hits in compositing/overflow/automatically-opt-into-composited-scrolling-part-1.html |
DisableCompositingQueryAsserts disabler; |