| Index: Source/core/paint/DeprecatedPaintLayer.cpp
|
| diff --git a/Source/core/paint/DeprecatedPaintLayer.cpp b/Source/core/paint/DeprecatedPaintLayer.cpp
|
| index d8f03d090fff07c17154f39b873ce0696a9e52cc..592d299bfe0b85a9645028f6a3dfbdab04e6ffd6 100644
|
| --- a/Source/core/paint/DeprecatedPaintLayer.cpp
|
| +++ b/Source/core/paint/DeprecatedPaintLayer.cpp
|
| @@ -1166,7 +1166,8 @@ LayoutRect DeprecatedPaintLayer::transparencyClipBox(const DeprecatedPaintLayer*
|
| IntPoint pixelSnappedDelta = roundedIntPoint(delta);
|
| TransformationMatrix transform;
|
| transform.translate(pixelSnappedDelta.x(), pixelSnappedDelta.y());
|
| - transform = transform * *layer->transform();
|
| + if (layer->transform())
|
| + transform = transform * *layer->transform();
|
|
|
| // We don't use fragment boxes when collecting a transformed layer's bounding box, since it always
|
| // paints unfragmented.
|
| @@ -2488,7 +2489,7 @@ LayoutRect DeprecatedPaintLayer::boundingBoxForCompositing(const DeprecatedPaint
|
| result.expand(m_layoutObject->style()->filterOutsets());
|
| }
|
|
|
| - if (paintsWithTransform(PaintBehaviorNormal) || (options == ApplyBoundsChickenEggHacks && transform()))
|
| + if (transform() && (paintsWithTransform(PaintBehaviorNormal) || options == ApplyBoundsChickenEggHacks))
|
| result = transform()->mapRect(result);
|
|
|
| if (enclosingPaginationLayer()) {
|
| @@ -2610,7 +2611,7 @@ bool DeprecatedPaintLayer::hasCompositedClippingMask() const
|
|
|
| bool DeprecatedPaintLayer::paintsWithTransform(PaintBehavior paintBehavior) const
|
| {
|
| - return transform() && ((paintBehavior & PaintBehaviorFlattenCompositingLayers) || compositingState() != PaintsIntoOwnBacking);
|
| + return (transform() || layoutObject()->style()->position() == FixedPosition) && ((paintBehavior & PaintBehaviorFlattenCompositingLayers) || compositingState() != PaintsIntoOwnBacking);
|
| }
|
|
|
| bool DeprecatedPaintLayer::backgroundIsKnownToBeOpaqueInRect(const LayoutRect& localRect) const
|
|
|