| Index: Source/core/css/resolver/StyleBuilderConverter.cpp
|
| diff --git a/Source/core/css/resolver/StyleBuilderConverter.cpp b/Source/core/css/resolver/StyleBuilderConverter.cpp
|
| index b1dbf43d150adee8e9ba963137fc6583f5230ba1..1671d14f34466c0fd5b8b9dc4413c666af1fb263 100644
|
| --- a/Source/core/css/resolver/StyleBuilderConverter.cpp
|
| +++ b/Source/core/css/resolver/StyleBuilderConverter.cpp
|
| @@ -92,9 +92,8 @@ Color StyleBuilderConverter::convertColor(StyleResolverState& state, CSSValue* v
|
|
|
| AtomicString StyleBuilderConverter::convertFragmentIdentifier(StyleResolverState& state, CSSValue* value)
|
| {
|
| - CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
|
| - if (primitiveValue->isURI())
|
| - return SVGURIReference::fragmentIdentifierFromIRIString(primitiveValue->getStringValue(), state.element()->treeScope());
|
| + if (value->isStringValue() && toCSSStringValue(value)->serializationType() == CSSStringValue::SerializeAsURI)
|
| + return SVGURIReference::fragmentIdentifierFromIRIString(toCSSStringValue(value)->getStringValue(), state.element()->treeScope());
|
| return nullAtom;
|
| }
|
|
|
| @@ -130,14 +129,14 @@ static FontDescription::GenericFamilyType convertGenericFamily(CSSValueID valueI
|
| }
|
| }
|
|
|
| -static bool convertFontFamilyName(StyleResolverState& state, CSSPrimitiveValue* primitiveValue,
|
| +static bool convertFontFamilyName(StyleResolverState& state, CSSValue* value,
|
| FontDescription::GenericFamilyType& genericFamily, AtomicString& familyName)
|
| {
|
| - if (primitiveValue->isCustomIdent()) {
|
| + if (value->isStringValue() && toCSSStringValue(value)->serializationType() == CSSStringValue::SerializeAsCustomIdentifier) {
|
| genericFamily = FontDescription::NoFamily;
|
| - familyName = AtomicString(primitiveValue->getStringValue());
|
| + familyName = AtomicString(toCSSStringValue(value)->getStringValue());
|
| } else if (state.document().settings()) {
|
| - genericFamily = convertGenericFamily(primitiveValue->getValueID());
|
| + genericFamily = convertGenericFamily(toCSSPrimitiveValue(value)->getValueID());
|
| familyName = state.fontBuilder().genericFontFamilyName(genericFamily);
|
| }
|
|
|
| @@ -155,7 +154,7 @@ FontDescription::FamilyDescription StyleBuilderConverter::convertFontFamily(Styl
|
| FontDescription::GenericFamilyType genericFamily = FontDescription::NoFamily;
|
| AtomicString familyName;
|
|
|
| - if (!convertFontFamilyName(state, toCSSPrimitiveValue(family.get()), genericFamily, familyName))
|
| + if (!convertFontFamilyName(state, family.get(), genericFamily, familyName))
|
| continue;
|
|
|
| if (!currFamily) {
|
| @@ -398,16 +397,17 @@ GridPosition StyleBuilderConverter::convertGridPosition(StyleResolverState&, CSS
|
|
|
| GridPosition position;
|
|
|
| - if (value->isPrimitiveValue()) {
|
| - CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
|
| + if (value->isStringValue()) {
|
| + CSSStringValue* stringValue = toCSSStringValue(value);
|
| // We translate <custom-ident> to <string> during parsing as it
|
| // makes handling it more simple.
|
| - if (primitiveValue->isCustomIdent()) {
|
| - position.setNamedGridArea(primitiveValue->getStringValue());
|
| - return position;
|
| - }
|
| + ASSERT(stringValue->serializationType() == CSSStringValue::SerializeAsCustomIdentifier);
|
| + position.setNamedGridArea(stringValue->getStringValue());
|
| + return position;
|
| + }
|
|
|
| - ASSERT(primitiveValue->getValueID() == CSSValueAuto);
|
| + if (value->isPrimitiveValue()) {
|
| + ASSERT(toCSSPrimitiveValue(value)->getValueID() == CSSValueAuto);
|
| return position;
|
| }
|
|
|
| @@ -420,21 +420,21 @@ GridPosition StyleBuilderConverter::convertGridPosition(StyleResolverState&, CSS
|
| String gridLineName;
|
|
|
| auto it = values->begin();
|
| - CSSPrimitiveValue* currentValue = toCSSPrimitiveValue(it->get());
|
| - if (currentValue->getValueID() == CSSValueSpan) {
|
| + CSSValue* currentValue = it->get();
|
| + if (currentValue->isPrimitiveValue() && toCSSPrimitiveValue(currentValue)->getValueID() == CSSValueSpan) {
|
| isSpanPosition = true;
|
| ++it;
|
| currentValue = it != values->end() ? toCSSPrimitiveValue(it->get()) : 0;
|
| }
|
|
|
| - if (currentValue && currentValue->isNumber()) {
|
| - gridLineNumber = currentValue->getIntValue();
|
| + if (currentValue && currentValue->isPrimitiveValue() && toCSSPrimitiveValue(currentValue)->isNumber()) {
|
| + gridLineNumber = toCSSPrimitiveValue(currentValue)->getIntValue();
|
| ++it;
|
| currentValue = it != values->end() ? toCSSPrimitiveValue(it->get()) : 0;
|
| }
|
|
|
| - if (currentValue && currentValue->isCustomIdent()) {
|
| - gridLineName = currentValue->getStringValue();
|
| + if (currentValue && currentValue->isStringValue() && toCSSStringValue(currentValue)->serializationType() == CSSStringValue::SerializeAsCustomIdentifier) {
|
| + gridLineName = toCSSStringValue(currentValue)->getStringValue();
|
| ++it;
|
| }
|
|
|
| @@ -470,8 +470,8 @@ void StyleBuilderConverter::convertGridTrackList(CSSValue* value, Vector<GridTra
|
| for (auto& currValue : *toCSSValueList(value)) {
|
| if (currValue->isGridLineNamesValue()) {
|
| for (auto& namedGridLineValue : toCSSGridLineNamesValue(*currValue)) {
|
| - ASSERT(toCSSPrimitiveValue(namedGridLineValue.get())->isCustomIdent());
|
| - String namedGridLine = toCSSPrimitiveValue(namedGridLineValue.get())->getStringValue();
|
| + ASSERT(toCSSStringValue(namedGridLineValue.get())->serializationType() == CSSStringValue::SerializeAsCustomIdentifier);
|
| + String namedGridLine = toCSSStringValue(namedGridLineValue.get())->getStringValue();
|
| NamedGridLinesMap::AddResult result = namedGridLines.add(namedGridLine, Vector<size_t>());
|
| result.storedValue->value.append(currentNamedGridLine);
|
| OrderedNamedGridLines::AddResult orderedInsertionResult = orderedNamedGridLines.add(currentNamedGridLine, Vector<String>());
|
| @@ -743,10 +743,10 @@ PassRefPtr<QuotesData> StyleBuilderConverter::convertQuotes(StyleResolverState&,
|
| for (size_t i = 0; i < list->length(); i += 2) {
|
| CSSValue* first = list->item(i);
|
| CSSValue* second = list->item(i + 1);
|
| - ASSERT(toCSSPrimitiveValue(first)->isString());
|
| - ASSERT(toCSSPrimitiveValue(second)->isString());
|
| - String startQuote = toCSSPrimitiveValue(first)->getStringValue();
|
| - String endQuote = toCSSPrimitiveValue(second)->getStringValue();
|
| + ASSERT(toCSSStringValue(first)->serializationType() == CSSStringValue::SerializeAsString);
|
| + ASSERT(toCSSStringValue(second)->serializationType() == CSSStringValue::SerializeAsString);
|
| + String startQuote = toCSSStringValue(first)->getStringValue();
|
| + String endQuote = toCSSStringValue(second)->getStringValue();
|
| quotes->addPair(std::make_pair(startQuote, endQuote));
|
| }
|
| return quotes.release();
|
|
|