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 d7055dced22eb31749feab7432a024cc89284ce5..655189d6c44060608c1ef58c8de1116707ac2a3c 100644 |
--- a/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp |
+++ b/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp |
@@ -1523,6 +1523,24 @@ static CSSValue* consumeTextDecorationLine(CSSParserTokenRange& range) { |
return list; |
} |
+static CSSValue* consumeTextDecorationSkip(CSSParserTokenRange& range) { |
+ CSSValueList* list = CSSValueList::createSpaceSeparated(); |
+ while (true) { |
+ CSSIdentifierValue* ident = |
+ consumeIdent<CSSValueObjects, CSSValueInk>(range); |
+ if (!ident) |
+ break; |
+ if (list->hasValue(*ident)) |
+ return nullptr; |
+ list->append(*ident); |
+ } |
+ |
+ if (!list->length()) |
+ return nullptr; |
+ |
+ return list; |
+} |
+ |
// none | strict | content | [ layout || style || paint || size ] |
static CSSValue* consumeContain(CSSParserTokenRange& range) { |
CSSValueID id = range.peek().id(); |
@@ -3617,6 +3635,9 @@ const CSSValue* CSSPropertyParser::parseSingleValue( |
case CSSPropertyWebkitTextDecorationsInEffect: |
case CSSPropertyTextDecorationLine: |
return consumeTextDecorationLine(m_range); |
+ case CSSPropertyTextDecorationSkip: |
+ DCHECK(RuntimeEnabledFeatures::css3TextDecorationsEnabled()); |
+ return consumeTextDecorationSkip(m_range); |
case CSSPropertyOffsetAnchor: |
return consumeOffsetAnchor(m_range, m_context.mode()); |
case CSSPropertyOffsetPosition: |