Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(358)

Unified Diff: Source/core/css/resolver/StyleBuilderConverter.cpp

Issue 1164573002: CSSValue Immediates: Change CSSValue to an object instead of a pointer (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebase Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/css/resolver/StyleBuilderConverter.h ('k') | Source/core/css/resolver/StyleBuilderCustom.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
}
« no previous file with comments | « Source/core/css/resolver/StyleBuilderConverter.h ('k') | Source/core/css/resolver/StyleBuilderCustom.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698