Index: third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp |
diff --git a/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp b/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp |
index 3cf9c29073131c37b32e3e797e6b6b4b05d36186..e595ef03b990b9278112bd838c9a1d6f5a2c759e 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp |
+++ b/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp |
@@ -976,14 +976,23 @@ const LayoutObject* LayoutBoxModelObject::pushMappingToContainer(const LayoutBox |
LayoutSize containerOffset = offsetFromContainer(container, LayoutPoint(), &offsetDependsOnPoint); |
bool preserve3D = container->style()->preserves3D() || style()->preserves3D(); |
+ GeometryInfoFlags flags = 0; |
+ if (preserve3D) |
+ flags |= AccumulatingTransform; |
+ if (offsetDependsOnPoint) |
+ flags |= IsNonUniform; |
+ if (isFixedPos) |
+ flags |= IsFixedPosition; |
+ if (hasTransform) |
+ flags |= HasTransform; |
if (shouldUseTransformFromContainer(container)) { |
TransformationMatrix t; |
getTransformFromContainer(container, containerOffset, t); |
t.translateRight(adjustmentForSkippedAncestor.width().toFloat(), adjustmentForSkippedAncestor.height().toFloat()); |
- geometryMap.push(this, t, preserve3D, offsetDependsOnPoint, isFixedPos, hasTransform); |
+ geometryMap.push(this, t, flags); |
} else { |
containerOffset += adjustmentForSkippedAncestor; |
- geometryMap.push(this, containerOffset, preserve3D, offsetDependsOnPoint, isFixedPos, hasTransform); |
+ geometryMap.push(this, containerOffset, flags); |
} |
return ancestorSkipped ? ancestorToStopAt : container; |