| 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 e2d8926f722ff39d63a0368764cfa4c55f685204..e11d05ef4e84c1ba25910c3ec00c369f94bd1eb6 100644
|
| --- a/third_party/WebKit/Source/core/layout/LayoutFlexibleBox.cpp
|
| +++ b/third_party/WebKit/Source/core/layout/LayoutFlexibleBox.cpp
|
| @@ -1248,6 +1248,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;
|
| @@ -1270,6 +1271,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)
|
| @@ -1299,12 +1303,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)) {
|
|
|