| Index: third_party/WebKit/Source/core/css/parser/CSSPropertyParserHelpers.cpp
|
| diff --git a/third_party/WebKit/Source/core/css/parser/CSSPropertyParserHelpers.cpp b/third_party/WebKit/Source/core/css/parser/CSSPropertyParserHelpers.cpp
|
| index 0fe218a71e5f9fa77ac5318125288cde0d22eb9b..008e65215f0c8b46f5aaef0fce1d8467e9c4ae2e 100644
|
| --- a/third_party/WebKit/Source/core/css/parser/CSSPropertyParserHelpers.cpp
|
| +++ b/third_party/WebKit/Source/core/css/parser/CSSPropertyParserHelpers.cpp
|
| @@ -230,6 +230,25 @@ CSSPrimitiveValue* consumeLengthOrPercent(CSSParserTokenRange& range, CSSParserM
|
| return nullptr;
|
| }
|
|
|
| +CSSPrimitiveValue* consumeNumberOrPercent(CSSParserTokenRange& range, ValueRange valueRange)
|
| +{
|
| + const CSSParserToken& token = range.peek();
|
| + if (token.type() == NumberToken)
|
| + return consumeNumber(range, valueRange);
|
| + if (token.type() == PercentageToken)
|
| + return consumePercent(range, valueRange);
|
| + CalcParser calcParser(range, valueRange);
|
| + if (const CSSCalcValue* calculation = calcParser.value()) {
|
| + // TODO(rwlbuis) Calcs should not be subject to parse time range checks.
|
| + // spec: https://drafts.csswg.org/css-values-3/#calc-range
|
| + if (calculation->category() == CalcNumber && !(valueRange == ValueRangeNonNegative && calculation->isNegative()))
|
| + return calcParser.consumeNumber();
|
| + if (calculation->category() == CalcPercent || calculation->category() == CalcPercentNumber)
|
| + return calcParser.consumeValue();
|
| + }
|
| + return nullptr;
|
| +}
|
| +
|
| CSSPrimitiveValue* consumeAngle(CSSParserTokenRange& range)
|
| {
|
| const CSSParserToken& token = range.peek();
|
|
|