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; |
} |