| Index: third_party/WebKit/Source/core/css/parser/LegacyCSSPropertyParser.cpp
|
| diff --git a/third_party/WebKit/Source/core/css/parser/LegacyCSSPropertyParser.cpp b/third_party/WebKit/Source/core/css/parser/LegacyCSSPropertyParser.cpp
|
| index 00977c0dba7c15312563858c555e767fcb4f5045..0aea3c6397d8fe6c678db53c196ec58e6ff06a7e 100644
|
| --- a/third_party/WebKit/Source/core/css/parser/LegacyCSSPropertyParser.cpp
|
| +++ b/third_party/WebKit/Source/core/css/parser/LegacyCSSPropertyParser.cpp
|
| @@ -31,7 +31,6 @@
|
| #include "core/css/CSSBasicShapeValues.h"
|
| #include "core/css/CSSBorderImage.h"
|
| #include "core/css/CSSContentDistributionValue.h"
|
| -#include "core/css/CSSCounterValue.h"
|
| #include "core/css/CSSCrossfadeValue.h"
|
| #include "core/css/CSSCustomIdentValue.h"
|
| #include "core/css/CSSFunctionValue.h"
|
| @@ -240,12 +239,6 @@ PassRefPtrWillBeRawPtr<CSSPrimitiveValue> CSSPropertyParser::createPrimitiveNume
|
| return cssValuePool().createValue(value->fValue, value->unit());
|
| }
|
|
|
| -inline PassRefPtrWillBeRawPtr<CSSStringValue> CSSPropertyParser::createPrimitiveStringValue(CSSParserValue* value)
|
| -{
|
| - ASSERT(value->m_unit == CSSParserValue::String || value->m_unit == CSSParserValue::Identifier);
|
| - return CSSStringValue::create(value->string);
|
| -}
|
| -
|
| inline PassRefPtrWillBeRawPtr<CSSCustomIdentValue> CSSPropertyParser::createPrimitiveCustomIdentValue(CSSParserValue* value)
|
| {
|
| ASSERT(value->m_unit == CSSParserValue::String || value->m_unit == CSSParserValue::Identifier);
|
| @@ -336,15 +329,6 @@ bool CSSPropertyParser::parseValue(CSSPropertyID unresolvedProperty, bool import
|
| RefPtrWillBeRawPtr<CSSValue> parsedValue = nullptr;
|
|
|
| switch (propId) {
|
| - case CSSPropertyContent: // [ <string> | <uri> | <counter> | attr(X) | open-quote |
|
| - // close-quote | no-open-quote | no-close-quote ]+ | inherit
|
| - parsedValue = parseContent();
|
| - break;
|
| -
|
| - /* Start of supported CSS properties with validation. This is needed for parseShorthand to work
|
| - * correctly and allows optimization in blink::applyRule(..)
|
| - */
|
| -
|
| case CSSPropertyBackgroundColor: // <color> | inherit
|
| case CSSPropertyBorderTopColor: // <color> | inherit
|
| case CSSPropertyBorderRightColor:
|
| @@ -902,6 +886,7 @@ bool CSSPropertyParser::parseValue(CSSPropertyID unresolvedProperty, bool import
|
| case CSSPropertyTranslate:
|
| case CSSPropertyCursor:
|
| case CSSPropertyTransformOrigin:
|
| + case CSSPropertyContent:
|
| validPrimitive = false;
|
| break;
|
|
|
| @@ -1258,84 +1243,6 @@ PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseScrollSnapCoordinate()
|
| return parsePositionList(m_valueList);
|
| }
|
|
|
| -// [ <string> | <uri> | <counter> | attr(X) | open-quote | close-quote | no-open-quote | no-close-quote ]+ | inherit
|
| -// in CSS 2.1 this got somewhat reduced:
|
| -// [ <string> | attr(X) | open-quote | close-quote | no-open-quote | no-close-quote ]+ | inherit
|
| -PassRefPtrWillBeRawPtr<CSSValueList> CSSPropertyParser::parseContent()
|
| -{
|
| - RefPtrWillBeRawPtr<CSSValueList> values = CSSValueList::createSpaceSeparated();
|
| -
|
| - while (CSSParserValue* val = m_valueList->current()) {
|
| - RefPtrWillBeRawPtr<CSSValue> parsedValue = nullptr;
|
| - if (val->m_unit == CSSParserValue::URI) {
|
| - // url
|
| - parsedValue = createCSSImageValueWithReferrer(val->string, m_context);
|
| - } else if (val->m_unit == CSSParserValue::Function) {
|
| - // attr(X) | counter(X [,Y]) | counters(X, Y, [,Z]) | -webkit-gradient(...)
|
| - CSSParserValueList* args = val->function->args.get();
|
| - if (!args)
|
| - return nullptr;
|
| - if (val->function->id == CSSValueAttr) {
|
| - parsedValue = parseAttr(args);
|
| - } else if (val->function->id == CSSValueCounter) {
|
| - parsedValue = parseCounterContent(args, false);
|
| - } else if (val->function->id == CSSValueCounters) {
|
| - parsedValue = parseCounterContent(args, true);
|
| - } else if (val->function->id == CSSValueWebkitImageSet) {
|
| - parsedValue = parseImageSet(m_valueList);
|
| - } else if (CSSPropertyParser::isGeneratedImage(val->function->id)) {
|
| - if (!parseGeneratedImage(m_valueList, parsedValue))
|
| - return nullptr;
|
| - }
|
| - } else if (val->m_unit == CSSParserValue::Identifier) {
|
| - switch (val->id) {
|
| - case CSSValueOpenQuote:
|
| - case CSSValueCloseQuote:
|
| - case CSSValueNoOpenQuote:
|
| - case CSSValueNoCloseQuote:
|
| - case CSSValueNone:
|
| - case CSSValueNormal:
|
| - parsedValue = cssValuePool().createIdentifierValue(val->id);
|
| - default:
|
| - break;
|
| - }
|
| - } else if (val->m_unit == CSSParserValue::String) {
|
| - parsedValue = createPrimitiveStringValue(val);
|
| - }
|
| - if (!parsedValue)
|
| - return nullptr;
|
| - values->append(parsedValue.release());
|
| - m_valueList->next();
|
| - }
|
| -
|
| - return values.release();
|
| -}
|
| -
|
| -PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseAttr(CSSParserValueList* args)
|
| -{
|
| - if (args->size() != 1)
|
| - return nullptr;
|
| -
|
| - CSSParserValue* a = args->current();
|
| -
|
| - if (a->m_unit != CSSParserValue::Identifier)
|
| - return nullptr;
|
| -
|
| - String attrName = a->string;
|
| - // CSS allows identifiers with "-" at the start, like "-webkit-mask-image".
|
| - // But HTML attribute names can't have those characters, and we should not
|
| - // even parse them inside attr().
|
| - if (attrName[0] == '-')
|
| - return nullptr;
|
| -
|
| - if (m_context.isHTMLDocument())
|
| - attrName = attrName.lower();
|
| -
|
| - RefPtrWillBeRawPtr<CSSFunctionValue> attrValue = CSSFunctionValue::create(CSSValueAttr);
|
| - attrValue->append(CSSCustomIdentValue::create(attrName));
|
| - return attrValue.release();
|
| -}
|
| -
|
| PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseColor(const CSSParserValue* value, bool acceptQuirkyColors)
|
| {
|
| CSSValueID id = value->id;
|
| @@ -2738,58 +2645,6 @@ PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseGridAutoFlow(CSSParserV
|
| return parsedValues;
|
| }
|
|
|
| -PassRefPtrWillBeRawPtr<CSSValue> CSSPropertyParser::parseCounterContent(CSSParserValueList* args, bool counters)
|
| -{
|
| - unsigned numArgs = args->size();
|
| - if (counters && numArgs != 3 && numArgs != 5)
|
| - return nullptr;
|
| - if (!counters && numArgs != 1 && numArgs != 3)
|
| - return nullptr;
|
| -
|
| - CSSParserValue* i = args->current();
|
| - if (i->m_unit != CSSParserValue::Identifier)
|
| - return nullptr;
|
| - RefPtrWillBeRawPtr<CSSCustomIdentValue> identifier = createPrimitiveCustomIdentValue(i);
|
| -
|
| - RefPtrWillBeRawPtr<CSSCustomIdentValue> separator = nullptr;
|
| - if (!counters)
|
| - separator = CSSCustomIdentValue::create(String());
|
| - else {
|
| - args->next();
|
| - if (!consumeComma(args))
|
| - return nullptr;
|
| -
|
| - i = args->current();
|
| - if (i->m_unit != CSSParserValue::String)
|
| - return nullptr;
|
| -
|
| - separator = createPrimitiveCustomIdentValue(i);
|
| - }
|
| -
|
| - RefPtrWillBeRawPtr<CSSPrimitiveValue> listStyle = nullptr;
|
| - i = args->next();
|
| - if (!i) // Make the list style default decimal
|
| - listStyle = cssValuePool().createIdentifierValue(CSSValueDecimal);
|
| - else {
|
| - if (!consumeComma(args))
|
| - return nullptr;
|
| -
|
| - i = args->current();
|
| - if (i->m_unit != CSSParserValue::Identifier)
|
| - return nullptr;
|
| -
|
| - CSSValueID listStyleID = CSSValueInvalid;
|
| - if (i->id == CSSValueNone || (i->id >= CSSValueDisc && i->id <= CSSValueKatakanaIroha))
|
| - listStyleID = i->id;
|
| - else
|
| - return nullptr;
|
| -
|
| - listStyle = cssValuePool().createIdentifierValue(listStyleID);
|
| - }
|
| -
|
| - return CSSCounterValue::create(identifier.release(), listStyle.release(), separator.release());
|
| -}
|
| -
|
| static void completeBorderRadii(RefPtrWillBeRawPtr<CSSPrimitiveValue> radii[4])
|
| {
|
| if (radii[3])
|
|
|