Chromium Code Reviews| Index: Source/core/rendering/RenderLayer.cpp |
| diff --git a/Source/core/rendering/RenderLayer.cpp b/Source/core/rendering/RenderLayer.cpp |
| index e6b18c4f83ae8eb1f6082941673178bdc7cafd5f..5b1b46cae03fa623fc8982d61d9b09b9b20db19e 100644 |
| --- a/Source/core/rendering/RenderLayer.cpp |
| +++ b/Source/core/rendering/RenderLayer.cpp |
| @@ -65,6 +65,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" |
| @@ -470,6 +471,8 @@ void RenderLayer::updateLayerPositionsAfterOverflowScroll() |
| void RenderLayer::updateLayerPositionsAfterScroll(RenderGeometryMap* geometryMap, UpdateLayerPositionsAfterScrollFlags flags) |
| { |
| + LayoutRectRecorder recorder(*m_renderer); |
|
Julien - ping for review
2014/02/14 18:05:48
This seems too heavy handed (but we could leave wi
dsinclair
2014/02/14 18:15:27
It's possible this isn't needed at all. I've been
|
| + |
| // FIXME: This shouldn't be needed, but there are some corner cases where |
| // these flags are still dirty. Update so that the check below is valid. |
| updateDescendantDependentFlags(); |
| @@ -712,6 +715,7 @@ void RenderLayer::setHasVisibleContent() |
| return; |
| } |
| + LayoutRectRecorder recorder(*m_renderer); |
|
Julien - ping for review
2014/02/14 18:05:48
I wouldn't expect changing visible content (mostly
dsinclair
2014/02/14 18:15:27
So, the reason I did this here is because I'm curr
|
| m_visibleContentStatusDirty = false; |
| m_hasVisibleContent = true; |
| repainter().computeRepaintRects(renderer()->containerForRepaint()); |
| @@ -1456,7 +1460,10 @@ 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); |
| current->updateLayerPositions(0); // FIXME: use geometry map. |
| current = next; |
| } |