summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp20
-rw-r--r--third_party/WebKit/Source/core/css/parser/CSSPropertyParser.h2
-rw-r--r--third_party/WebKit/Source/core/css/parser/LegacyCSSPropertyParser.cpp23
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;