Index: third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp |
diff --git a/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp b/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp |
index b8440dc009530511a66b0bc3962c79e57523656f..d61ec02d198ed490b539551d63177555d9def36d 100644 |
--- a/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp |
+++ b/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp |
@@ -2191,7 +2191,7 @@ static void paintScrollbar(const Scrollbar* scrollbar, GraphicsContext& context, |
// cc::DisplayListRecordingSource::UpdateAndExpandInvalidation() before we keep only one copy of the algorithm. |
static const int kPixelDistanceToRecord = 4000; |
-IntRect CompositedLayerMapping::computeInterestRect(const GraphicsLayer* graphicsLayer, LayoutObject* owningLayoutObject) |
+IntRect CompositedLayerMapping::recomputeInterestRect(const GraphicsLayer* graphicsLayer, LayoutObject* owningLayoutObject) |
{ |
FloatRect graphicsLayerBounds(FloatPoint(), graphicsLayer->size()); |
@@ -2256,33 +2256,23 @@ bool CompositedLayerMapping::interestRectChangedEnoughToRepaint(const IntRect& p |
return false; |
} |
-void CompositedLayerMapping::paintContents(const GraphicsLayer* graphicsLayer, GraphicsContext& context, GraphicsLayerPaintingPhase graphicsLayerPaintingPhase, const IntRect* interestRect) const |
+IntRect CompositedLayerMapping::computeInterestRect(const GraphicsLayer* graphicsLayer, const IntRect& previousInterestRect) const |
{ |
- IntRect defaultInterestRect; |
- if (RuntimeEnabledFeatures::slimmingPaintSynchronizedPaintingEnabled()) { |
- if (!interestRect) { |
- if (graphicsLayer == m_graphicsLayer || graphicsLayer == m_squashingLayer) |
- defaultInterestRect = computeInterestRect(graphicsLayer, m_owningLayer.layoutObject()); |
- else |
- defaultInterestRect = enclosingIntRect(FloatRect(FloatPoint(), graphicsLayer->size())); |
- interestRect = &defaultInterestRect; |
- } |
- |
- if (!m_owningLayer.needsRepaint() |
- && !context.paintController().cacheIsEmpty() |
- && !interestRectChangedEnoughToRepaint(m_previousPaintInterestRect, *interestRect, expandedIntSize(graphicsLayer->size()))) { |
- context.paintController().createAndAppend<CachedDisplayItem>(*this, DisplayItem::CachedDisplayItemList); |
- return; |
- } |
+ if (graphicsLayer != m_graphicsLayer && graphicsLayer != m_squashingLayer) |
+ return IntRect(IntPoint(), expandedIntSize(graphicsLayer->size())); |
- m_previousPaintInterestRect = *interestRect; |
- } |
+ IntRect newInterestRect = recomputeInterestRect(graphicsLayer, m_owningLayer.layoutObject()); |
+ if (interestRectChangedEnoughToRepaint(previousInterestRect, newInterestRect, expandedIntSize(graphicsLayer->size()))) |
+ return newInterestRect; |
+ return previousInterestRect; |
+} |
- ASSERT(interestRect); |
- paintContentsInternal(graphicsLayer, context, graphicsLayerPaintingPhase, *interestRect); |
+bool CompositedLayerMapping::needsRepaint() const |
+{ |
+ return m_owningLayer.needsRepaint(); |
} |
-void CompositedLayerMapping::paintContentsInternal(const GraphicsLayer* graphicsLayer, GraphicsContext& context, GraphicsLayerPaintingPhase graphicsLayerPaintingPhase, const IntRect& interestRect) const |
+void CompositedLayerMapping::paintContents(const GraphicsLayer* graphicsLayer, GraphicsContext& context, GraphicsLayerPaintingPhase graphicsLayerPaintingPhase, const IntRect& interestRect) const |
{ |
// https://code.google.com/p/chromium/issues/detail?id=343772 |
DisableCompositingQueryAsserts disabler; |
@@ -2481,7 +2471,7 @@ void CompositedLayerMapping::finishAccumulatingSquashingLayers(size_t nextSquash |
} |
} |
-String CompositedLayerMapping::debugName(const GraphicsLayer* graphicsLayer) |
+String CompositedLayerMapping::debugName(const GraphicsLayer* graphicsLayer) const |
{ |
String name; |
if (graphicsLayer == m_graphicsLayer.get()) { |