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 ef0b734e20ebfcd055a2551ba3161d7942ca2b59..61e9d0e554163981d2bc15f2ae54d5c9ab764360 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutTable.cpp |
+++ b/third_party/WebKit/Source/core/layout/LayoutTable.cpp |
@@ -282,7 +282,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. |