Index: third_party/WebKit/Source/core/layout/LayoutFlexibleBox.cpp |
diff --git a/third_party/WebKit/Source/core/layout/LayoutFlexibleBox.cpp b/third_party/WebKit/Source/core/layout/LayoutFlexibleBox.cpp |
index bed1c2fd7b7bfb052fa6b25d5efbcc697265273c..4a7cf2bec4aea4734f609106980cd3781dc085db 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutFlexibleBox.cpp |
+++ b/third_party/WebKit/Source/core/layout/LayoutFlexibleBox.cpp |
@@ -1251,6 +1251,7 @@ bool LayoutFlexibleBox::computeNextFlexLine(OrderedFlexItemList& orderedChildren |
void LayoutFlexibleBox::freezeViolations(Vector<FlexItem*>& violations, LayoutUnit& availableFreeSpace, double& totalFlexGrow, double& totalFlexShrink, double& totalWeightedFlexShrink) |
{ |
for (size_t i = 0; i < violations.size(); ++i) { |
+ DCHECK(!violations[i]->frozen) << i; |
LayoutBox* child = violations[i]->box; |
LayoutUnit childSize = violations[i]->flexedContentSize; |
availableFreeSpace -= childSize - violations[i]->innerFlexBaseSize; |
@@ -1273,6 +1274,9 @@ void LayoutFlexibleBox::freezeInflexibleItems(FlexSign flexSign, OrderedFlexItem |
for (size_t i = 0; i < children.size(); ++i) { |
FlexItem& flexItem = children[i]; |
LayoutBox* child = flexItem.box; |
+ if (child->isOutOfFlowPositioned()) |
+ continue; |
+ DCHECK(!flexItem.frozen) << i; |
float flexFactor = (flexSign == PositiveFlexibility) ? child->style()->flexGrow() : child->style()->flexShrink(); |
if (flexFactor == 0 |
|| (flexSign == PositiveFlexibility && flexItem.innerFlexBaseSize > flexItem.hypotheticalMainSize) |
@@ -1302,12 +1306,12 @@ bool LayoutFlexibleBox::resolveFlexibleLengths(FlexSign flexSign, OrderedFlexIte |
for (size_t i = 0; i < children.size(); ++i) { |
FlexItem& flexItem = children[i]; |
LayoutBox* child = flexItem.box; |
- if (child->isOutOfFlowPositioned()) { |
+ if (child->isOutOfFlowPositioned()) |
continue; |
- } |
if (flexItem.frozen) |
continue; |
+ |
LayoutUnit childSize = flexItem.innerFlexBaseSize; |
double extraSpace = 0; |
if (remainingFreeSpace > 0 && totalFlexGrow > 0 && flexSign == PositiveFlexibility && std::isfinite(totalFlexGrow)) { |