Index: Source/core/css/resolver/StyleBuilderCustom.cpp |
diff --git a/Source/core/css/resolver/StyleBuilderCustom.cpp b/Source/core/css/resolver/StyleBuilderCustom.cpp |
index 37d1e3af6579d6a7f38a48a2155f1aba9b048277..e9b9c658bd0b43098b9d56e8dea3a3f5316726d6 100644 |
--- a/Source/core/css/resolver/StyleBuilderCustom.cpp |
+++ b/Source/core/css/resolver/StyleBuilderCustom.cpp |
@@ -945,10 +945,18 @@ static bool createGridTrackList(CSSValue* value, Vector<GridTrackSize>& trackSiz |
static bool createGridPosition(CSSValue* value, GridPosition& position) |
{ |
- // For now, we only accept: 'auto' | [ <integer> || <string> ] | span && <integer>? |
+ // We accept the specification's grammar: |
+ // 'auto' | [ <integer> || <string> ] | [ span && [ <integer> || string ] ] | <ident> |
if (value->isPrimitiveValue()) { |
CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
+ // We translate <ident> to <string> during parsing as it |
+ // makes handling it more simple. |
+ if (primitiveValue->isString()) { |
+ position.setNamedGridArea(primitiveValue->getStringValue()); |
+ return true; |
+ } |
+ |
ASSERT(primitiveValue->getValueID() == CSSValueAuto); |
return true; |
} |