Index: third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp |
diff --git a/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp b/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp |
index cb27b6b55f89c8eb1707cfce2d21562dcd142272..f10ef1ae0dec952a962508dfc72ab24518a7e67b 100644 |
--- a/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp |
+++ b/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp |
@@ -40,6 +40,8 @@ |
#include "core/css/parser/CSSParserIdioms.h" |
#include "core/css/parser/CSSPropertyParserHelpers.h" |
#include "core/css/parser/CSSVariableParser.h" |
+#include "core/css/properties/CSSPaddingProperties.h" |
+#include "core/css/properties/CSSPropertyDescriptor.h" |
#include "core/frame/UseCounter.h" |
#include "core/layout/LayoutTheme.h" |
#include "core/svg/SVGPathUtilities.h" |
@@ -3425,6 +3427,18 @@ const CSSValue* CSSPropertyParser::parseSingleValue( |
m_range.peek().id()); |
return consumeIdent(m_range); |
} |
+ |
+ /* Gets the parsing function for our current property from the property API. |
+ If it has been implemented, we call this function, otherwise we manually |
+ parse |
+ this value in the switch statement below. As we implement APIs for other |
+ properties, |
+ those properties will be taken out of the switch statement. */ |
+ const CSSPropertyDescriptor& cssPropertyDesc = |
+ CSSPropertyDescriptor::get(property); |
+ if (cssPropertyDesc.isValidProperty) |
+ return cssPropertyDesc.parseSingleValue(m_range, m_context); |
+ |
switch (property) { |
case CSSPropertyWillChange: |
return consumeWillChange(m_range); |
@@ -3515,13 +3529,6 @@ const CSSValue* CSSPropertyParser::parseSingleValue( |
return consumeLengthOrPercent(m_range, m_context.mode(), |
ValueRangeNonNegative, |
UnitlessQuirk::Allow); |
- case CSSPropertyWebkitPaddingStart: |
- case CSSPropertyWebkitPaddingEnd: |
- case CSSPropertyWebkitPaddingBefore: |
- case CSSPropertyWebkitPaddingAfter: |
- return consumeLengthOrPercent(m_range, m_context.mode(), |
- ValueRangeNonNegative, |
- UnitlessQuirk::Forbid); |
case CSSPropertyClip: |
return consumeClip(m_range, m_context.mode()); |
case CSSPropertyTouchAction: |