bool FontFace::setFamilyValue(const CSSValue& familyValue) { AtomicString family; if (familyValue.isCustomIdentValue()) { family = AtomicString(toCSSCustomIdentValue(familyValue).value()); } else if (toCSSPrimitiveValue(familyValue).isValueID()) { // We need to use the raw text for all the generic family types, since @font-face is a way of actually // defining what font to use for those types. switch (toCSSPrimitiveValue(familyValue).getValueID()) { case CSSValueSerif: family = FontFamilyNames::webkit_serif; break; case CSSValueSansSerif: family = FontFamilyNames::webkit_sans_serif; break; case CSSValueCursive: family = FontFamilyNames::webkit_cursive; break; case CSSValueFantasy: family = FontFamilyNames::webkit_fantasy; break; case CSSValueMonospace: family = FontFamilyNames::webkit_monospace; break; case CSSValueWebkitPictograph: family = FontFamilyNames::webkit_pictograph; break; default: return false; } } m_family = family; return true; }
bool DeferredLegacyStyleInterpolation::interpolationRequiresStyleResolve(const CSSValue& value) { // FIXME: should not require resolving styles for inherit/initial/unset. if (value.isCSSWideKeyword()) return true; if (value.isBasicShapeCircleValue()) return interpolationRequiresStyleResolve(toCSSBasicShapeCircleValue(value)); if (value.isBasicShapeEllipseValue()) return interpolationRequiresStyleResolve(toCSSBasicShapeEllipseValue(value)); if (value.isBasicShapePolygonValue()) return interpolationRequiresStyleResolve(toCSSBasicShapePolygonValue(value)); if (value.isBasicShapeInsetValue()) return interpolationRequiresStyleResolve(toCSSBasicShapeInsetValue(value)); if (value.isColorValue()) return false; if (value.isStringValue() || value.isURIValue() || value.isCustomIdentValue()) return false; if (value.isPrimitiveValue()) return interpolationRequiresStyleResolve(toCSSPrimitiveValue(value)); if (value.isQuadValue()) return interpolationRequiresStyleResolve(toCSSQuadValue(value)); if (value.isValueList()) return interpolationRequiresStyleResolve(toCSSValueList(value)); if (value.isValuePair()) return interpolationRequiresStyleResolve(toCSSValuePair(value)); if (value.isImageValue()) return interpolationRequiresStyleResolve(toCSSImageValue(value)); if (value.isShadowValue()) return interpolationRequiresStyleResolve(toCSSShadowValue(value)); if (value.isSVGDocumentValue()) return interpolationRequiresStyleResolve(toCSSSVGDocumentValue(value)); // FIXME: consider other custom types. return true; }
AtomicString CSSToStyleMap::mapAnimationName(const CSSValue& value) { if (value.isInitialValue()) return CSSAnimationData::initialName(); if (value.isCustomIdentValue()) return AtomicString(toCSSCustomIdentValue(value).value()); ASSERT(toCSSPrimitiveValue(value).getValueID() == CSSValueNone); return CSSAnimationData::initialName(); }
CSSTransitionData::TransitionProperty CSSToStyleMap::mapAnimationProperty(const CSSValue& value) { if (value.isInitialValue()) return CSSTransitionData::initialProperty(); if (value.isCustomIdentValue()) { const CSSCustomIdentValue& customIdentValue = toCSSCustomIdentValue(value); if (customIdentValue.isKnownPropertyID()) return CSSTransitionData::TransitionProperty(customIdentValue.valueAsPropertyID()); return CSSTransitionData::TransitionProperty(customIdentValue.value()); } ASSERT(toCSSPrimitiveValue(value).getValueID() == CSSValueNone); return CSSTransitionData::TransitionProperty(CSSTransitionData::TransitionNone); }