| Index: Source/core/css/resolver/StyleBuilderConverter.cpp
|
| diff --git a/Source/core/css/resolver/StyleBuilderConverter.cpp b/Source/core/css/resolver/StyleBuilderConverter.cpp
|
| index c0e62fead1f50e243621548f65805909eb0bd0f6..54001e8d280f838f8e8dcf389b903618507e82ea 100644
|
| --- a/Source/core/css/resolver/StyleBuilderConverter.cpp
|
| +++ b/Source/core/css/resolver/StyleBuilderConverter.cpp
|
| @@ -59,53 +59,53 @@ static GridLength convertGridTrackBreadth(const StyleResolverState& state, CSSPr
|
| if (primitiveValue->isFlex())
|
| return GridLength(primitiveValue->getDoubleValue());
|
|
|
| - return StyleBuilderConverter::convertLengthOrAuto(state, primitiveValue);
|
| + return StyleBuilderConverter::convertLengthOrAuto(state, CSSValue(*primitiveValue));
|
| }
|
|
|
| } // namespace
|
|
|
| -PassRefPtr<StyleReflection> StyleBuilderConverter::convertBoxReflect(StyleResolverState& state, CSSValue* value)
|
| +PassRefPtr<StyleReflection> StyleBuilderConverter::convertBoxReflect(StyleResolverState& state, CSSValue value)
|
| {
|
| - if (value->isPrimitiveValue()) {
|
| - ASSERT(toCSSPrimitiveValue(value)->getValueID() == CSSValueNone);
|
| + if (value.isPrimitiveValue()) {
|
| + ASSERT(toCSSPrimitiveValue(value).getValueID() == CSSValueNone);
|
| return ComputedStyle::initialBoxReflect();
|
| }
|
|
|
| - CSSReflectValue* reflectValue = toCSSReflectValue(value);
|
| + CSSReflectValue& reflectValue = toCSSReflectValue(value);
|
| RefPtr<StyleReflection> reflection = StyleReflection::create();
|
| - reflection->setDirection(*reflectValue->direction());
|
| - if (reflectValue->offset())
|
| - reflection->setOffset(reflectValue->offset()->convertToLength(state.cssToLengthConversionData()));
|
| + reflection->setDirection(*reflectValue.direction());
|
| + if (reflectValue.offset())
|
| + reflection->setOffset(reflectValue.offset()->convertToLength(state.cssToLengthConversionData()));
|
| NinePieceImage mask;
|
| mask.setMaskDefaults();
|
| - CSSToStyleMap::mapNinePieceImage(state, CSSPropertyWebkitBoxReflect, reflectValue->mask(), mask);
|
| + CSSToStyleMap::mapNinePieceImage(state, CSSPropertyWebkitBoxReflect, reflectValue.mask(), mask);
|
| reflection->setMask(mask);
|
|
|
| return reflection.release();
|
| }
|
|
|
| -Color StyleBuilderConverter::convertColor(StyleResolverState& state, CSSValue* value, bool forVisitedLink)
|
| +Color StyleBuilderConverter::convertColor(StyleResolverState& state, CSSValue value, bool forVisitedLink)
|
| {
|
| - CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
|
| + CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value);
|
| return state.document().textLinkColors().colorFromPrimitiveValue(primitiveValue, state.style()->color(), forVisitedLink);
|
| }
|
|
|
| -AtomicString StyleBuilderConverter::convertFragmentIdentifier(StyleResolverState& state, CSSValue* value)
|
| +AtomicString StyleBuilderConverter::convertFragmentIdentifier(StyleResolverState& state, CSSValue value)
|
| {
|
| - CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
|
| - if (primitiveValue->isURI())
|
| - return SVGURIReference::fragmentIdentifierFromIRIString(primitiveValue->getStringValue(), state.element()->treeScope());
|
| + CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value);
|
| + if (primitiveValue.isURI())
|
| + return SVGURIReference::fragmentIdentifierFromIRIString(primitiveValue.getStringValue(), state.element()->treeScope());
|
| return nullAtom;
|
| }
|
|
|
| -LengthBox StyleBuilderConverter::convertClip(StyleResolverState& state, CSSValue* value)
|
| +LengthBox StyleBuilderConverter::convertClip(StyleResolverState& state, CSSValue value)
|
| {
|
| - Rect* rect = toCSSPrimitiveValue(value)->getRectValue();
|
| + Rect* rect = toCSSPrimitiveValue(value).getRectValue();
|
|
|
| - return LengthBox(convertLengthOrAuto(state, rect->top()),
|
| - convertLengthOrAuto(state, rect->right()),
|
| - convertLengthOrAuto(state, rect->bottom()),
|
| - convertLengthOrAuto(state, rect->left()));
|
| + return LengthBox(convertLengthOrAuto(state, CSSValue(*rect->top())),
|
| + convertLengthOrAuto(state, CSSValue(*rect->right())),
|
| + convertLengthOrAuto(state, CSSValue(*rect->bottom())),
|
| + convertLengthOrAuto(state, CSSValue(*rect->left())));
|
| }
|
|
|
| static FontDescription::GenericFamilyType convertGenericFamily(CSSValueID valueID)
|
| @@ -130,32 +130,32 @@ static FontDescription::GenericFamilyType convertGenericFamily(CSSValueID valueI
|
| }
|
| }
|
|
|
| -static bool convertFontFamilyName(StyleResolverState& state, CSSPrimitiveValue* primitiveValue,
|
| +static bool convertFontFamilyName(StyleResolverState& state, CSSPrimitiveValue& primitiveValue,
|
| FontDescription::GenericFamilyType& genericFamily, AtomicString& familyName)
|
| {
|
| - if (primitiveValue->isCustomIdent()) {
|
| + if (primitiveValue.isCustomIdent()) {
|
| genericFamily = FontDescription::NoFamily;
|
| - familyName = AtomicString(primitiveValue->getStringValue());
|
| + familyName = AtomicString(primitiveValue.getStringValue());
|
| } else if (state.document().settings()) {
|
| - genericFamily = convertGenericFamily(primitiveValue->getValueID());
|
| + genericFamily = convertGenericFamily(primitiveValue.getValueID());
|
| familyName = state.fontBuilder().genericFontFamilyName(genericFamily);
|
| }
|
|
|
| return !familyName.isEmpty();
|
| }
|
|
|
| -FontDescription::FamilyDescription StyleBuilderConverter::convertFontFamily(StyleResolverState& state, CSSValue* value)
|
| +FontDescription::FamilyDescription StyleBuilderConverter::convertFontFamily(StyleResolverState& state, CSSValue value)
|
| {
|
| - ASSERT(value->isValueList());
|
| + ASSERT(value.isValueList());
|
|
|
| FontDescription::FamilyDescription desc(FontDescription::NoFamily);
|
| FontFamily* currFamily = nullptr;
|
|
|
| - for (auto& family : toCSSValueList(*value)) {
|
| + for (auto& family : toCSSValueList(value)) {
|
| FontDescription::GenericFamilyType genericFamily = FontDescription::NoFamily;
|
| AtomicString familyName;
|
|
|
| - if (!convertFontFamilyName(state, toCSSPrimitiveValue(family.get()), genericFamily, familyName))
|
| + if (!convertFontFamilyName(state, toCSSPrimitiveValue(family), genericFamily, familyName))
|
| continue;
|
|
|
| if (!currFamily) {
|
| @@ -175,22 +175,22 @@ FontDescription::FamilyDescription StyleBuilderConverter::convertFontFamily(Styl
|
| return desc;
|
| }
|
|
|
| -PassRefPtr<FontFeatureSettings> StyleBuilderConverter::convertFontFeatureSettings(StyleResolverState& state, CSSValue* value)
|
| +PassRefPtr<FontFeatureSettings> StyleBuilderConverter::convertFontFeatureSettings(StyleResolverState& state, CSSValue value)
|
| {
|
| - if (value->isPrimitiveValue() && toCSSPrimitiveValue(value)->getValueID() == CSSValueNormal)
|
| + if (value.isPrimitiveValue() && toCSSPrimitiveValue(value).getValueID() == CSSValueNormal)
|
| return FontBuilder::initialFeatureSettings();
|
|
|
| - CSSValueList* list = toCSSValueList(value);
|
| + CSSValueList& list = toCSSValueList(value);
|
| RefPtr<FontFeatureSettings> settings = FontFeatureSettings::create();
|
| - int len = list->length();
|
| + int len = list.length();
|
| for (int i = 0; i < len; ++i) {
|
| - CSSFontFeatureValue* feature = toCSSFontFeatureValue(list->item(i));
|
| - settings->append(FontFeature(feature->tag(), feature->value()));
|
| + CSSFontFeatureValue& feature = toCSSFontFeatureValue(list.item(i));
|
| + settings->append(FontFeature(feature.tag(), feature.value()));
|
| }
|
| return settings;
|
| }
|
|
|
| -static float computeFontSize(StyleResolverState& state, CSSPrimitiveValue* primitiveValue, const FontDescription::Size& parentSize)
|
| +static float computeFontSize(StyleResolverState& state, CSSPrimitiveValue& primitiveValue, const FontDescription::Size& parentSize)
|
| {
|
| float em = state.parentStyle()->specifiedFontSize();
|
| float rem = state.rootElementStyle() ? state.rootElementStyle()->specifiedFontSize() : 1.0f;
|
| @@ -198,18 +198,18 @@ static float computeFontSize(StyleResolverState& state, CSSPrimitiveValue* primi
|
| CSSToLengthConversionData::ViewportSize viewportSize(state.document().layoutView());
|
|
|
| CSSToLengthConversionData conversionData(state.style(), fontSizes, viewportSize, 1.0f);
|
| - if (primitiveValue->isLength())
|
| - return primitiveValue->computeLength<float>(conversionData);
|
| - if (primitiveValue->isCalculatedPercentageWithLength())
|
| - return primitiveValue->cssCalcValue()->toCalcValue(conversionData)->evaluate(parentSize.value);
|
| + if (primitiveValue.isLength())
|
| + return primitiveValue.computeLength<float>(conversionData);
|
| + if (primitiveValue.isCalculatedPercentageWithLength())
|
| + return primitiveValue.cssCalcValue()->toCalcValue(conversionData)->evaluate(parentSize.value);
|
|
|
| ASSERT_NOT_REACHED();
|
| return 0;
|
| }
|
|
|
| -FontDescription::Size StyleBuilderConverter::convertFontSize(StyleResolverState& state, CSSValue* value)
|
| +FontDescription::Size StyleBuilderConverter::convertFontSize(StyleResolverState& state, CSSValue value)
|
| {
|
| - CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
|
| + CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value);
|
|
|
| FontDescription::Size parentSize(0, 0.0f, false);
|
|
|
| @@ -217,7 +217,7 @@ FontDescription::Size StyleBuilderConverter::convertFontSize(StyleResolverState&
|
| if (state.parentStyle())
|
| parentSize = state.parentFontDescription().size();
|
|
|
| - if (CSSValueID valueID = primitiveValue->getValueID()) {
|
| + if (CSSValueID valueID = primitiveValue.getValueID()) {
|
| switch (valueID) {
|
| case CSSValueXxSmall:
|
| case CSSValueXSmall:
|
| @@ -240,44 +240,44 @@ FontDescription::Size StyleBuilderConverter::convertFontSize(StyleResolverState&
|
|
|
| bool parentIsAbsoluteSize = state.parentFontDescription().isAbsoluteSize();
|
|
|
| - if (primitiveValue->isPercentage())
|
| - return FontDescription::Size(0, (primitiveValue->getFloatValue() * parentSize.value / 100.0f), parentIsAbsoluteSize);
|
| + if (primitiveValue.isPercentage())
|
| + return FontDescription::Size(0, (primitiveValue.getFloatValue() * parentSize.value / 100.0f), parentIsAbsoluteSize);
|
|
|
| - return FontDescription::Size(0, computeFontSize(state, primitiveValue, parentSize), parentIsAbsoluteSize || !primitiveValue->isFontRelativeLength());
|
| + return FontDescription::Size(0, computeFontSize(state, primitiveValue, parentSize), parentIsAbsoluteSize || !primitiveValue.isFontRelativeLength());
|
| }
|
|
|
| -float StyleBuilderConverter::convertFontSizeAdjust(StyleResolverState& state, CSSValue* value)
|
| +float StyleBuilderConverter::convertFontSizeAdjust(StyleResolverState& state, CSSValue value)
|
| {
|
| - CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
|
| - if (primitiveValue->getValueID() == CSSValueNone)
|
| + CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value);
|
| + if (primitiveValue.getValueID() == CSSValueNone)
|
| return FontBuilder::initialSizeAdjust();
|
|
|
| - ASSERT(primitiveValue->isNumber());
|
| - return primitiveValue->getFloatValue();
|
| + ASSERT(primitiveValue.isNumber());
|
| + return primitiveValue.getFloatValue();
|
| }
|
|
|
| -FontWeight StyleBuilderConverter::convertFontWeight(StyleResolverState& state, CSSValue* value)
|
| +FontWeight StyleBuilderConverter::convertFontWeight(StyleResolverState& state, CSSValue value)
|
| {
|
| - CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
|
| - switch (primitiveValue->getValueID()) {
|
| + CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value);
|
| + switch (primitiveValue.getValueID()) {
|
| case CSSValueBolder:
|
| return FontDescription::bolderWeight(state.parentStyle()->fontDescription().weight());
|
| case CSSValueLighter:
|
| return FontDescription::lighterWeight(state.parentStyle()->fontDescription().weight());
|
| default:
|
| - return *primitiveValue;
|
| + return primitiveValue;
|
| }
|
| }
|
|
|
| -FontDescription::VariantLigatures StyleBuilderConverter::convertFontVariantLigatures(StyleResolverState&, CSSValue* value)
|
| +FontDescription::VariantLigatures StyleBuilderConverter::convertFontVariantLigatures(StyleResolverState&, CSSValue value)
|
| {
|
| - if (value->isValueList()) {
|
| + if (value.isValueList()) {
|
| FontDescription::VariantLigatures ligatures;
|
| - CSSValueList* valueList = toCSSValueList(value);
|
| - for (size_t i = 0; i < valueList->length(); ++i) {
|
| - CSSValue* item = valueList->item(i);
|
| - CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(item);
|
| - switch (primitiveValue->getValueID()) {
|
| + CSSValueList& valueList = toCSSValueList(value);
|
| + for (size_t i = 0; i < valueList.length(); ++i) {
|
| + CSSValue item = valueList.item(i);
|
| + CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(item);
|
| + switch (primitiveValue.getValueID()) {
|
| case CSSValueNoCommonLigatures:
|
| ligatures.common = FontDescription::DisabledLigaturesState;
|
| break;
|
| @@ -310,21 +310,21 @@ FontDescription::VariantLigatures StyleBuilderConverter::convertFontVariantLigat
|
| return ligatures;
|
| }
|
|
|
| - ASSERT_WITH_SECURITY_IMPLICATION(value->isPrimitiveValue());
|
| - ASSERT(toCSSPrimitiveValue(value)->getValueID() == CSSValueNormal);
|
| + ASSERT_WITH_SECURITY_IMPLICATION(value.isPrimitiveValue());
|
| + ASSERT(toCSSPrimitiveValue(value).getValueID() == CSSValueNormal);
|
| return FontDescription::VariantLigatures();
|
| }
|
|
|
| -EGlyphOrientation StyleBuilderConverter::convertGlyphOrientation(StyleResolverState&, CSSValue* value)
|
| +EGlyphOrientation StyleBuilderConverter::convertGlyphOrientation(StyleResolverState&, CSSValue value)
|
| {
|
| - if (!value->isPrimitiveValue())
|
| + if (!value.isPrimitiveValue())
|
| return GO_0DEG;
|
|
|
| - CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
|
| - if (primitiveValue->primitiveType() != CSSPrimitiveValue::CSS_DEG)
|
| + CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value);
|
| + if (primitiveValue.primitiveType() != CSSPrimitiveValue::CSS_DEG)
|
| return GO_0DEG;
|
|
|
| - float angle = fabsf(fmodf(primitiveValue->getFloatValue(), 360.0f));
|
| + float angle = fabsf(fmodf(primitiveValue.getFloatValue(), 360.0f));
|
|
|
| if (angle <= 45.0f || angle > 315.0f)
|
| return GO_0DEG;
|
| @@ -335,11 +335,11 @@ EGlyphOrientation StyleBuilderConverter::convertGlyphOrientation(StyleResolverSt
|
| return GO_270DEG;
|
| }
|
|
|
| -StyleSelfAlignmentData StyleBuilderConverter::convertSelfOrDefaultAlignmentData(StyleResolverState&, CSSValue* value)
|
| +StyleSelfAlignmentData StyleBuilderConverter::convertSelfOrDefaultAlignmentData(StyleResolverState&, CSSValue value)
|
| {
|
| StyleSelfAlignmentData alignmentData = ComputedStyle::initialSelfAlignment();
|
| - CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
|
| - if (Pair* pairValue = primitiveValue->getPairValue()) {
|
| + CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value);
|
| + if (Pair* pairValue = primitiveValue.getPairValue()) {
|
| if (pairValue->first()->getValueID() == CSSValueLegacy) {
|
| alignmentData.setPositionType(LegacyPosition);
|
| alignmentData.setPosition(*pairValue->second());
|
| @@ -348,31 +348,31 @@ StyleSelfAlignmentData StyleBuilderConverter::convertSelfOrDefaultAlignmentData(
|
| alignmentData.setOverflow(*pairValue->second());
|
| }
|
| } else {
|
| - alignmentData.setPosition(*primitiveValue);
|
| + alignmentData.setPosition(primitiveValue);
|
| }
|
| return alignmentData;
|
| }
|
|
|
| -StyleContentAlignmentData StyleBuilderConverter::convertContentAlignmentData(StyleResolverState&, CSSValue* value)
|
| +StyleContentAlignmentData StyleBuilderConverter::convertContentAlignmentData(StyleResolverState&, CSSValue value)
|
| {
|
| StyleContentAlignmentData alignmentData = ComputedStyle::initialContentAlignment();
|
| - CSSContentDistributionValue* contentValue = toCSSContentDistributionValue(value);
|
| - if (contentValue->distribution()->getValueID() != CSSValueInvalid)
|
| - alignmentData.setDistribution(*contentValue->distribution());
|
| - if (contentValue->position()->getValueID() != CSSValueInvalid)
|
| - alignmentData.setPosition(*contentValue->position());
|
| - if (contentValue->overflow()->getValueID() != CSSValueInvalid)
|
| - alignmentData.setOverflow(*contentValue->overflow());
|
| + CSSContentDistributionValue& contentValue = toCSSContentDistributionValue(value);
|
| + if (contentValue.distribution()->getValueID() != CSSValueInvalid)
|
| + alignmentData.setDistribution(*contentValue.distribution());
|
| + if (contentValue.position()->getValueID() != CSSValueInvalid)
|
| + alignmentData.setPosition(*contentValue.position());
|
| + if (contentValue.overflow()->getValueID() != CSSValueInvalid)
|
| + alignmentData.setOverflow(*contentValue.overflow());
|
| return alignmentData;
|
| }
|
|
|
| -GridAutoFlow StyleBuilderConverter::convertGridAutoFlow(StyleResolverState&, CSSValue* value)
|
| +GridAutoFlow StyleBuilderConverter::convertGridAutoFlow(StyleResolverState&, CSSValue value)
|
| {
|
| - CSSValueList* list = toCSSValueList(value);
|
| + CSSValueList& list = toCSSValueList(value);
|
|
|
| - ASSERT(list->length() >= 1);
|
| - CSSPrimitiveValue* first = toCSSPrimitiveValue(list->item(0));
|
| - CSSPrimitiveValue* second = list->length() == 2 ? toCSSPrimitiveValue(list->item(1)) : nullptr;
|
| + ASSERT(list.length() >= 1);
|
| + CSSPrimitiveValue* first = &toCSSPrimitiveValue(list.item(0));
|
| + CSSPrimitiveValue* second = list.length() == 2 ? &toCSSPrimitiveValue(list.item(1)) : nullptr;
|
|
|
| switch (first->getValueID()) {
|
| case CSSValueRow:
|
| @@ -393,46 +393,46 @@ GridAutoFlow StyleBuilderConverter::convertGridAutoFlow(StyleResolverState&, CSS
|
| }
|
| }
|
|
|
| -GridPosition StyleBuilderConverter::convertGridPosition(StyleResolverState&, CSSValue* value)
|
| +GridPosition StyleBuilderConverter::convertGridPosition(StyleResolverState&, CSSValue value)
|
| {
|
| // We accept the specification's grammar:
|
| // 'auto' | [ <integer> || <custom-ident> ] | [ span && [ <integer> || <custom-ident> ] ] | <custom-ident>
|
|
|
| GridPosition position;
|
|
|
| - if (value->isPrimitiveValue()) {
|
| - CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
|
| + if (value.isPrimitiveValue()) {
|
| + CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value);
|
| // We translate <custom-ident> to <string> during parsing as it
|
| // makes handling it more simple.
|
| - if (primitiveValue->isCustomIdent()) {
|
| - position.setNamedGridArea(primitiveValue->getStringValue());
|
| + if (primitiveValue.isCustomIdent()) {
|
| + position.setNamedGridArea(primitiveValue.getStringValue());
|
| return position;
|
| }
|
|
|
| - ASSERT(primitiveValue->getValueID() == CSSValueAuto);
|
| + ASSERT(primitiveValue.getValueID() == CSSValueAuto);
|
| return position;
|
| }
|
|
|
| - CSSValueList* values = toCSSValueList(value);
|
| - ASSERT(values->length());
|
| + CSSValueList& values = toCSSValueList(value);
|
| + ASSERT(values.length());
|
|
|
| bool isSpanPosition = false;
|
| // The specification makes the <integer> optional, in which case it default to '1'.
|
| int gridLineNumber = 1;
|
| String gridLineName;
|
|
|
| - auto it = values->begin();
|
| - CSSPrimitiveValue* currentValue = toCSSPrimitiveValue(it->get());
|
| + auto it = values.begin();
|
| + CSSPrimitiveValue* currentValue = &toCSSPrimitiveValue(*it);
|
| if (currentValue->getValueID() == CSSValueSpan) {
|
| isSpanPosition = true;
|
| ++it;
|
| - currentValue = it != values->end() ? toCSSPrimitiveValue(it->get()) : 0;
|
| + currentValue = it != values.end() ? &toCSSPrimitiveValue(*it) : 0;
|
| }
|
|
|
| if (currentValue && currentValue->isNumber()) {
|
| gridLineNumber = currentValue->getIntValue();
|
| ++it;
|
| - currentValue = it != values->end() ? toCSSPrimitiveValue(it->get()) : 0;
|
| + currentValue = it != values.end() ? &toCSSPrimitiveValue(*it) : 0;
|
| }
|
|
|
| if (currentValue && currentValue->isCustomIdent()) {
|
| @@ -440,7 +440,7 @@ GridPosition StyleBuilderConverter::convertGridPosition(StyleResolverState&, CSS
|
| ++it;
|
| }
|
|
|
| - ASSERT(it == values->end());
|
| + ASSERT(it == values.end());
|
| if (isSpanPosition)
|
| position.setSpanPosition(gridLineNumber, gridLineName);
|
| else
|
| @@ -449,34 +449,34 @@ GridPosition StyleBuilderConverter::convertGridPosition(StyleResolverState&, CSS
|
| return position;
|
| }
|
|
|
| -GridTrackSize StyleBuilderConverter::convertGridTrackSize(StyleResolverState& state, CSSValue* value)
|
| +GridTrackSize StyleBuilderConverter::convertGridTrackSize(StyleResolverState& state, CSSValue value)
|
| {
|
| - if (value->isPrimitiveValue())
|
| - return GridTrackSize(convertGridTrackBreadth(state, toCSSPrimitiveValue(value)));
|
| + if (value.isPrimitiveValue())
|
| + return GridTrackSize(convertGridTrackBreadth(state, &toCSSPrimitiveValue(value)));
|
|
|
| - CSSFunctionValue* minmaxFunction = toCSSFunctionValue(value);
|
| - ASSERT_WITH_SECURITY_IMPLICATION(minmaxFunction->length() == 2);
|
| - GridLength minTrackBreadth(convertGridTrackBreadth(state, toCSSPrimitiveValue(minmaxFunction->item(0))));
|
| - GridLength maxTrackBreadth(convertGridTrackBreadth(state, toCSSPrimitiveValue(minmaxFunction->item(1))));
|
| + CSSFunctionValue& minmaxFunction = toCSSFunctionValue(value);
|
| + ASSERT_WITH_SECURITY_IMPLICATION(minmaxFunction.length() == 2);
|
| + GridLength minTrackBreadth(convertGridTrackBreadth(state, &toCSSPrimitiveValue(minmaxFunction.item(0))));
|
| + GridLength maxTrackBreadth(convertGridTrackBreadth(state, &toCSSPrimitiveValue(minmaxFunction.item(1))));
|
| return GridTrackSize(minTrackBreadth, maxTrackBreadth);
|
| }
|
|
|
| -bool StyleBuilderConverter::convertGridTrackList(CSSValue* value, Vector<GridTrackSize>& trackSizes, NamedGridLinesMap& namedGridLines, OrderedNamedGridLines& orderedNamedGridLines, StyleResolverState& state)
|
| +bool StyleBuilderConverter::convertGridTrackList(CSSValue value, Vector<GridTrackSize>& trackSizes, NamedGridLinesMap& namedGridLines, OrderedNamedGridLines& orderedNamedGridLines, StyleResolverState& state)
|
| {
|
| // Handle 'none'.
|
| - if (value->isPrimitiveValue()) {
|
| - CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
|
| - return primitiveValue->getValueID() == CSSValueNone;
|
| + if (value.isPrimitiveValue()) {
|
| + CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value);
|
| + return primitiveValue.getValueID() == CSSValueNone;
|
| }
|
|
|
| - if (!value->isValueList())
|
| + if (!value.isValueList())
|
| return false;
|
|
|
| size_t currentNamedGridLine = 0;
|
| - for (auto& currValue : *toCSSValueList(value)) {
|
| - if (currValue->isGridLineNamesValue()) {
|
| - for (auto& namedGridLineValue : toCSSGridLineNamesValue(*currValue)) {
|
| - String namedGridLine = toCSSPrimitiveValue(namedGridLineValue.get())->getStringValue();
|
| + for (auto& currValue : toCSSValueList(value)) {
|
| + if (currValue.isGridLineNamesValue()) {
|
| + for (auto& namedGridLineValue : toCSSGridLineNamesValue(currValue)) {
|
| + String namedGridLine = toCSSPrimitiveValue(namedGridLineValue).getStringValue();
|
| NamedGridLinesMap::AddResult result = namedGridLines.add(namedGridLine, Vector<size_t>());
|
| result.storedValue->value.append(currentNamedGridLine);
|
| OrderedNamedGridLines::AddResult orderedInsertionResult = orderedNamedGridLines.add(currentNamedGridLine, Vector<String>());
|
| @@ -486,7 +486,7 @@ bool StyleBuilderConverter::convertGridTrackList(CSSValue* value, Vector<GridTra
|
| }
|
|
|
| ++currentNamedGridLine;
|
| - trackSizes.append(convertGridTrackSize(state, currValue.get()));
|
| + trackSizes.append(convertGridTrackSize(state, currValue));
|
| }
|
|
|
| // The parser should have rejected any <track-list> without any <track-size> as
|
| @@ -532,28 +532,28 @@ void StyleBuilderConverter::createImplicitNamedGridLinesFromGridArea(const Named
|
| }
|
| }
|
|
|
| -Length StyleBuilderConverter::convertLength(const StyleResolverState& state, CSSValue* value)
|
| +Length StyleBuilderConverter::convertLength(const StyleResolverState& state, CSSValue value)
|
| {
|
| - return toCSSPrimitiveValue(value)->convertToLength(state.cssToLengthConversionData());
|
| + return toCSSPrimitiveValue(value).convertToLength(state.cssToLengthConversionData());
|
| }
|
|
|
| -UnzoomedLength StyleBuilderConverter::convertUnzoomedLength(const StyleResolverState& state, CSSValue* value)
|
| +UnzoomedLength StyleBuilderConverter::convertUnzoomedLength(const StyleResolverState& state, CSSValue value)
|
| {
|
| - return UnzoomedLength(toCSSPrimitiveValue(value)->convertToLength(state.cssToLengthConversionData().copyWithAdjustedZoom(1.0f)));
|
| + return UnzoomedLength(toCSSPrimitiveValue(value).convertToLength(state.cssToLengthConversionData().copyWithAdjustedZoom(1.0f)));
|
| }
|
|
|
| -Length StyleBuilderConverter::convertLengthOrAuto(const StyleResolverState& state, CSSValue* value)
|
| +Length StyleBuilderConverter::convertLengthOrAuto(const StyleResolverState& state, CSSValue value)
|
| {
|
| - CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
|
| - if (primitiveValue->getValueID() == CSSValueAuto)
|
| + CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value);
|
| + if (primitiveValue.getValueID() == CSSValueAuto)
|
| return Length(Auto);
|
| - return primitiveValue->convertToLength(state.cssToLengthConversionData());
|
| + return primitiveValue.convertToLength(state.cssToLengthConversionData());
|
| }
|
|
|
| -Length StyleBuilderConverter::convertLengthSizing(StyleResolverState& state, CSSValue* value)
|
| +Length StyleBuilderConverter::convertLengthSizing(StyleResolverState& state, CSSValue value)
|
| {
|
| - CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
|
| - switch (primitiveValue->getValueID()) {
|
| + CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value);
|
| + switch (primitiveValue.getValueID()) {
|
| case CSSValueInvalid:
|
| return convertLength(state, value);
|
| case CSSValueIntrinsic:
|
| @@ -578,30 +578,30 @@ Length StyleBuilderConverter::convertLengthSizing(StyleResolverState& state, CSS
|
| }
|
| }
|
|
|
| -Length StyleBuilderConverter::convertLengthMaxSizing(StyleResolverState& state, CSSValue* value)
|
| +Length StyleBuilderConverter::convertLengthMaxSizing(StyleResolverState& state, CSSValue value)
|
| {
|
| - CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
|
| - if (primitiveValue->getValueID() == CSSValueNone)
|
| + CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value);
|
| + if (primitiveValue.getValueID() == CSSValueNone)
|
| return Length(MaxSizeNone);
|
| return convertLengthSizing(state, value);
|
| }
|
|
|
| -TabSize StyleBuilderConverter::convertLengthOrTabSpaces(StyleResolverState& state, CSSValue* value)
|
| +TabSize StyleBuilderConverter::convertLengthOrTabSpaces(StyleResolverState& state, CSSValue value)
|
| {
|
| - CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
|
| - if (primitiveValue->isNumber())
|
| - return TabSize(primitiveValue->getIntValue());
|
| - return TabSize(primitiveValue->computeLength<float>(state.cssToLengthConversionData()));
|
| + CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value);
|
| + if (primitiveValue.isNumber())
|
| + return TabSize(primitiveValue.getIntValue());
|
| + return TabSize(primitiveValue.computeLength<float>(state.cssToLengthConversionData()));
|
| }
|
|
|
| -LineBoxContain StyleBuilderConverter::convertLineBoxContain(StyleResolverState&, CSSValue* value)
|
| +LineBoxContain StyleBuilderConverter::convertLineBoxContain(StyleResolverState&, CSSValue value)
|
| {
|
| - if (value->isPrimitiveValue()) {
|
| - ASSERT(toCSSPrimitiveValue(value)->getValueID() == CSSValueNone);
|
| + if (value.isPrimitiveValue()) {
|
| + ASSERT(toCSSPrimitiveValue(value).getValueID() == CSSValueNone);
|
| return LineBoxContainNone;
|
| }
|
|
|
| - return toCSSLineBoxContainValue(value)->value();
|
| + return toCSSLineBoxContainValue(value).value();
|
| }
|
|
|
| static CSSToLengthConversionData lineHeightToLengthConversionData(StyleResolverState& state)
|
| @@ -612,77 +612,77 @@ static CSSToLengthConversionData lineHeightToLengthConversionData(StyleResolverS
|
| return state.cssToLengthConversionData().copyWithAdjustedZoom(multiplier);
|
| }
|
|
|
| -Length StyleBuilderConverter::convertLineHeight(StyleResolverState& state, CSSValue* value)
|
| +Length StyleBuilderConverter::convertLineHeight(StyleResolverState& state, CSSValue value)
|
| {
|
| - CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
|
| + CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value);
|
|
|
| - if (primitiveValue->isLength())
|
| - return primitiveValue->computeLength<Length>(lineHeightToLengthConversionData(state));
|
| - if (primitiveValue->isPercentage())
|
| - return Length((state.style()->computedFontSize() * primitiveValue->getIntValue()) / 100.0, Fixed);
|
| - if (primitiveValue->isNumber())
|
| - return Length(primitiveValue->getDoubleValue() * 100.0, Percent);
|
| - if (primitiveValue->isCalculated()) {
|
| - Length zoomedLength = Length(primitiveValue->cssCalcValue()->toCalcValue(lineHeightToLengthConversionData(state)));
|
| + if (primitiveValue.isLength())
|
| + return primitiveValue.computeLength<Length>(lineHeightToLengthConversionData(state));
|
| + if (primitiveValue.isPercentage())
|
| + return Length((state.style()->computedFontSize() * primitiveValue.getIntValue()) / 100.0, Fixed);
|
| + if (primitiveValue.isNumber())
|
| + return Length(primitiveValue.getDoubleValue() * 100.0, Percent);
|
| + if (primitiveValue.isCalculated()) {
|
| + Length zoomedLength = Length(primitiveValue.cssCalcValue()->toCalcValue(lineHeightToLengthConversionData(state)));
|
| return Length(valueForLength(zoomedLength, state.style()->fontSize()), Fixed);
|
| }
|
|
|
| - ASSERT(primitiveValue->getValueID() == CSSValueNormal);
|
| + ASSERT(primitiveValue.getValueID() == CSSValueNormal);
|
| return ComputedStyle::initialLineHeight();
|
| }
|
|
|
| -float StyleBuilderConverter::convertNumberOrPercentage(StyleResolverState& state, CSSValue* value)
|
| +float StyleBuilderConverter::convertNumberOrPercentage(StyleResolverState& state, CSSValue value)
|
| {
|
| - CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
|
| - ASSERT(primitiveValue->isNumber() || primitiveValue->isPercentage());
|
| - if (primitiveValue->isNumber())
|
| - return primitiveValue->getFloatValue();
|
| - return primitiveValue->getFloatValue() / 100.0f;
|
| + CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value);
|
| + ASSERT(primitiveValue.isNumber() || primitiveValue.isPercentage());
|
| + if (primitiveValue.isNumber())
|
| + return primitiveValue.getFloatValue();
|
| + return primitiveValue.getFloatValue() / 100.0f;
|
| }
|
|
|
| template <CSSValueID cssValueFor0, CSSValueID cssValueFor100>
|
| static Length convertPositionLength(StyleResolverState& state, CSSPrimitiveValue* primitiveValue)
|
| {
|
| if (Pair* pair = primitiveValue->getPairValue()) {
|
| - Length length = StyleBuilderConverter::convertLength(state, pair->second());
|
| + Length length = StyleBuilderConverter::convertLength(state, CSSValue(*pair->second()));
|
| if (pair->first()->getValueID() == cssValueFor0)
|
| return length;
|
| ASSERT(pair->first()->getValueID() == cssValueFor100);
|
| return length.subtractFromOneHundredPercent();
|
| }
|
|
|
| - return StyleBuilderConverter::convertLength(state, primitiveValue);
|
| + return StyleBuilderConverter::convertLength(state, CSSValue(*primitiveValue));
|
| }
|
|
|
| -LengthPoint StyleBuilderConverter::convertPosition(StyleResolverState& state, CSSValue* value)
|
| +LengthPoint StyleBuilderConverter::convertPosition(StyleResolverState& state, CSSValue value)
|
| {
|
| - CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
|
| - Pair* pair = primitiveValue->getPairValue();
|
| + CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value);
|
| + Pair* pair = primitiveValue.getPairValue();
|
| return LengthPoint(
|
| convertPositionLength<CSSValueLeft, CSSValueRight>(state, pair->first()),
|
| convertPositionLength<CSSValueTop, CSSValueBottom>(state, pair->second())
|
| );
|
| }
|
|
|
| -static float convertPerspectiveLength(StyleResolverState& state, CSSPrimitiveValue* primitiveValue)
|
| +static float convertPerspectiveLength(StyleResolverState& state, CSSPrimitiveValue& primitiveValue)
|
| {
|
| - return std::max(primitiveValue->computeLength<float>(state.cssToLengthConversionData()), 0.0f);
|
| + return std::max(primitiveValue.computeLength<float>(state.cssToLengthConversionData()), 0.0f);
|
| }
|
|
|
| -float StyleBuilderConverter::convertPerspective(StyleResolverState& state, CSSValue* value)
|
| +float StyleBuilderConverter::convertPerspective(StyleResolverState& state, CSSValue value)
|
| {
|
| - CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
|
| + CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value);
|
|
|
| - if (primitiveValue->getValueID() == CSSValueNone)
|
| + if (primitiveValue.getValueID() == CSSValueNone)
|
| return ComputedStyle::initialPerspective();
|
| return convertPerspectiveLength(state, primitiveValue);
|
| }
|
|
|
| template <CSSValueID cssValueFor0, CSSValueID cssValueFor100>
|
| -static Length convertOriginLength(StyleResolverState& state, CSSPrimitiveValue* primitiveValue)
|
| +static Length convertOriginLength(StyleResolverState& state, CSSPrimitiveValue& primitiveValue)
|
| {
|
| - if (primitiveValue->isValueID()) {
|
| - switch (primitiveValue->getValueID()) {
|
| + if (primitiveValue.isValueID()) {
|
| + switch (primitiveValue.getValueID()) {
|
| case cssValueFor0:
|
| return Length(0, Percent);
|
| case cssValueFor100:
|
| @@ -694,16 +694,16 @@ static Length convertOriginLength(StyleResolverState& state, CSSPrimitiveValue*
|
| }
|
| }
|
|
|
| - return StyleBuilderConverter::convertLength(state, primitiveValue);
|
| + return StyleBuilderConverter::convertLength(state, CSSValue(primitiveValue));
|
| }
|
|
|
| -LengthPoint StyleBuilderConverter::convertPerspectiveOrigin(StyleResolverState& state, CSSValue* value)
|
| +LengthPoint StyleBuilderConverter::convertPerspectiveOrigin(StyleResolverState& state, CSSValue value)
|
| {
|
| - CSSValueList* list = toCSSValueList(value);
|
| - ASSERT(list->length() == 2);
|
| + CSSValueList& list = toCSSValueList(value);
|
| + ASSERT(list.length() == 2);
|
|
|
| - CSSPrimitiveValue* primitiveValueX = toCSSPrimitiveValue(list->item(0));
|
| - CSSPrimitiveValue* primitiveValueY = toCSSPrimitiveValue(list->item(1));
|
| + CSSPrimitiveValue& primitiveValueX = toCSSPrimitiveValue(list.item(0));
|
| + CSSPrimitiveValue& primitiveValueY = toCSSPrimitiveValue(list.item(1));
|
|
|
| return LengthPoint(
|
| convertOriginLength<CSSValueLeft, CSSValueRight>(state, primitiveValueX),
|
| @@ -711,14 +711,14 @@ LengthPoint StyleBuilderConverter::convertPerspectiveOrigin(StyleResolverState&
|
| );
|
| }
|
|
|
| -EPaintOrder StyleBuilderConverter::convertPaintOrder(StyleResolverState&, CSSValue* cssPaintOrder)
|
| +EPaintOrder StyleBuilderConverter::convertPaintOrder(StyleResolverState&, CSSValue cssPaintOrder)
|
| {
|
| - if (cssPaintOrder->isValueList()) {
|
| + if (cssPaintOrder.isValueList()) {
|
| int paintOrder = 0;
|
| - const CSSValueList& list = *toCSSValueList(cssPaintOrder);
|
| + const CSSValueList& list = toCSSValueList(cssPaintOrder);
|
| for (size_t i = 0; i < list.length(); ++i) {
|
| EPaintOrderType paintOrderType = PT_NONE;
|
| - switch (toCSSPrimitiveValue(list.item(i))->getValueID()) {
|
| + switch (toCSSPrimitiveValue(list.item(i)).getValueID()) {
|
| case CSSValueFill:
|
| paintOrderType = PT_FILL;
|
| break;
|
| @@ -741,24 +741,24 @@ EPaintOrder StyleBuilderConverter::convertPaintOrder(StyleResolverState&, CSSVal
|
| return PO_NORMAL;
|
| }
|
|
|
| -Length StyleBuilderConverter::convertQuirkyLength(StyleResolverState& state, CSSValue* value)
|
| +Length StyleBuilderConverter::convertQuirkyLength(StyleResolverState& state, CSSValue value)
|
| {
|
| Length length = convertLengthOrAuto(state, value);
|
| // This is only for margins which use __qem
|
| - length.setQuirk(toCSSPrimitiveValue(value)->isQuirkValue());
|
| + length.setQuirk(toCSSPrimitiveValue(value).isQuirkValue());
|
| return length;
|
| }
|
|
|
| -PassRefPtr<QuotesData> StyleBuilderConverter::convertQuotes(StyleResolverState&, CSSValue* value)
|
| +PassRefPtr<QuotesData> StyleBuilderConverter::convertQuotes(StyleResolverState&, CSSValue value)
|
| {
|
| - if (value->isValueList()) {
|
| - CSSValueList* list = toCSSValueList(value);
|
| + if (value.isValueList()) {
|
| + CSSValueList& list = toCSSValueList(value);
|
| RefPtr<QuotesData> quotes = QuotesData::create();
|
| - for (size_t i = 0; i < list->length(); i += 2) {
|
| - CSSValue* first = list->item(i);
|
| - CSSValue* second = list->item(i + 1);
|
| - String startQuote = toCSSPrimitiveValue(first)->getStringValue();
|
| - String endQuote = toCSSPrimitiveValue(second)->getStringValue();
|
| + for (size_t i = 0; i < list.length(); i += 2) {
|
| + CSSValue first = list.item(i);
|
| + CSSValue second = list.item(i + 1);
|
| + String startQuote = toCSSPrimitiveValue(first).getStringValue();
|
| + String endQuote = toCSSPrimitiveValue(second).getStringValue();
|
| quotes->addPair(std::make_pair(startQuote, endQuote));
|
| }
|
| return quotes.release();
|
| @@ -767,10 +767,10 @@ PassRefPtr<QuotesData> StyleBuilderConverter::convertQuotes(StyleResolverState&,
|
| return QuotesData::create();
|
| }
|
|
|
| -LengthSize StyleBuilderConverter::convertRadius(StyleResolverState& state, CSSValue* value)
|
| +LengthSize StyleBuilderConverter::convertRadius(StyleResolverState& state, CSSValue value)
|
| {
|
| - CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
|
| - Pair* pair = primitiveValue->getPairValue();
|
| + CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value);
|
| + Pair* pair = primitiveValue.getPairValue();
|
| Length radiusWidth = pair->first()->convertToLength(state.cssToLengthConversionData());
|
| Length radiusHeight = pair->second()->convertToLength(state.cssToLengthConversionData());
|
| float width = radiusWidth.value();
|
| @@ -781,50 +781,50 @@ LengthSize StyleBuilderConverter::convertRadius(StyleResolverState& state, CSSVa
|
| return LengthSize(radiusWidth, radiusHeight);
|
| }
|
|
|
| -PassRefPtr<ShadowList> StyleBuilderConverter::convertShadow(StyleResolverState& state, CSSValue* value)
|
| +PassRefPtr<ShadowList> StyleBuilderConverter::convertShadow(StyleResolverState& state, CSSValue value)
|
| {
|
| - if (value->isPrimitiveValue()) {
|
| - ASSERT(toCSSPrimitiveValue(value)->getValueID() == CSSValueNone);
|
| + if (value.isPrimitiveValue()) {
|
| + ASSERT(toCSSPrimitiveValue(value).getValueID() == CSSValueNone);
|
| return PassRefPtr<ShadowList>();
|
| }
|
|
|
| - const CSSValueList* valueList = toCSSValueList(value);
|
| - size_t shadowCount = valueList->length();
|
| + const CSSValueList& valueList = toCSSValueList(value);
|
| + size_t shadowCount = valueList.length();
|
| ShadowDataVector shadows;
|
| for (size_t i = 0; i < shadowCount; ++i) {
|
| - const CSSShadowValue* item = toCSSShadowValue(valueList->item(i));
|
| - float x = item->x->computeLength<float>(state.cssToLengthConversionData());
|
| - float y = item->y->computeLength<float>(state.cssToLengthConversionData());
|
| - float blur = item->blur ? item->blur->computeLength<float>(state.cssToLengthConversionData()) : 0;
|
| - float spread = item->spread ? item->spread->computeLength<float>(state.cssToLengthConversionData()) : 0;
|
| - ShadowStyle shadowStyle = item->style && item->style->getValueID() == CSSValueInset ? Inset : Normal;
|
| + const CSSShadowValue& item = toCSSShadowValue(valueList.item(i));
|
| + float x = item.x->computeLength<float>(state.cssToLengthConversionData());
|
| + float y = item.y->computeLength<float>(state.cssToLengthConversionData());
|
| + float blur = item.blur ? item.blur->computeLength<float>(state.cssToLengthConversionData()) : 0;
|
| + float spread = item.spread ? item.spread->computeLength<float>(state.cssToLengthConversionData()) : 0;
|
| + ShadowStyle shadowStyle = item.style && item.style->getValueID() == CSSValueInset ? Inset : Normal;
|
| StyleColor color = StyleColor::currentColor();
|
| - if (item->color)
|
| - color = convertStyleColor(state, item->color.get());
|
| + if (item.color)
|
| + color = convertStyleColor(state, CSSValue(*item.color));
|
| shadows.append(ShadowData(FloatPoint(x, y), blur, spread, shadowStyle, color));
|
| }
|
| return ShadowList::adopt(shadows);
|
| }
|
|
|
| -PassRefPtr<ShapeValue> StyleBuilderConverter::convertShapeValue(StyleResolverState& state, CSSValue* value)
|
| +PassRefPtr<ShapeValue> StyleBuilderConverter::convertShapeValue(StyleResolverState& state, CSSValue value)
|
| {
|
| - if (value->isPrimitiveValue()) {
|
| - ASSERT(toCSSPrimitiveValue(value)->getValueID() == CSSValueNone);
|
| + if (value.isPrimitiveValue()) {
|
| + ASSERT(toCSSPrimitiveValue(value).getValueID() == CSSValueNone);
|
| return nullptr;
|
| }
|
|
|
| - if (value->isImageValue() || value->isImageGeneratorValue() || value->isImageSetValue())
|
| + if (value.isImageValue() || value.isImageGeneratorValue() || value.isImageSetValue())
|
| return ShapeValue::createImageValue(state.styleImage(CSSPropertyShapeOutside, value));
|
|
|
| RefPtr<BasicShape> shape;
|
| CSSBoxType cssBox = BoxMissing;
|
| - CSSValueList* valueList = toCSSValueList(value);
|
| - for (unsigned i = 0; i < valueList->length(); ++i) {
|
| - CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(valueList->item(i));
|
| - if (primitiveValue->isShape())
|
| - shape = basicShapeForValue(state, primitiveValue->getShapeValue());
|
| + CSSValueList& valueList = toCSSValueList(value);
|
| + for (unsigned i = 0; i < valueList.length(); ++i) {
|
| + CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(valueList.item(i));
|
| + if (primitiveValue.isShape())
|
| + shape = basicShapeForValue(state, primitiveValue.getShapeValue());
|
| else
|
| - cssBox = CSSBoxType(*primitiveValue);
|
| + cssBox = CSSBoxType(primitiveValue);
|
| }
|
|
|
| if (shape)
|
| @@ -834,106 +834,104 @@ PassRefPtr<ShapeValue> StyleBuilderConverter::convertShapeValue(StyleResolverSta
|
| return ShapeValue::createBoxShapeValue(cssBox);
|
| }
|
|
|
| -float StyleBuilderConverter::convertSpacing(StyleResolverState& state, CSSValue* value)
|
| +float StyleBuilderConverter::convertSpacing(StyleResolverState& state, CSSValue value)
|
| {
|
| - CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
|
| - if (primitiveValue->getValueID() == CSSValueNormal)
|
| + CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value);
|
| + if (primitiveValue.getValueID() == CSSValueNormal)
|
| return 0;
|
| - return primitiveValue->computeLength<float>(state.cssToLengthConversionData());
|
| + return primitiveValue.computeLength<float>(state.cssToLengthConversionData());
|
| }
|
|
|
| -PassRefPtr<SVGDashArray> StyleBuilderConverter::convertStrokeDasharray(StyleResolverState& state, CSSValue* value)
|
| +PassRefPtr<SVGDashArray> StyleBuilderConverter::convertStrokeDasharray(StyleResolverState& state, CSSValue value)
|
| {
|
| - if (!value->isValueList())
|
| + if (!value.isValueList())
|
| return SVGComputedStyle::initialStrokeDashArray();
|
|
|
| - CSSValueList* dashes = toCSSValueList(value);
|
| + CSSValueList& dashes = toCSSValueList(value);
|
|
|
| RefPtr<SVGDashArray> array = SVGDashArray::create();
|
| - size_t length = dashes->length();
|
| + size_t length = dashes.length();
|
| for (size_t i = 0; i < length; ++i) {
|
| - CSSValue* currValue = dashes->item(i);
|
| - if (!currValue->isPrimitiveValue())
|
| + CSSValue currValue = dashes.item(i);
|
| + if (!currValue.isPrimitiveValue())
|
| continue;
|
|
|
| - CSSPrimitiveValue* dash = toCSSPrimitiveValue(dashes->item(i));
|
| - array->append(convertLength(state, dash));
|
| + array->append(convertLength(state, currValue));
|
| }
|
|
|
| return array.release();
|
| }
|
|
|
| -StyleColor StyleBuilderConverter::convertStyleColor(StyleResolverState& state, CSSValue* value, bool forVisitedLink)
|
| +StyleColor StyleBuilderConverter::convertStyleColor(StyleResolverState& state, CSSValue value, bool forVisitedLink)
|
| {
|
| - CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
|
| - if (primitiveValue->getValueID() == CSSValueCurrentcolor)
|
| + CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value);
|
| + if (primitiveValue.getValueID() == CSSValueCurrentcolor)
|
| return StyleColor::currentColor();
|
| return state.document().textLinkColors().colorFromPrimitiveValue(primitiveValue, Color(), forVisitedLink);
|
| }
|
|
|
| -float StyleBuilderConverter::convertTextStrokeWidth(StyleResolverState& state, CSSValue* value)
|
| +float StyleBuilderConverter::convertTextStrokeWidth(StyleResolverState& state, CSSValue value)
|
| {
|
| - CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
|
| - if (primitiveValue->getValueID()) {
|
| + CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value);
|
| + if (primitiveValue.getValueID()) {
|
| float multiplier = convertLineWidth<float>(state, value);
|
| return CSSPrimitiveValue::create(multiplier / 48, CSSPrimitiveValue::CSS_EMS)->computeLength<float>(state.cssToLengthConversionData());
|
| }
|
| - return primitiveValue->computeLength<float>(state.cssToLengthConversionData());
|
| + return primitiveValue.computeLength<float>(state.cssToLengthConversionData());
|
| }
|
|
|
| -TransformOrigin StyleBuilderConverter::convertTransformOrigin(StyleResolverState& state, CSSValue* value)
|
| +TransformOrigin StyleBuilderConverter::convertTransformOrigin(StyleResolverState& state, CSSValue value)
|
| {
|
| - CSSValueList* list = toCSSValueList(value);
|
| - ASSERT(list->length() == 3);
|
| + CSSValueList& list = toCSSValueList(value);
|
| + ASSERT(list.length() == 3);
|
|
|
| - CSSPrimitiveValue* primitiveValueX = toCSSPrimitiveValue(list->item(0));
|
| - CSSPrimitiveValue* primitiveValueY = toCSSPrimitiveValue(list->item(1));
|
| - CSSPrimitiveValue* primitiveValueZ = toCSSPrimitiveValue(list->item(2));
|
| + CSSPrimitiveValue& primitiveValueX = toCSSPrimitiveValue(list.item(0));
|
| + CSSPrimitiveValue& primitiveValueY = toCSSPrimitiveValue(list.item(1));
|
|
|
| return TransformOrigin(
|
| convertOriginLength<CSSValueLeft, CSSValueRight>(state, primitiveValueX),
|
| convertOriginLength<CSSValueTop, CSSValueBottom>(state, primitiveValueY),
|
| - StyleBuilderConverter::convertComputedLength<float>(state, primitiveValueZ)
|
| + StyleBuilderConverter::convertComputedLength<float>(state, list.item(2))
|
| );
|
| }
|
|
|
| -ScrollSnapPoints StyleBuilderConverter::convertSnapPoints(StyleResolverState& state, CSSValue* value)
|
| +ScrollSnapPoints StyleBuilderConverter::convertSnapPoints(StyleResolverState& state, CSSValue value)
|
| {
|
| // Handles: none | repeat(<length>)
|
| ScrollSnapPoints points;
|
| points.hasRepeat = false;
|
|
|
| - if (!value->isFunctionValue())
|
| + if (!value.isFunctionValue())
|
| return points;
|
|
|
| - CSSFunctionValue* repeatFunction = toCSSFunctionValue(value);
|
| - ASSERT_WITH_SECURITY_IMPLICATION(repeatFunction->length() == 1);
|
| - points.repeatOffset = convertLength(state, toCSSPrimitiveValue(repeatFunction->item(0)));
|
| + CSSFunctionValue& repeatFunction = toCSSFunctionValue(value);
|
| + ASSERT_WITH_SECURITY_IMPLICATION(repeatFunction.length() == 1);
|
| + points.repeatOffset = convertLength(state, repeatFunction.item(0));
|
| points.hasRepeat = true;
|
|
|
| return points;
|
| }
|
|
|
| -Vector<LengthPoint> StyleBuilderConverter::convertSnapCoordinates(StyleResolverState& state, CSSValue* value)
|
| +Vector<LengthPoint> StyleBuilderConverter::convertSnapCoordinates(StyleResolverState& state, CSSValue value)
|
| {
|
| // Handles: none | <position>#
|
| Vector<LengthPoint> coordinates;
|
|
|
| - if (!value->isValueList())
|
| + if (!value.isValueList())
|
| return coordinates;
|
|
|
| - CSSValueList* valueList = toCSSValueList(value);
|
| - coordinates.reserveInitialCapacity(valueList->length());
|
| - for (auto& snapCoordinate : *valueList) {
|
| - coordinates.uncheckedAppend(convertPosition(state, snapCoordinate.get()));
|
| + CSSValueList& valueList = toCSSValueList(value);
|
| + coordinates.reserveInitialCapacity(valueList.length());
|
| + for (auto& snapCoordinate : valueList) {
|
| + coordinates.uncheckedAppend(convertPosition(state, snapCoordinate));
|
| }
|
|
|
| return coordinates;
|
| }
|
|
|
| -PassRefPtr<TranslateTransformOperation> StyleBuilderConverter::convertTranslate(StyleResolverState& state, CSSValue* value)
|
| +PassRefPtr<TranslateTransformOperation> StyleBuilderConverter::convertTranslate(StyleResolverState& state, CSSValue value)
|
| {
|
| - CSSValueList& list = *toCSSValueList(value);
|
| + CSSValueList& list = toCSSValueList(value);
|
| ASSERT(list.length() <= 3);
|
| Length tx = convertLength(state, list.item(0));
|
| Length ty(0, Fixed);
|
| @@ -941,39 +939,39 @@ PassRefPtr<TranslateTransformOperation> StyleBuilderConverter::convertTranslate(
|
| if (list.length() >= 2)
|
| ty = convertLength(state, list.item(1));
|
| if (list.length() == 3)
|
| - tz = toCSSPrimitiveValue(list.item(2))->getDoubleValue();
|
| + tz = toCSSPrimitiveValue(list.item(2)).getDoubleValue();
|
|
|
| return TranslateTransformOperation::create(tx, ty, tz, TransformOperation::Translate3D);
|
| }
|
|
|
| -PassRefPtr<RotateTransformOperation> StyleBuilderConverter::convertRotate(StyleResolverState& state, CSSValue* value)
|
| +PassRefPtr<RotateTransformOperation> StyleBuilderConverter::convertRotate(StyleResolverState& state, CSSValue value)
|
| {
|
| - CSSValueList& list = *toCSSValueList(value);
|
| + CSSValueList& list = toCSSValueList(value);
|
| ASSERT(list.length() == 1 || list.length() == 4);
|
| - double angle = toCSSPrimitiveValue(list.item(0))->computeDegrees();
|
| + double angle = toCSSPrimitiveValue(list.item(0)).computeDegrees();
|
| double x = 0;
|
| double y = 0;
|
| double z = 1;
|
| if (list.length() == 4) {
|
| - x = toCSSPrimitiveValue(list.item(1))->getDoubleValue();
|
| - y = toCSSPrimitiveValue(list.item(2))->getDoubleValue();
|
| - z = toCSSPrimitiveValue(list.item(3))->getDoubleValue();
|
| + x = toCSSPrimitiveValue(list.item(1)).getDoubleValue();
|
| + y = toCSSPrimitiveValue(list.item(2)).getDoubleValue();
|
| + z = toCSSPrimitiveValue(list.item(3)).getDoubleValue();
|
| }
|
|
|
| return RotateTransformOperation::create(x, y, z, angle, TransformOperation::Rotate3D);
|
| }
|
|
|
| -PassRefPtr<ScaleTransformOperation> StyleBuilderConverter::convertScale(StyleResolverState& state, CSSValue* value)
|
| +PassRefPtr<ScaleTransformOperation> StyleBuilderConverter::convertScale(StyleResolverState& state, CSSValue value)
|
| {
|
| - CSSValueList& list = *toCSSValueList(value);
|
| + CSSValueList& list = toCSSValueList(value);
|
| ASSERT(list.length() <= 3);
|
| - double sx = toCSSPrimitiveValue(list.item(0))->getDoubleValue();
|
| + double sx = toCSSPrimitiveValue(list.item(0)).getDoubleValue();
|
| double sy = sx;
|
| double sz = 1;
|
| if (list.length() >= 2)
|
| - sy = toCSSPrimitiveValue(list.item(1))->getDoubleValue();
|
| + sy = toCSSPrimitiveValue(list.item(1)).getDoubleValue();
|
| if (list.length() == 3)
|
| - sz = toCSSPrimitiveValue(list.item(2))->getDoubleValue();
|
| + sz = toCSSPrimitiveValue(list.item(2)).getDoubleValue();
|
|
|
| return ScaleTransformOperation::create(sx, sy, sz, TransformOperation::Scale3D);
|
| }
|
|
|