Index: third_party/WebKit/Source/core/layout/LayoutTable.cpp |
diff --git a/third_party/WebKit/Source/core/layout/LayoutTable.cpp b/third_party/WebKit/Source/core/layout/LayoutTable.cpp |
index c792917d29ab20c6786f14e074ef0461765cda50..c852e53bf8dcbdff4d0517b193c6d08e65c8d1a0 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutTable.cpp |
+++ b/third_party/WebKit/Source/core/layout/LayoutTable.cpp |
@@ -292,7 +292,13 @@ void LayoutTable::updateLogicalWidth() |
availableContentLogicalWidth = shrinkLogicalWidthToAvoidFloats(marginStart, marginEnd, toLayoutBlockFlow(cb)); |
// Ensure we aren't bigger than our available width. |
- setLogicalWidth(LayoutUnit(std::min(availableContentLogicalWidth, maxPreferredLogicalWidth()).floor())); |
+ LayoutUnit maxWidth = maxPreferredLogicalWidth(); |
+ // scaledWidthFromPercentColumns depends on m_layoutStruct in TableLayoutAlgorithmAuto, which |
+ // maxPreferredLogicalWidth fills in. So scaledWidthFromPercentColumns has to be called after |
+ // maxPreferredLogicalWidth. |
+ LayoutUnit scaledWidth = m_tableLayout->scaledWidthFromPercentColumns() + bordersPaddingAndSpacingInRowDirection(); |
+ maxWidth = std::max(scaledWidth, maxWidth); |
+ setLogicalWidth(LayoutUnit(std::min(availableContentLogicalWidth, maxWidth).floor())); |
} |
// Ensure we aren't bigger than our max-width style. |