Chromium Code Reviews| Index: third_party/WebKit/Source/core/layout/LayoutObject.cpp |
| diff --git a/third_party/WebKit/Source/core/layout/LayoutObject.cpp b/third_party/WebKit/Source/core/layout/LayoutObject.cpp |
| index 22a31999a0631cfd3d6b81222a611cbd7168140b..4f842f54b34306a39f5cf9c0abdb520d3a9d3c31 100644 |
| --- a/third_party/WebKit/Source/core/layout/LayoutObject.cpp |
| +++ b/third_party/WebKit/Source/core/layout/LayoutObject.cpp |
| @@ -2302,15 +2302,16 @@ void LayoutObject::GetTransformFromContainer( |
| const LayoutSize& offset_in_container, |
| TransformationMatrix& transform) const { |
| transform.MakeIdentity(); |
| - transform.Translate(offset_in_container.Width().ToFloat(), |
| - offset_in_container.Height().ToFloat()); |
| PaintLayer* layer = HasLayer() ? ToLayoutBoxModelObject(this)->Layer() : 0; |
| if (layer && layer->Transform()) |
| transform.Multiply(layer->CurrentTransform()); |
| + transform.TranslateRight(offset_in_container.Width().ToFloat(), |
|
chrishtr
2017/04/10 19:37:35
I can't come up with a case where the change here
trchen
2017/04/10 21:15:18
The code here is equivalent. See explanation above
chrishtr
2017/04/10 21:38:28
Ok.
|
| + offset_in_container.Height().ToFloat()); |
| + |
| if (container_object && container_object->HasLayer() && |
| container_object->Style()->HasPerspective()) { |
| - // Perpsective on the container affects us, so we have to factor it in here. |
| + // Perspective on the container affects us, so we have to factor it in here. |
| DCHECK(container_object->HasLayer()); |
| FloatPoint perspective_origin = |
| ToLayoutBoxModelObject(container_object)->Layer()->PerspectiveOrigin(); |
| @@ -2318,12 +2319,11 @@ void LayoutObject::GetTransformFromContainer( |
| TransformationMatrix perspective_matrix; |
| perspective_matrix.ApplyPerspective( |
| container_object->Style()->Perspective()); |
| + perspective_matrix.ApplyTransformOrigin(perspective_origin.X(), |
| + perspective_origin.Y(), 0); |
| - transform.TranslateRight3d(-perspective_origin.X(), -perspective_origin.Y(), |
| - 0); |
| + // TODO(chrishtr): This applies perspective before the transform. Why? |
|
trchen
2017/04/10 21:15:19
This lgtm. It's TransformationMatrix.h lbtm. :/
chrishtr
2017/04/10 21:38:28
Removed the comment.
|
| transform = perspective_matrix * transform; |
| - transform.TranslateRight3d(perspective_origin.X(), perspective_origin.Y(), |
| - 0); |
| } |
| } |