diff options
3 files changed, 25 insertions, 20 deletions
diff --git a/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp b/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp index 61ca343..8d4a1d8 100644 --- a/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp +++ b/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp @@ -661,6 +661,9 @@ PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseSingleValue(CSSProperty return consumeLineHeight(m_range, m_context.mode()); case CSSPropertyRotate: return consumeRotation(m_range); + case CSSPropertyWebkitBorderHorizontalSpacing: + case CSSPropertyWebkitBorderVerticalSpacing: + return consumeLength(m_range, m_context.mode(), ValueRangeNonNegative); default: return nullptr; } @@ -890,6 +893,21 @@ bool CSSPropertyParser::consumeFont(bool important) return m_range.atEnd(); } +bool CSSPropertyParser::consumeBorderSpacing(bool important) +{ + RefPtrWillBeRawPtr<CSSValue> horizontalSpacing = consumeLength(m_range, m_context.mode(), ValueRangeNonNegative, UnitlessQuirk::Allow); + if (!horizontalSpacing) + return false; + RefPtrWillBeRawPtr<CSSValue> verticalSpacing = horizontalSpacing; + if (!m_range.atEnd()) + verticalSpacing = consumeLength(m_range, m_context.mode(), ValueRangeNonNegative, UnitlessQuirk::Allow); + if (!verticalSpacing || !m_range.atEnd()) + return false; + addProperty(CSSPropertyWebkitBorderHorizontalSpacing, horizontalSpacing.release(), important); + addProperty(CSSPropertyWebkitBorderVerticalSpacing, verticalSpacing.release(), important); + return true; +} + bool CSSPropertyParser::parseShorthand(CSSPropertyID propId, bool important) { m_range.consumeWhitespace(); @@ -941,6 +959,8 @@ bool CSSPropertyParser::parseShorthand(CSSPropertyID propId, bool important) return consumeSystemFont(important); return consumeFont(important); } + case CSSPropertyBorderSpacing: + return consumeBorderSpacing(important); default: m_currentShorthand = oldShorthand; return false; diff --git a/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.h b/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.h index d55f20c..4f35673 100644 --- a/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.h +++ b/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.h @@ -199,6 +199,8 @@ private: bool consumeFont(bool important); bool consumeSystemFont(bool important); + bool consumeBorderSpacing(bool important); + PassRefPtrWillBeRawPtr<CSSValue> parseCounter(int defaultValue); PassRefPtrWillBeRawPtr<CSSValue> parseCounterContent(CSSParserValueList* args, bool counters); diff --git a/third_party/WebKit/Source/core/css/parser/LegacyCSSPropertyParser.cpp b/third_party/WebKit/Source/core/css/parser/LegacyCSSPropertyParser.cpp index 603263f..8f66df3 100644 --- a/third_party/WebKit/Source/core/css/parser/LegacyCSSPropertyParser.cpp +++ b/third_party/WebKit/Source/core/css/parser/LegacyCSSPropertyParser.cpp @@ -467,26 +467,6 @@ bool CSSPropertyParser::parseValue(CSSPropertyID unresolvedProperty, bool import } break; - case CSSPropertyBorderSpacing: { - ShorthandScope scope(this, CSSPropertyBorderSpacing); - if (!parseValue(CSSPropertyWebkitBorderHorizontalSpacing, important)) - return false; - if (!m_valueList->current()) { - CSSValue* value = m_parsedProperties.last().value(); - addProperty(CSSPropertyWebkitBorderVerticalSpacing, value, important); - return true; - } - if (!parseValue(CSSPropertyWebkitBorderVerticalSpacing, important)) - return false; - return !m_valueList->current(); - } - case CSSPropertyWebkitBorderHorizontalSpacing: - case CSSPropertyWebkitBorderVerticalSpacing: - unitless = FLength | FNonNeg; - if (inShorthand() && m_currentShorthand == CSSPropertyBorderSpacing) - unitless = unitless | FUnitlessQuirk; - validPrimitive = validUnit(value, unitless); - break; case CSSPropertyOutlineColor: // <color> | invert | inherit // Outline color has "invert" as additional keyword. // Also, we want to allow the special focus color even in HTML Standard parsing mode. @@ -1393,6 +1373,9 @@ bool CSSPropertyParser::parseValue(CSSPropertyID unresolvedProperty, bool import case CSSPropertyLineHeight: case CSSPropertyRotate: case CSSPropertyFont: + case CSSPropertyWebkitBorderHorizontalSpacing: + case CSSPropertyWebkitBorderVerticalSpacing: + case CSSPropertyBorderSpacing: validPrimitive = false; break; |