| 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 9187b0ba9ed49a9d287c91a905c75cd46244f9a0..d2c6482570698795e66b8680a05298d740f678d6 100644
|
| --- a/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp
|
| +++ b/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp
|
| @@ -2030,7 +2030,9 @@ struct SetContentsNeedsDisplayInRectFunctor {
|
| // r is in the coordinate space of the layer's layout object
|
| void CompositedLayerMapping::setContentsNeedDisplayInRect(const LayoutRect& r, PaintInvalidationReason invalidationReason)
|
| {
|
| - ASSERT(!RuntimeEnabledFeatures::slimmingPaintSynchronizedPaintingEnabled());
|
| + // TODO(wangxianzhu): Enable the following assert after paint invalidation for spv2 is ready.
|
| + // ASSERT(!RuntimeEnabledFeatures::slimmingPaintV2Enabled());
|
| +
|
| SetContentsNeedsDisplayInRectFunctor functor = {
|
| enclosingIntRect(LayoutRect(r.location() + m_owningLayer.subpixelAccumulation(), r.size())),
|
| invalidationReason
|
| @@ -2038,18 +2040,33 @@ void CompositedLayerMapping::setContentsNeedDisplayInRect(const LayoutRect& r, P
|
| ApplyToGraphicsLayers(this, functor, ApplyToContentLayers);
|
| }
|
|
|
| -void CompositedLayerMapping::invalidateDisplayItemClient(const DisplayItemClientWrapper& displayItemClient, PaintInvalidationReason paintInvalidationReason, const LayoutRect& previousPaintInvalidationRect, const LayoutRect& newPaintInvalidationRect)
|
| +struct InvalidateDisplayItemClientFunctor {
|
| + void operator() (GraphicsLayer* layer) const
|
| + {
|
| + IntRect visibleContentRectOnLayer;
|
| + if (visibleContentRect) {
|
| + visibleContentRectOnLayer = enclosingIntRect(LayoutRect(visibleContentRect->location() + subpixelAccumulation, visibleContentRect->size()));
|
| + visibleContentRectOnLayer.move(-layer->offsetFromLayoutObject());
|
| + }
|
| + layer->invalidateDisplayItemClient(displayItemClient, invalidationReason, visibleContentRect ? &visibleContentRectOnLayer : nullptr);
|
| + }
|
| +
|
| + const DisplayItemClientWrapper& displayItemClient;
|
| + PaintInvalidationReason invalidationReason;
|
| + const LayoutRect* visibleContentRect;
|
| + LayoutSize subpixelAccumulation;
|
| +};
|
| +
|
| +void CompositedLayerMapping::invalidateDisplayItemClient(const DisplayItemClientWrapper& displayItemClient, PaintInvalidationReason paintInvalidationReason, const LayoutRect* visibleContentRect)
|
| {
|
| - ApplyToGraphicsLayers(this, [&displayItemClient, paintInvalidationReason, previousPaintInvalidationRect, newPaintInvalidationRect](GraphicsLayer* layer) {
|
| - layer->invalidateDisplayItemClient(displayItemClient, paintInvalidationReason, enclosingIntRect(previousPaintInvalidationRect), enclosingIntRect(newPaintInvalidationRect));
|
| - }, ApplyToContentLayers);
|
| + InvalidateDisplayItemClientFunctor functor = { displayItemClient, paintInvalidationReason, visibleContentRect, m_owningLayer.subpixelAccumulation() };
|
| + ApplyToGraphicsLayers(this, functor, ApplyToContentLayers);
|
| }
|
|
|
| -void CompositedLayerMapping::invalidateDisplayItemClientOnScrollingContentsLayer(const DisplayItemClientWrapper& displayItemClient, PaintInvalidationReason paintInvalidationReason, const LayoutRect& previousPaintInvalidationRect, const LayoutRect& newPaintInvalidationRect)
|
| +void CompositedLayerMapping::invalidateDisplayItemClientOnScrollingContentsLayer(const DisplayItemClientWrapper& displayItemClient, PaintInvalidationReason paintInvalidationReason, const LayoutRect* visibleContentRect)
|
| {
|
| - ApplyToGraphicsLayers(this, [&displayItemClient, paintInvalidationReason, previousPaintInvalidationRect, newPaintInvalidationRect](GraphicsLayer* layer) {
|
| - layer->invalidateDisplayItemClient(displayItemClient, paintInvalidationReason, enclosingIntRect(previousPaintInvalidationRect), enclosingIntRect(newPaintInvalidationRect));
|
| - }, ApplyToScrollingContentsLayer);
|
| + InvalidateDisplayItemClientFunctor functor = { displayItemClient, paintInvalidationReason, visibleContentRect, m_owningLayer.subpixelAccumulation() };
|
| + ApplyToGraphicsLayers(this, functor, ApplyToScrollingContentsLayer);
|
| }
|
|
|
| const GraphicsLayerPaintInfo* CompositedLayerMapping::containingSquashedLayer(const LayoutObject* layoutObject, const Vector<GraphicsLayerPaintInfo>& layers, unsigned maxSquashedLayerIndex)
|
|
|