Chromium Code Reviews| 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; |