Chromium Code Reviews| 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..cf03ef83821b4d617fc27e12dbdc02e479593cf0 100644 |
| --- a/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp |
| +++ b/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp |
| @@ -40,6 +40,7 @@ |
| #include "core/css/parser/CSSParserIdioms.h" |
| #include "core/css/parser/CSSPropertyParserHelpers.h" |
| #include "core/css/parser/CSSVariableParser.h" |
| +#include "core/css/properties/CSSPropertyDescriptor.h" |
| #include "core/frame/UseCounter.h" |
| #include "core/layout/LayoutTheme.h" |
| #include "core/svg/SVGPathUtilities.h" |
| @@ -3425,6 +3426,17 @@ 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. |
|
sashab
2016/12/05 23:58:12
Awesome
|
| + const CSSPropertyDescriptor& cssPropertyDesc = |
| + CSSPropertyDescriptor::get(property); |
| + if (cssPropertyDesc.isValid) |
| + return cssPropertyDesc.parseSingleValue(m_range, m_context); |
| + |
| switch (property) { |
| case CSSPropertyWillChange: |
| return consumeWillChange(m_range); |
| @@ -3515,13 +3527,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: |