Commit 0e87999f authored by Aleks Totic's avatar Aleks Totic Committed by Commit Bot

[LayoutNG] Constraint space should respect OverrideContainingBlockWidth/Height

Easy win, additional 72 tests pass.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I4c77bafcbce24245bac482c3fb3afe1f064e6f1c
Reviewed-on: https://chromium-review.googlesource.com/1014325
Commit-Queue: Aleks Totic <atotic@chromium.org>
Reviewed-by: default avatarChristian Biesinger <cbiesinger@chromium.org>
Reviewed-by: default avatarIan Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#551177}
parent 74c38a06
...@@ -94,22 +94,41 @@ scoped_refptr<NGConstraintSpace> NGConstraintSpace::CreateFromLayoutObject( ...@@ -94,22 +94,41 @@ scoped_refptr<NGConstraintSpace> NGConstraintSpace::CreateFromLayoutObject(
bool fixed_inline = false, fixed_block = false; bool fixed_inline = false, fixed_block = false;
LayoutUnit available_logical_width; LayoutUnit available_logical_width;
if (parallel_containing_block) if (parallel_containing_block &&
available_logical_width = box.ContainingBlockLogicalWidthForContent(); box.HasOverrideContainingBlockLogicalWidth()) {
else // Grid layout sets OverrideContainingBlockLogicalWidth|Height
available_logical_width = box.PerpendicularContainingBlockLogicalHeight(); available_logical_width = box.OverrideContainingBlockContentLogicalWidth();
} else if (!parallel_containing_block &&
box.HasOverrideContainingBlockLogicalHeight()) {
available_logical_width = box.OverrideContainingBlockContentLogicalHeight();
} else {
if (parallel_containing_block)
available_logical_width = box.ContainingBlockLogicalWidthForContent();
else
available_logical_width = box.PerpendicularContainingBlockLogicalHeight();
}
available_logical_width = std::max(LayoutUnit(), available_logical_width); available_logical_width = std::max(LayoutUnit(), available_logical_width);
LayoutUnit available_logical_height; LayoutUnit available_logical_height;
if (!box.Parent()) { if (parallel_containing_block &&
available_logical_height = box.View()->ViewLogicalHeightForPercentages(); box.HasOverrideContainingBlockLogicalHeight()) {
} else if (box.ContainingBlock()) { // Grid layout sets OverrideContainingBlockLogicalWidth|Height
if (parallel_containing_block) { available_logical_height =
available_logical_height = box.OverrideContainingBlockContentLogicalHeight();
box.ContainingBlock() } else if (!parallel_containing_block &&
->AvailableLogicalHeightForPercentageComputation(); box.HasOverrideContainingBlockLogicalWidth()) {
} else { available_logical_height = box.OverrideContainingBlockContentLogicalWidth();
available_logical_height = box.ContainingBlockLogicalWidthForContent(); } else {
if (!box.Parent()) {
available_logical_height = box.View()->ViewLogicalHeightForPercentages();
} else if (box.ContainingBlock()) {
if (parallel_containing_block) {
available_logical_height =
box.ContainingBlock()
->AvailableLogicalHeightForPercentageComputation();
} else {
available_logical_height = box.ContainingBlockLogicalWidthForContent();
}
} }
} }
NGLogicalSize percentage_size = {available_logical_width, NGLogicalSize percentage_size = {available_logical_width,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment