Index: third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc |
diff --git a/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc |
index 2f108e1c039b1b000f73d21da54b39857489a291..67efa0412ba77cbfcd3f1c57e11c738efadfc3e7 100644 |
--- a/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc |
+++ b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc |
@@ -43,9 +43,10 @@ RefPtr<NGConstraintSpace> CreateConstraintSpaceForFloat( |
.ToConstraintSpace(FromPlatformWritingMode(style.GetWritingMode())); |
} |
-NGLogicalOffset GetOriginPointForFloats(const NGConstraintSpace& space, |
- LayoutUnit content_size) { |
- NGLogicalOffset origin_point = space.BfcOffset(); |
+NGLogicalOffset GetOriginPointForFloats( |
+ const NGLogicalOffset& container_bfc_offset, |
+ LayoutUnit content_size) { |
+ NGLogicalOffset origin_point = container_bfc_offset; |
origin_point.block_offset += content_size; |
return origin_point; |
} |
@@ -295,7 +296,7 @@ bool NGInlineLayoutAlgorithm::CreateLineUpToLastBreakOpportunity() { |
#endif |
NGLogicalOffset origin_point = |
- GetOriginPointForFloats(ConstraintSpace(), content_size_); |
+ GetOriginPointForFloats(ContainerBfcOffset(), content_size_); |
PositionPendingFloats(origin_point.block_offset, &container_builder_, |
MutableConstraintSpace()); |
FindNextLayoutOpportunity(); |
@@ -375,16 +376,16 @@ void NGInlineLayoutAlgorithm::LayoutAndPositionFloat( |
ToNGPhysicalBoxFragment(layout_result->PhysicalFragment().Get())); |
NGLogicalOffset origin_offset = |
- GetOriginPointForFloats(ConstraintSpace(), content_size_); |
- NGLogicalOffset from_offset = ConstraintSpace().BfcOffset(); |
+ GetOriginPointForFloats(ContainerBfcOffset(), content_size_); |
const ComputedStyle& float_style = node->Style(); |
NGBoxStrut margins = ComputeMargins(ConstraintSpace(), float_style, |
ConstraintSpace().WritingMode(), |
ConstraintSpace().Direction()); |
RefPtr<NGFloatingObject> floating_object = NGFloatingObject::Create( |
float_style, float_space->WritingMode(), current_opportunity_.size, |
- origin_offset, from_offset, margins, |
+ origin_offset, ContainerBfcOffset(), margins, |
layout_result->PhysicalFragment().Get()); |
+ floating_object->parent_bfc_block_offset = ContainerBfcOffset().block_offset; |
bool float_does_not_fit = end_position + float_fragment.InlineSize() > |
current_opportunity_.InlineSize(); |