| Index: Source/core/rendering/RenderMultiColumnFlowThread.cpp
 | 
| diff --git a/Source/core/rendering/RenderMultiColumnFlowThread.cpp b/Source/core/rendering/RenderMultiColumnFlowThread.cpp
 | 
| index 0af35bb74c94ec0857dcca363d101b7b783835b1..5657d2ccf9594d7215d6e1004104400cd92b61cc 100644
 | 
| --- a/Source/core/rendering/RenderMultiColumnFlowThread.cpp
 | 
| +++ b/Source/core/rendering/RenderMultiColumnFlowThread.cpp
 | 
| @@ -580,6 +580,32 @@ void RenderMultiColumnFlowThread::flowThreadDescendantWillBeRemoved(RenderObject
 | 
|      columnSetToRemove->destroy();
 | 
|  }
 | 
|  
 | 
| +void RenderMultiColumnFlowThread::computePreferredLogicalWidths()
 | 
| +{
 | 
| +    RenderFlowThread::computePreferredLogicalWidths();
 | 
| +
 | 
| +    // The min/max intrinsic widths calculated really tell how much space elements need when
 | 
| +    // laid out inside the columns. In order to eventually end up with the desired column width,
 | 
| +    // we need to convert them to values pertaining to the multicol container.
 | 
| +    const RenderBlockFlow* multicolContainer = multiColumnBlockFlow();
 | 
| +    const RenderStyle* multicolStyle = multicolContainer->style();
 | 
| +    int columnCount = multicolStyle->hasAutoColumnCount() ? 1 : multicolStyle->columnCount();
 | 
| +    LayoutUnit columnWidth;
 | 
| +    LayoutUnit gapExtra = (columnCount - 1) * multicolContainer->columnGap();
 | 
| +    if (multicolStyle->hasAutoColumnWidth()) {
 | 
| +        m_minPreferredLogicalWidth = m_minPreferredLogicalWidth * columnCount + gapExtra;
 | 
| +    } else {
 | 
| +        columnWidth = multicolStyle->columnWidth();
 | 
| +        m_minPreferredLogicalWidth = std::min(m_minPreferredLogicalWidth, columnWidth);
 | 
| +    }
 | 
| +    // Note that if column-count is auto here, we should resolve it to calculate the maximum
 | 
| +    // intrinsic width, instead of pretending that it's 1. The only way to do that is by performing
 | 
| +    // a layout pass, but this is not an appropriate time or place for layout. The good news is that
 | 
| +    // if height is unconstrained and there are no explicit breaks, the resolved column-count really
 | 
| +    // should be 1.
 | 
| +    m_maxPreferredLogicalWidth = std::max(m_maxPreferredLogicalWidth, columnWidth) * columnCount + gapExtra;
 | 
| +}
 | 
| +
 | 
|  void RenderMultiColumnFlowThread::computeLogicalHeight(LayoutUnit logicalHeight, LayoutUnit logicalTop, LogicalExtentComputedValues& computedValues) const
 | 
|  {
 | 
|      // We simply remain at our intrinsic height.
 | 
| 
 |