| Index: Source/core/css/CSSParser.cpp
|
| diff --git a/Source/core/css/CSSParser.cpp b/Source/core/css/CSSParser.cpp
|
| index 7fc56703e0ac30392f93629a398a3faab28a06d3..fa7b7abf239c9b46334192c57430380ed6e2dfd9 100644
|
| --- a/Source/core/css/CSSParser.cpp
|
| +++ b/Source/core/css/CSSParser.cpp
|
| @@ -2118,6 +2118,9 @@ bool CSSParser::parseValue(CSSPropertyID propId, bool important)
|
| }
|
|
|
| case CSSPropertyTextDecoration:
|
| + // [ <text-decoration-line> || <text-decoration-style> || <text-decoration-color> ] | inherit
|
| + return parseShorthand(CSSPropertyTextDecoration, textDecorationShorthand(), important);
|
| +
|
| case CSSPropertyWebkitTextDecorationsInEffect:
|
| case CSSPropertyTextDecorationLine:
|
| // none | [ underline || overline || line-through || blink ] | inherit
|
| @@ -8855,7 +8858,7 @@ bool CSSParser::parseTextDecoration(CSSPropertyID propId, bool important)
|
| return false;
|
|
|
| CSSParserValue* value = m_valueList->current();
|
| - if (value->id == CSSValueNone) {
|
| + if (value && value->id == CSSValueNone) {
|
| addTextDecorationProperty(propId, cssValuePool().createIdentifierValue(CSSValueNone), important);
|
| m_valueList->next();
|
| return true;
|
| @@ -8879,7 +8882,8 @@ bool CSSParser::parseTextDecoration(CSSPropertyID propId, bool important)
|
| value = m_valueList->next();
|
| }
|
|
|
| - if (list->length() && isValid) {
|
| + // Values are either valid or in shorthand scope.
|
| + if (list->length() && (isValid || inShorthand())) {
|
| addTextDecorationProperty(propId, list.release(), important);
|
| return true;
|
| }
|
|
|