Chromium Code Reviews| 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 3e727a9fa52cdbbc5555336d773a389605033895..67c1c3647d5e8f310e76be282c099d4e1f4bd8b0 100644 |
| --- a/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp |
| +++ b/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp |
| @@ -805,12 +805,20 @@ static IntRect clipBox(LayoutBox& layoutObject) { |
| static LayoutPoint computeOffsetFromCompositedAncestor( |
| const PaintLayer* layer, |
| - const PaintLayer* compositedAncestor) { |
| - LayoutPoint offset = layer->visualOffsetFromAncestor(compositedAncestor); |
| + const PaintLayer* compositedAncestor, |
| + const LayoutPoint offsetFromPaintLayer) { |
|
trchen
2017/03/09 23:41:16
const LayoutPoint localRepresentativePointForFragm
chrishtr
2017/03/10 01:50:04
Done.
|
| + // Add in the offset of the composited bounds from the coordinate space of |
| + // the PaintLayer, since visualOffsetFromAncestor() requires the pre-offset |
| + // input to be in the space of the PaintLayer. We also need to add in this |
| + // offset before computation of visualOffsetFromAncestor(), because it affects |
| + // fragmentation offset if compositedAncestor crosses a pagination boundary. |
|
trchen
2017/03/09 23:41:16
// Currently visual fragmentation for composited l
chrishtr
2017/03/10 01:50:04
Done.
|
| + LayoutPoint offset = |
| + layer->visualOffsetFromAncestor(compositedAncestor, offsetFromPaintLayer); |
| if (compositedAncestor) |
| offset.move(compositedAncestor->compositedLayerMapping() |
| ->owningLayer() |
| .subpixelAccumulation()); |
| + offset.moveBy(-offsetFromPaintLayer); |
| return offset; |
| } |
| @@ -821,8 +829,8 @@ void CompositedLayerMapping::computeBoundsOfOwningLayer( |
| LayoutPoint& offsetFromCompositedAncestor, |
| IntPoint& snappedOffsetFromCompositedAncestor) { |
| LayoutRect localRawCompositingBounds = compositedBounds(); |
| - offsetFromCompositedAncestor = |
| - computeOffsetFromCompositedAncestor(&m_owningLayer, compositedAncestor); |
| + offsetFromCompositedAncestor = computeOffsetFromCompositedAncestor( |
| + &m_owningLayer, compositedAncestor, localRawCompositingBounds.location()); |
| snappedOffsetFromCompositedAncestor = |
| IntPoint(offsetFromCompositedAncestor.x().round(), |
| offsetFromCompositedAncestor.y().round()); |