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

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

Issue 160903002: Move RenderLayer repainting to repaint-after-layout framework. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink@master
Patch Set: Created 6 years, 10 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
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;
}

Powered by Google App Engine
This is Rietveld 408576698