| 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 48cb58fb11206a810d85709f146b6597a3ed0241..cdfe75ff20c5f27efd7768bba1cde486d66d1067 100644
|
| --- a/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp
|
| +++ b/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp
|
| @@ -1384,7 +1384,7 @@ static CSSValue* consumeShadow(CSSParserTokenRange& range, CSSParserMode cssPars
|
| return shadowValueList;
|
| }
|
|
|
| -static CSSFunctionValue* consumeFilterFunction(CSSParserTokenRange& range, CSSParserMode cssParserMode)
|
| +static CSSFunctionValue* consumeFilterFunction(CSSParserTokenRange& range, const CSSParserContext& context)
|
| {
|
| CSSValueID filterType = range.peek().functionId();
|
| if (filterType < CSSValueInvert || filterType > CSSValueDropShadow)
|
| @@ -1394,11 +1394,13 @@ static CSSFunctionValue* consumeFilterFunction(CSSParserTokenRange& range, CSSPa
|
| CSSValue* parsedValue = nullptr;
|
|
|
| if (filterType == CSSValueDropShadow) {
|
| - parsedValue = parseSingleShadow(args, cssParserMode, false, false);
|
| + parsedValue = parseSingleShadow(args, context.mode(), false, false);
|
| } else {
|
| - // TODO(timloh): Add UseCounters for empty filter arguments.
|
| - if (args.atEnd())
|
| + if (args.atEnd()) {
|
| + if (context.useCounter())
|
| + context.useCounter()->count(UseCounter::CSSFilterFunctionNoArguments);
|
| return filterValue;
|
| + }
|
| if (filterType == CSSValueBrightness) {
|
| // FIXME (crbug.com/397061): Support calc expressions like calc(10% + 0.5)
|
| parsedValue = consumePercent(args, ValueRangeAll);
|
| @@ -1430,7 +1432,7 @@ static CSSFunctionValue* consumeFilterFunction(CSSParserTokenRange& range, CSSPa
|
| return filterValue;
|
| }
|
|
|
| -static CSSValue* consumeFilter(CSSParserTokenRange& range, CSSParserMode cssParserMode)
|
| +static CSSValue* consumeFilter(CSSParserTokenRange& range, const CSSParserContext& context)
|
| {
|
| if (range.peek().id() == CSSValueNone)
|
| return consumeIdent(range);
|
| @@ -1443,7 +1445,7 @@ static CSSValue* consumeFilter(CSSParserTokenRange& range, CSSParserMode cssPars
|
| filterValue = CSSFunctionValue::create(CSSValueUrl);
|
| filterValue->append(*CSSSVGDocumentValue::create(url));
|
| } else {
|
| - filterValue = consumeFilterFunction(range, cssParserMode);
|
| + filterValue = consumeFilterFunction(range, context);
|
| if (!filterValue)
|
| return nullptr;
|
| }
|
| @@ -3755,7 +3757,7 @@ CSSValue* CSSPropertyParser::parseSingleValue(CSSPropertyID unresolvedProperty,
|
| return consumeShadow(m_range, m_context.mode(), property == CSSPropertyBoxShadow);
|
| case CSSPropertyWebkitFilter:
|
| case CSSPropertyBackdropFilter:
|
| - return consumeFilter(m_range, m_context.mode());
|
| + return consumeFilter(m_range, m_context);
|
| case CSSPropertyTextDecoration:
|
| ASSERT(!RuntimeEnabledFeatures::css3TextDecorationsEnabled());
|
| // fallthrough
|
|
|