| Index: Source/core/css/parser/CSSPropertyParser.cpp
 | 
| diff --git a/Source/core/css/parser/CSSPropertyParser.cpp b/Source/core/css/parser/CSSPropertyParser.cpp
 | 
| index 5c88c54ae81208312709032cb2c521cefb9ec113..16adb442bce04076adeb194ed3ac6e63f3da6cd0 100644
 | 
| --- a/Source/core/css/parser/CSSPropertyParser.cpp
 | 
| +++ b/Source/core/css/parser/CSSPropertyParser.cpp
 | 
| @@ -1905,17 +1905,13 @@ bool CSSPropertyParser::parseColumnsShorthand(bool important)
 | 
|  {
 | 
|      RefPtrWillBeRawPtr<CSSValue> columnWidth = nullptr;
 | 
|      RefPtrWillBeRawPtr<CSSValue> columnCount = nullptr;
 | 
| -    bool hasPendingExplicitAuto = false;
 | 
|  
 | 
|      for (unsigned propertiesParsed = 0; CSSParserValue* value = m_valueList->current(); propertiesParsed++) {
 | 
|          if (propertiesParsed >= 2)
 | 
|              return false; // Too many values for this shorthand. Invalid declaration.
 | 
| -        if (!propertiesParsed && value->id == CSSValueAuto) {
 | 
| -            // 'auto' is a valid value for any of the two longhands, and at this point we
 | 
| -            // don't know which one(s) it is meant for. We need to see if there are other
 | 
| -            // values first.
 | 
| +        if (value->id == CSSValueAuto) {
 | 
| +            // Skip 'auto' as we will use it for initial value if no width/count was parsed.
 | 
|              m_valueList->next();
 | 
| -            hasPendingExplicitAuto = true;
 | 
|          } else {
 | 
|              if (!columnWidth) {
 | 
|                  if ((columnWidth = parseColumnWidth()))
 | 
| @@ -1930,29 +1926,13 @@ bool CSSPropertyParser::parseColumnsShorthand(bool important)
 | 
|              return false;
 | 
|          }
 | 
|      }
 | 
| -    if (hasPendingExplicitAuto) {
 | 
| -        // Time to assign the previously skipped 'auto' value to a property. If both properties are
 | 
| -        // unassigned at this point (i.e. 'columns:auto'), it doesn't matter that much which one we
 | 
| -        // set (although it does make a slight difference to web-inspector). The one we don't set
 | 
| -        // here will get an implicit 'auto' value further down.
 | 
| -        if (!columnWidth) {
 | 
| -            columnWidth = cssValuePool().createIdentifierValue(CSSValueAuto);
 | 
| -        } else {
 | 
| -            ASSERT(!columnCount);
 | 
| -            columnCount = cssValuePool().createIdentifierValue(CSSValueAuto);
 | 
| -        }
 | 
| -    }
 | 
| -    ASSERT(columnCount || columnWidth);
 | 
|  
 | 
| -    // Any unassigned property at this point will become implicit 'auto'.
 | 
| -    if (columnWidth)
 | 
| -        addProperty(CSSPropertyWebkitColumnWidth, columnWidth, important);
 | 
| -    else
 | 
| -        addProperty(CSSPropertyWebkitColumnWidth, cssValuePool().createIdentifierValue(CSSValueAuto), important, true /* implicit */);
 | 
| -    if (columnCount)
 | 
| -        addProperty(CSSPropertyWebkitColumnCount, columnCount, important);
 | 
| -    else
 | 
| -        addProperty(CSSPropertyWebkitColumnCount, cssValuePool().createIdentifierValue(CSSValueAuto), important, true /* implicit */);
 | 
| +    if (!columnWidth)
 | 
| +        columnWidth = cssValuePool().createIdentifierValue(CSSValueAuto);
 | 
| +    addProperty(CSSPropertyWebkitColumnWidth, columnWidth, important);
 | 
| +    if (!columnCount)
 | 
| +        columnCount = cssValuePool().createIdentifierValue(CSSValueAuto);
 | 
| +    addProperty(CSSPropertyWebkitColumnCount, columnCount, important);
 | 
|      return true;
 | 
|  }
 | 
|  
 | 
| 
 |