| Index: Source/core/rendering/compositing/CompositedLayerMapping.cpp
|
| diff --git a/Source/core/rendering/compositing/CompositedLayerMapping.cpp b/Source/core/rendering/compositing/CompositedLayerMapping.cpp
|
| index 9203eb561848719d29b7520cbed32a92cd9b371a..c2d15b716ff74d0aa319f1af1b85c0df5dc9608e 100644
|
| --- a/Source/core/rendering/compositing/CompositedLayerMapping.cpp
|
| +++ b/Source/core/rendering/compositing/CompositedLayerMapping.cpp
|
| @@ -594,28 +594,27 @@ void CompositedLayerMapping::updateSquashingLayerGeometry(const LayoutPoint& off
|
| // The conversion between referenceLayer and the ancestor CLM is already computed as
|
| // offsetFromReferenceLayerToParentGraphicsLayer.
|
| totalSquashBounds.moveBy(offsetFromReferenceLayerToParentGraphicsLayer);
|
| - IntRect squashLayerBounds = enclosingIntRect(totalSquashBounds);
|
| - IntPoint squashLayerOrigin = squashLayerBounds.location();
|
| - LayoutSize squashLayerOriginInOwningLayerSpace = squashLayerOrigin - offsetFromReferenceLayerToParentGraphicsLayer;
|
| + const IntRect squashLayerBounds = enclosingIntRect(totalSquashBounds);
|
| + const IntPoint squashLayerOrigin = squashLayerBounds.location();
|
| + const LayoutSize squashLayerOriginInOwningLayerSpace = squashLayerOrigin - offsetFromReferenceLayerToParentGraphicsLayer;
|
|
|
| // Now that the squashing bounds are known, we can convert the RenderLayer painting offsets
|
| // from CLM owning layer space to the squashing layer space.
|
| //
|
| // The painting offset we want to compute for each squashed RenderLayer is essentially the position of
|
| - // the squashed RenderLayer described w.r.t. referenceLayer's origin. For this purpose we already cached
|
| - // offsetFromSquashingCLM before, which describes where the squashed RenderLayer is located w.r.t.
|
| - // referenceLayer. So we just need to convert that point from referenceLayer space to referenceLayer
|
| + // the squashed RenderLayer described w.r.t. referenceLayer's origin.
|
| + // So we just need to convert that point from referenceLayer space to the squashing layer's
|
| // space. This is simply done by subtracing squashLayerOriginInOwningLayerSpace, but then the offset
|
| // overall needs to be negated because that's the direction that the painting code expects the
|
| // offset to be.
|
| for (size_t i = 0; i < layers.size(); ++i) {
|
| - LayoutPoint offsetFromTransformedAncestorForSquashedLayer = layers[i].renderLayer->computeOffsetFromTransformedAncestor();
|
| - LayoutSize offsetFromSquashLayerOrigin = (offsetFromTransformedAncestorForSquashedLayer - referenceOffsetFromTransformedAncestor) - squashLayerOriginInOwningLayerSpace;
|
| + const LayoutPoint offsetFromTransformedAncestorForSquashedLayer = layers[i].renderLayer->computeOffsetFromTransformedAncestor();
|
| + const LayoutSize offsetFromSquashLayerOrigin = (offsetFromTransformedAncestorForSquashedLayer - referenceOffsetFromTransformedAncestor) - squashLayerOriginInOwningLayerSpace;
|
|
|
| - // It is ok to issue paint invalidation here, because all of the geometry needed to correctly invalidate paint is computed by this point.
|
| IntSize newOffsetFromRenderer = -IntSize(offsetFromSquashLayerOrigin.width().round(), offsetFromSquashLayerOrigin.height().round());
|
| LayoutSize subpixelAccumulation = offsetFromSquashLayerOrigin + newOffsetFromRenderer;
|
| if (layers[i].offsetFromRendererSet && layers[i].offsetFromRenderer != newOffsetFromRenderer) {
|
| + // It is ok to issue paint invalidation here, because all of the geometry needed to correctly invalidate paint is computed by this point.
|
| layers[i].renderLayer->renderer()->invalidatePaintIncludingNonCompositingDescendants();
|
|
|
| TRACE_LAYER_INVALIDATION(layers[i].renderLayer, InspectorLayerInvalidationTrackingEvent::SquashingLayerGeometryWasUpdated);
|
|
|