Index: third_party/WebKit/Source/core/css/parser/LegacyCSSPropertyParser.cpp |
diff --git a/third_party/WebKit/Source/core/css/parser/LegacyCSSPropertyParser.cpp b/third_party/WebKit/Source/core/css/parser/LegacyCSSPropertyParser.cpp |
index a3b1c66687bc674d530c354930f8fa0f267fbc4e..60e82cc18960452182bc3bb937337c4e2527067a 100644 |
--- a/third_party/WebKit/Source/core/css/parser/LegacyCSSPropertyParser.cpp |
+++ b/third_party/WebKit/Source/core/css/parser/LegacyCSSPropertyParser.cpp |
@@ -297,10 +297,6 @@ PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::legacyParseValue(CSSProperty |
bool CSSPropertyParser::legacyParseShorthand(CSSPropertyID propertyID, bool important) |
{ |
switch (propertyID) { |
- case CSSPropertyGridArea: |
- ASSERT(RuntimeEnabledFeatures::cssGridLayoutEnabled()); |
- return parseGridAreaShorthand(important); |
- |
case CSSPropertyGridTemplate: |
ASSERT(RuntimeEnabledFeatures::cssGridLayoutEnabled()); |
return parseGridTemplateShorthand(important); |
@@ -326,97 +322,6 @@ static inline bool isValidCustomIdentForGridPositions(const CSSParserValue& valu |
return value.m_unit == CSSParserValue::Identifier && value.id != CSSValueSpan && value.id != CSSValueAuto && !isCSSWideKeyword(value); |
} |
-// The function parses [ <integer> || <custom-ident> ] in <grid-line> (which can be stand alone or with 'span'). |
-bool CSSPropertyParser::parseIntegerOrCustomIdentFromGridPosition(RefPtrWillBeRawPtr<CSSPrimitiveValue>& numericValue, RefPtrWillBeRawPtr<CSSCustomIdentValue>& gridLineName) |
-{ |
- CSSParserValue* value = m_valueList->current(); |
- if (validUnit(value, FInteger) && value->fValue) { |
- numericValue = createPrimitiveNumericValue(value); |
- value = m_valueList->next(); |
- if (value && isValidCustomIdentForGridPositions(*value)) { |
- gridLineName = createPrimitiveCustomIdentValue(m_valueList->current()); |
- m_valueList->next(); |
- } |
- return true; |
- } |
- |
- if (isValidCustomIdentForGridPositions(*value)) { |
- gridLineName = createPrimitiveCustomIdentValue(m_valueList->current()); |
- value = m_valueList->next(); |
- if (value && validUnit(value, FInteger) && value->fValue) { |
- numericValue = createPrimitiveNumericValue(value); |
- m_valueList->next(); |
- } |
- return true; |
- } |
- |
- return false; |
-} |
- |
-PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseGridPosition() |
-{ |
- ASSERT(RuntimeEnabledFeatures::cssGridLayoutEnabled()); |
- |
- CSSParserValue* value = m_valueList->current(); |
- if (value->id == CSSValueAuto) { |
- m_valueList->next(); |
- return cssValuePool().createIdentifierValue(CSSValueAuto); |
- } |
- |
- RefPtrWillBeRawPtr<CSSPrimitiveValue> numericValue = nullptr; |
- RefPtrWillBeRawPtr<CSSCustomIdentValue> gridLineName = nullptr; |
- bool hasSeenSpanKeyword = false; |
- |
- if (parseIntegerOrCustomIdentFromGridPosition(numericValue, gridLineName)) { |
- value = m_valueList->current(); |
- if (value && value->id == CSSValueSpan) { |
- hasSeenSpanKeyword = true; |
- m_valueList->next(); |
- } |
- } else if (value->id == CSSValueSpan) { |
- hasSeenSpanKeyword = true; |
- if (CSSParserValue* nextValue = m_valueList->next()) { |
- if (!isForwardSlashOperator(nextValue) && !parseIntegerOrCustomIdentFromGridPosition(numericValue, gridLineName)) |
- return nullptr; |
- } |
- } |
- |
- // Check that we have consumed all the value list. For shorthands, the parser will pass |
- // the whole value list (including the opposite position). |
- if (m_valueList->current() && !isForwardSlashOperator(m_valueList->current())) |
- return nullptr; |
- |
- // If we didn't parse anything, this is not a valid grid position. |
- if (!hasSeenSpanKeyword && !gridLineName && !numericValue) |
- return nullptr; |
- |
- // Negative numbers are not allowed for span (but are for <integer>). |
- if (hasSeenSpanKeyword && numericValue && numericValue->getIntValue() < 0) |
- return nullptr; |
- |
- // For the <custom-ident> case. |
- if (gridLineName && !numericValue && !hasSeenSpanKeyword) |
- return CSSCustomIdentValue::create(gridLineName->value()); |
- |
- RefPtrWillBeRawPtr<CSSValueList> values = CSSValueList::createSpaceSeparated(); |
- if (hasSeenSpanKeyword) |
- values->append(cssValuePool().createIdentifierValue(CSSValueSpan)); |
- if (numericValue) |
- values->append(numericValue.release()); |
- if (gridLineName) |
- values->append(gridLineName.release()); |
- ASSERT(values->length()); |
- return values.release(); |
-} |
- |
-static PassRefPtrWillBeRawPtr<CSSValue> gridMissingGridPositionValue(CSSValue* value) |
-{ |
- if (value->isCustomIdentValue()) |
- return value; |
- |
- return cssValuePool().createIdentifierValue(CSSValueAuto); |
-} |
- |
PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseGridTemplateColumns(bool important) |
{ |
if (!(m_valueList->current() && isForwardSlashOperator(m_valueList->current()) && m_valueList->next())) |
@@ -599,61 +504,6 @@ bool CSSPropertyParser::parseGridShorthand(bool important) |
return true; |
} |
-bool CSSPropertyParser::parseGridAreaShorthand(bool important) |
-{ |
- ASSERT(RuntimeEnabledFeatures::cssGridLayoutEnabled()); |
- |
- ShorthandScope scope(this, CSSPropertyGridArea); |
- const StylePropertyShorthand& shorthand = gridAreaShorthand(); |
- ASSERT_UNUSED(shorthand, shorthand.length() == 4); |
- |
- RefPtrWillBeRawPtr<CSSValue> rowStartValue = parseGridPosition(); |
- if (!rowStartValue) |
- return false; |
- |
- RefPtrWillBeRawPtr<CSSValue> columnStartValue = nullptr; |
- if (!parseSingleGridAreaLonghand(columnStartValue)) |
- return false; |
- |
- RefPtrWillBeRawPtr<CSSValue> rowEndValue = nullptr; |
- if (!parseSingleGridAreaLonghand(rowEndValue)) |
- return false; |
- |
- RefPtrWillBeRawPtr<CSSValue> columnEndValue = nullptr; |
- if (!parseSingleGridAreaLonghand(columnEndValue)) |
- return false; |
- |
- if (!columnStartValue) |
- columnStartValue = gridMissingGridPositionValue(rowStartValue.get()); |
- |
- if (!rowEndValue) |
- rowEndValue = gridMissingGridPositionValue(rowStartValue.get()); |
- |
- if (!columnEndValue) |
- columnEndValue = gridMissingGridPositionValue(columnStartValue.get()); |
- |
- addProperty(CSSPropertyGridRowStart, rowStartValue, important); |
- addProperty(CSSPropertyGridColumnStart, columnStartValue, important); |
- addProperty(CSSPropertyGridRowEnd, rowEndValue, important); |
- addProperty(CSSPropertyGridColumnEnd, columnEndValue, important); |
- return true; |
-} |
- |
-bool CSSPropertyParser::parseSingleGridAreaLonghand(RefPtrWillBeRawPtr<CSSValue>& property) |
-{ |
- if (!m_valueList->current()) |
- return true; |
- |
- if (!isForwardSlashOperator(m_valueList->current())) |
- return false; |
- |
- if (!m_valueList->next()) |
- return false; |
- |
- property = parseGridPosition(); |
- return true; |
-} |
- |
static inline bool isClosingBracket(const CSSParserValue& value) |
{ |
return value.m_unit == CSSParserValue::Operator && value.iValue == ']'; |