Index: Source/core/layout/LayoutFlexibleBox.cpp |
diff --git a/Source/core/layout/LayoutFlexibleBox.cpp b/Source/core/layout/LayoutFlexibleBox.cpp |
index 0aef4d7a635139b21d387f428a3f2689479fdfad..2dd4b2aa78c4eac26280c4a4f74bbba256c3d4db 100644 |
--- a/Source/core/layout/LayoutFlexibleBox.cpp |
+++ b/Source/core/layout/LayoutFlexibleBox.cpp |
@@ -978,7 +978,10 @@ bool LayoutFlexibleBox::resolveFlexibleLengths(FlexSign flexSign, const OrderedF |
double extraSpace = 0; |
bool childShrunk = false; |
if (availableFreeSpace > 0 && totalFlexGrow > 0 && flexSign == PositiveFlexibility && std::isfinite(totalFlexGrow)) { |
- extraSpace = availableFreeSpace * child->style()->flexGrow() / totalFlexGrow; |
+ if (totalFlexGrow > 0 && totalFlexGrow < 1) |
+ extraSpace = availableFreeSpace * child->style()->flexGrow(); |
+ else |
+ extraSpace = availableFreeSpace * child->style()->flexGrow() / totalFlexGrow; |
} else if (availableFreeSpace < 0 && totalWeightedFlexShrink > 0 && flexSign == NegativeFlexibility && std::isfinite(totalWeightedFlexShrink) && child->style()->flexShrink()) { |
extraSpace = availableFreeSpace * child->style()->flexShrink() * childInnerFlexBaseSize / totalWeightedFlexShrink; |
childShrunk = true; |