Index: Source/core/css/ComputedStyleCSSValueMapping.cpp |
diff --git a/Source/core/css/ComputedStyleCSSValueMapping.cpp b/Source/core/css/ComputedStyleCSSValueMapping.cpp |
index 06fa017c5f3c2e22a1b6f5a94e67795d9a40c9b7..686ee759e82e4eea12caf81dd07f250fbdf60b41 100644 |
--- a/Source/core/css/ComputedStyleCSSValueMapping.cpp |
+++ b/Source/core/css/ComputedStyleCSSValueMapping.cpp |
@@ -109,7 +109,7 @@ PassRefPtrWillBeRawPtr<CSSPrimitiveValue> ComputedStyleCSSValueMapping::currentC |
return cssValuePool().createColorValue(color.resolve(style.color()).rgb()); |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> valueForFillSize(const FillSize& fillSize, const ComputedStyle& style) |
+static CSSValue valueForFillSize(const FillSize& fillSize, const ComputedStyle& style) |
{ |
if (fillSize.type == Contain) |
return cssValuePool().createIdentifierValue(CSSValueContain); |
@@ -126,7 +126,7 @@ static PassRefPtrWillBeRawPtr<CSSValue> valueForFillSize(const FillSize& fillSiz |
return list.release(); |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> valueForFillRepeat(EFillRepeat xRepeat, EFillRepeat yRepeat) |
+static CSSValue valueForFillRepeat(EFillRepeat xRepeat, EFillRepeat yRepeat) |
{ |
// For backwards compatibility, if both values are equal, just return one of them. And |
// if the two values are equivalent to repeat-x or repeat-y, just return the shorthand. |
@@ -143,7 +143,7 @@ static PassRefPtrWillBeRawPtr<CSSValue> valueForFillRepeat(EFillRepeat xRepeat, |
return list.release(); |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> valueForFillSourceType(EMaskSourceType type) |
+static CSSValue valueForFillSourceType(EMaskSourceType type) |
{ |
switch (type) { |
case MaskAlpha: |
@@ -153,11 +153,10 @@ static PassRefPtrWillBeRawPtr<CSSValue> valueForFillSourceType(EMaskSourceType t |
} |
ASSERT_NOT_REACHED(); |
- |
- return nullptr; |
+ return cssValuePool().createValue(CSSValueAlpha); |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> valueForPositionOffset(const ComputedStyle& style, CSSPropertyID propertyID, const LayoutObject* layoutObject) |
+static CSSValue valueForPositionOffset(const ComputedStyle& style, CSSPropertyID propertyID, const LayoutObject* layoutObject) |
{ |
Length offset; |
switch (propertyID) { |
@@ -174,7 +173,7 @@ static PassRefPtrWillBeRawPtr<CSSValue> valueForPositionOffset(const ComputedSty |
offset = style.bottom(); |
break; |
default: |
- return nullptr; |
+ return cssValuePool().createIdentifierValue(CSSValueAuto); |
} |
if (offset.hasPercent() && layoutObject && layoutObject->isBox() && layoutObject->isPositioned()) { |
@@ -313,7 +312,7 @@ static CSSValueID valueForRepeatRule(int rule) |
} |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> valueForNinePieceImageRepeat(const NinePieceImage& image) |
+static CSSValue valueForNinePieceImageRepeat(const NinePieceImage& image) |
{ |
RefPtrWillBeRawPtr<CSSPrimitiveValue> horizontalRepeat = nullptr; |
RefPtrWillBeRawPtr<CSSPrimitiveValue> verticalRepeat = nullptr; |
@@ -326,13 +325,13 @@ static PassRefPtrWillBeRawPtr<CSSValue> valueForNinePieceImageRepeat(const NineP |
return cssValuePool().createValue(Pair::create(horizontalRepeat.release(), verticalRepeat.release(), Pair::DropIdenticalValues)); |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> valueForNinePieceImage(const NinePieceImage& image, const ComputedStyle& style) |
+static CSSValue valueForNinePieceImage(const NinePieceImage& image, const ComputedStyle& style) |
{ |
if (!image.hasImage()) |
return cssValuePool().createIdentifierValue(CSSValueNone); |
// Image first. |
- RefPtrWillBeRawPtr<CSSValue> imageValue = nullptr; |
+ NullableCSSValue imageValue; |
if (image.image()) |
imageValue = image.image()->cssValue(); |
@@ -340,18 +339,18 @@ static PassRefPtrWillBeRawPtr<CSSValue> valueForNinePieceImage(const NinePieceIm |
RefPtrWillBeRawPtr<CSSBorderImageSliceValue> imageSlices = valueForNinePieceImageSlice(image); |
// Create the border area slices. |
- RefPtrWillBeRawPtr<CSSValue> borderSlices = valueForNinePieceImageQuad(image.borderSlices(), style); |
+ CSSValue borderSlices = valueForNinePieceImageQuad(image.borderSlices(), style); |
// Create the border outset. |
- RefPtrWillBeRawPtr<CSSValue> outset = valueForNinePieceImageQuad(image.outset(), style); |
+ CSSValue outset = valueForNinePieceImageQuad(image.outset(), style); |
// Create the repeat rules. |
- RefPtrWillBeRawPtr<CSSValue> repeat = valueForNinePieceImageRepeat(image); |
+ CSSValue repeat = valueForNinePieceImageRepeat(image); |
- return createBorderImageValue(imageValue.release(), imageSlices.release(), borderSlices.release(), outset.release(), repeat.release()); |
+ return createBorderImageValue(imageValue, imageSlices, borderSlices, outset, repeat); |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> valueForReflection(const StyleReflection* reflection, const ComputedStyle& style) |
+static CSSValue valueForReflection(const StyleReflection* reflection, const ComputedStyle& style) |
{ |
if (!reflection) |
return cssValuePool().createIdentifierValue(CSSValueNone); |
@@ -406,9 +405,8 @@ static PassRefPtrWillBeRawPtr<CSSValueList> valuesForGridShorthand(const StylePr |
{ |
RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSlashSeparated(); |
for (size_t i = 0; i < shorthand.length(); ++i) { |
- RefPtrWillBeRawPtr<CSSValue> value = ComputedStyleCSSValueMapping::get(shorthand.properties()[i], style, layoutObject, styledNode, allowVisitedStyle); |
- ASSERT(value); |
- list->append(value.release()); |
+ NullableCSSValue value = ComputedStyleCSSValueMapping::get(shorthand.properties()[i], style, layoutObject, styledNode, allowVisitedStyle); |
+ list->append(*value); |
} |
return list.release(); |
} |
@@ -417,9 +415,8 @@ static PassRefPtrWillBeRawPtr<CSSValueList> valuesForShorthandProperty(const Sty |
{ |
RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); |
for (size_t i = 0; i < shorthand.length(); ++i) { |
- RefPtrWillBeRawPtr<CSSValue> value = ComputedStyleCSSValueMapping::get(shorthand.properties()[i], style, layoutObject, styledNode, allowVisitedStyle); |
- ASSERT(value); |
- list->append(value); |
+ NullableCSSValue value = ComputedStyleCSSValueMapping::get(shorthand.properties()[i], style, layoutObject, styledNode, allowVisitedStyle); |
+ list->append(*value); |
} |
return list.release(); |
} |
@@ -432,11 +429,10 @@ static PassRefPtrWillBeRawPtr<CSSValueList> valuesForBackgroundShorthand(const C |
RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSlashSeparated(); |
RefPtrWillBeRawPtr<CSSValueList> beforeSlash = CSSValueList::createSpaceSeparated(); |
if (!currLayer->next()) { // color only for final layer |
- RefPtrWillBeRawPtr<CSSValue> value = ComputedStyleCSSValueMapping::get(CSSPropertyBackgroundColor, style, layoutObject, styledNode, allowVisitedStyle); |
- ASSERT(value); |
- beforeSlash->append(value); |
+ NullableCSSValue value = ComputedStyleCSSValueMapping::get(CSSPropertyBackgroundColor, style, layoutObject, styledNode, allowVisitedStyle); |
+ beforeSlash->append(*value); |
} |
- beforeSlash->append(currLayer->image() ? currLayer->image()->cssValue() : cssValuePool().createIdentifierValue(CSSValueNone)); |
+ beforeSlash->append(currLayer->image() ? *currLayer->image()->cssValue() : cssValuePool().createIdentifierValue(CSSValueNone)); |
beforeSlash->append(valueForFillRepeat(currLayer->repeatX(), currLayer->repeatY())); |
beforeSlash->append(cssValuePool().createValue(currLayer->attachment())); |
beforeSlash->append(createPositionListForLayer(CSSPropertyBackgroundPosition, *currLayer, style)); |
@@ -543,7 +539,7 @@ static PassRefPtrWillBeRawPtr<CSSPrimitiveValue> valueForFontWeight(const Comput |
return cssValuePool().createValue(style.fontDescription().weight()); |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> specifiedValueForGridTrackBreadth(const GridLength& trackBreadth, const ComputedStyle& style) |
+static CSSValue specifiedValueForGridTrackBreadth(const GridLength& trackBreadth, const ComputedStyle& style) |
{ |
if (!trackBreadth.isLength()) |
return cssValuePool().createValue(trackBreadth.flex(), CSSPrimitiveValue::CSS_FR); |
@@ -554,7 +550,7 @@ static PassRefPtrWillBeRawPtr<CSSValue> specifiedValueForGridTrackBreadth(const |
return zoomAdjustedPixelValueForLength(trackBreadthLength, style); |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> specifiedValueForGridTrackSize(const GridTrackSize& trackSize, const ComputedStyle& style) |
+static CSSValue specifiedValueForGridTrackSize(const GridTrackSize& trackSize, const ComputedStyle& style) |
{ |
switch (trackSize.type()) { |
case LengthTrackSizing: |
@@ -566,7 +562,7 @@ static PassRefPtrWillBeRawPtr<CSSValue> specifiedValueForGridTrackSize(const Gri |
return minMaxTrackBreadths.release(); |
} |
ASSERT_NOT_REACHED(); |
- return nullptr; |
+ return specifiedValueForGridTrackBreadth(trackSize.length(), style); |
} |
static void addValuesForNamedGridLinesAtIndex(const OrderedNamedGridLines& orderedNamedGridLines, size_t i, CSSValueList& list) |
@@ -581,7 +577,7 @@ static void addValuesForNamedGridLinesAtIndex(const OrderedNamedGridLines& order |
list.append(lineNames.release()); |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> valueForGridTrackList(GridTrackSizingDirection direction, const LayoutObject* layoutObject, const ComputedStyle& style) |
+static CSSValue valueForGridTrackList(GridTrackSizingDirection direction, const LayoutObject* layoutObject, const ComputedStyle& style) |
{ |
const Vector<GridTrackSize>& trackSizes = direction == ForColumns ? style.gridTemplateColumns() : style.gridTemplateRows(); |
const OrderedNamedGridLines& orderedNamedGridLines = direction == ForColumns ? style.orderedNamedGridColumnLines() : style.orderedNamedGridRowLines(); |
@@ -626,7 +622,7 @@ static PassRefPtrWillBeRawPtr<CSSValue> valueForGridTrackList(GridTrackSizingDir |
return list.release(); |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> valueForGridPosition(const GridPosition& position) |
+static CSSValue valueForGridPosition(const GridPosition& position) |
{ |
if (position.isAuto()) |
return cssValuePool().createIdentifierValue(CSSValueAuto); |
@@ -656,7 +652,7 @@ static LayoutRect sizingBox(const LayoutObject* layoutObject) |
return box->style()->boxSizing() == BORDER_BOX ? box->borderBoxRect() : box->computedCSSContentBoxRect(); |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> scrollBlocksOnFlagsToCSSValue(WebScrollBlocksOn scrollBlocksOn) |
+static CSSValue scrollBlocksOnFlagsToCSSValue(WebScrollBlocksOn scrollBlocksOn) |
{ |
RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); |
@@ -673,7 +669,7 @@ static PassRefPtrWillBeRawPtr<CSSValue> scrollBlocksOnFlagsToCSSValue(WebScrollB |
return list.release(); |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> renderTextDecorationFlagsToCSSValue(int textDecoration) |
+static CSSValue renderTextDecorationFlagsToCSSValue(int textDecoration) |
{ |
// Blink value is ignored. |
RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); |
@@ -689,7 +685,7 @@ static PassRefPtrWillBeRawPtr<CSSValue> renderTextDecorationFlagsToCSSValue(int |
return list.release(); |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> valueForTextDecorationStyle(TextDecorationStyle textDecorationStyle) |
+static CSSValue valueForTextDecorationStyle(TextDecorationStyle textDecorationStyle) |
{ |
switch (textDecorationStyle) { |
case TextDecorationStyleSolid: |
@@ -708,7 +704,7 @@ static PassRefPtrWillBeRawPtr<CSSValue> valueForTextDecorationStyle(TextDecorati |
return cssValuePool().createExplicitInitialValue(); |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> touchActionFlagsToCSSValue(TouchAction touchAction) |
+static CSSValue touchActionFlagsToCSSValue(TouchAction touchAction) |
{ |
RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); |
if (touchAction == TouchActionAuto) |
@@ -738,7 +734,7 @@ static PassRefPtrWillBeRawPtr<CSSValue> touchActionFlagsToCSSValue(TouchAction t |
return list.release(); |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> valueForWillChange(const Vector<CSSPropertyID>& willChangeProperties, bool willChangeContents, bool willChangeScrollPosition) |
+static CSSValue valueForWillChange(const Vector<CSSPropertyID>& willChangeProperties, bool willChangeContents, bool willChangeScrollPosition) |
{ |
RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); |
if (willChangeContents) |
@@ -752,7 +748,7 @@ static PassRefPtrWillBeRawPtr<CSSValue> valueForWillChange(const Vector<CSSPrope |
return list.release(); |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> valueForAnimationDelay(const CSSTimingData* timingData) |
+static CSSValue valueForAnimationDelay(const CSSTimingData* timingData) |
{ |
RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); |
if (timingData) { |
@@ -764,7 +760,7 @@ static PassRefPtrWillBeRawPtr<CSSValue> valueForAnimationDelay(const CSSTimingDa |
return list.release(); |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> valueForAnimationDirection(Timing::PlaybackDirection direction) |
+static CSSValue valueForAnimationDirection(Timing::PlaybackDirection direction) |
{ |
switch (direction) { |
case Timing::PlaybackDirectionNormal: |
@@ -777,11 +773,11 @@ static PassRefPtrWillBeRawPtr<CSSValue> valueForAnimationDirection(Timing::Playb |
return cssValuePool().createIdentifierValue(CSSValueAlternateReverse); |
default: |
ASSERT_NOT_REACHED(); |
- return nullptr; |
+ return cssValuePool().createIdentifierValue(CSSValueNormal); |
} |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> valueForAnimationDuration(const CSSTimingData* timingData) |
+static CSSValue valueForAnimationDuration(const CSSTimingData* timingData) |
{ |
RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); |
if (timingData) { |
@@ -793,7 +789,7 @@ static PassRefPtrWillBeRawPtr<CSSValue> valueForAnimationDuration(const CSSTimin |
return list.release(); |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> valueForAnimationFillMode(Timing::FillMode fillMode) |
+static CSSValue valueForAnimationFillMode(Timing::FillMode fillMode) |
{ |
switch (fillMode) { |
case Timing::FillModeNone: |
@@ -806,18 +802,18 @@ static PassRefPtrWillBeRawPtr<CSSValue> valueForAnimationFillMode(Timing::FillMo |
return cssValuePool().createIdentifierValue(CSSValueBoth); |
default: |
ASSERT_NOT_REACHED(); |
- return nullptr; |
+ return cssValuePool().createIdentifierValue(CSSValueNone); |
} |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> valueForAnimationIterationCount(double iterationCount) |
+static CSSValue valueForAnimationIterationCount(double iterationCount) |
{ |
if (iterationCount == std::numeric_limits<double>::infinity()) |
return cssValuePool().createIdentifierValue(CSSValueInfinite); |
return cssValuePool().createValue(iterationCount, CSSPrimitiveValue::CSS_NUMBER); |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> valueForAnimationPlayState(EAnimPlayState playState) |
+static CSSValue valueForAnimationPlayState(EAnimPlayState playState) |
{ |
if (playState == AnimPlayStatePlaying) |
return cssValuePool().createIdentifierValue(CSSValueRunning); |
@@ -825,7 +821,7 @@ static PassRefPtrWillBeRawPtr<CSSValue> valueForAnimationPlayState(EAnimPlayStat |
return cssValuePool().createIdentifierValue(CSSValuePaused); |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> createTimingFunctionValue(const TimingFunction* timingFunction) |
+static CSSValue createTimingFunctionValue(const TimingFunction* timingFunction) |
{ |
switch (timingFunction->type()) { |
case TimingFunction::CubicBezierFunction: |
@@ -848,7 +844,7 @@ static PassRefPtrWillBeRawPtr<CSSValue> createTimingFunctionValue(const TimingFu |
break; |
default: |
ASSERT_NOT_REACHED(); |
- return nullptr; |
+ valueId = CSSValueEase; |
} |
return cssValuePool().createIdentifierValue(valueId); |
} |
@@ -873,7 +869,7 @@ static PassRefPtrWillBeRawPtr<CSSValue> createTimingFunctionValue(const TimingFu |
} |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> valueForAnimationTimingFunction(const CSSTimingData* timingData) |
+static CSSValue valueForAnimationTimingFunction(const CSSTimingData* timingData) |
{ |
RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); |
if (timingData) { |
@@ -899,10 +895,10 @@ static PassRefPtrWillBeRawPtr<CSSValueList> valuesForBorderRadiusCorner(LengthSi |
return list.release(); |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> valueForBorderRadiusCorner(LengthSize radius, const ComputedStyle& style) |
+static CSSValue valueForBorderRadiusCorner(LengthSize radius, const ComputedStyle& style) |
{ |
RefPtrWillBeRawPtr<CSSValueList> list = valuesForBorderRadiusCorner(radius, style); |
- if (list->item(0)->equals(*list->item(1))) |
+ if (list->item(0).equals(list->item(1))) |
return list->item(0); |
return list.release(); |
} |
@@ -946,7 +942,7 @@ static PassRefPtrWillBeRawPtr<CSSFunctionValue> valueForMatrixTransform(const Tr |
return transformValue.release(); |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> computedTransform(const LayoutObject* layoutObject, const ComputedStyle& style) |
+static CSSValue computedTransform(const LayoutObject* layoutObject, const ComputedStyle& style) |
{ |
if (!layoutObject || !layoutObject->hasTransformRelatedProperty() || !style.hasTransform()) |
return cssValuePool().createIdentifierValue(CSSValueNone); |
@@ -965,7 +961,7 @@ static PassRefPtrWillBeRawPtr<CSSValue> computedTransform(const LayoutObject* la |
return list.release(); |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> createTransitionPropertyValue(const CSSTransitionData::TransitionProperty& property) |
+static CSSValue createTransitionPropertyValue(const CSSTransitionData::TransitionProperty& property) |
{ |
if (property.propertyType == CSSTransitionData::TransitionNone) |
return cssValuePool().createIdentifierValue(CSSValueNone); |
@@ -977,7 +973,7 @@ static PassRefPtrWillBeRawPtr<CSSValue> createTransitionPropertyValue(const CSST |
return cssValuePool().createValue(getPropertyNameString(property.unresolvedProperty), CSSPrimitiveValue::CSS_CUSTOM_IDENT); |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> valueForTransitionProperty(const CSSTransitionData* transitionData) |
+static CSSValue valueForTransitionProperty(const CSSTransitionData* transitionData) |
{ |
RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); |
if (transitionData) { |
@@ -989,7 +985,7 @@ static PassRefPtrWillBeRawPtr<CSSValue> valueForTransitionProperty(const CSSTran |
return list.release(); |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> createLineBoxContainValue(unsigned lineBoxContain) |
+static CSSValue createLineBoxContainValue(unsigned lineBoxContain) |
{ |
if (!lineBoxContain) |
return cssValuePool().createIdentifierValue(CSSValueNone); |
@@ -1012,7 +1008,7 @@ CSSValueID valueForQuoteType(const QuoteType quoteType) |
return CSSValueInvalid; |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> valueForContentData(const ComputedStyle& style) |
+static CSSValue valueForContentData(const ComputedStyle& style) |
{ |
RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); |
for (const ContentData* contentData = style.contentData(); contentData; contentData = contentData->next()) { |
@@ -1029,7 +1025,7 @@ static PassRefPtrWillBeRawPtr<CSSValue> valueForContentData(const ComputedStyle& |
} else if (contentData->isImage()) { |
const StyleImage* image = toImageContentData(contentData)->image(); |
ASSERT(image); |
- list->append(image->cssValue()); |
+ list->append(*image->cssValue()); |
} else if (contentData->isText()) { |
list->append(cssValuePool().createValue(toTextContentData(contentData)->text(), CSSPrimitiveValue::CSS_STRING)); |
} else if (contentData->isQuote()) { |
@@ -1042,7 +1038,7 @@ static PassRefPtrWillBeRawPtr<CSSValue> valueForContentData(const ComputedStyle& |
return list.release(); |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> valueForCounterDirectives(const ComputedStyle& style, CSSPropertyID propertyID) |
+static CSSValue valueForCounterDirectives(const ComputedStyle& style, CSSPropertyID propertyID) |
{ |
const CounterDirectiveMap* map = style.counterDirectives(); |
if (!map) |
@@ -1065,7 +1061,7 @@ static PassRefPtrWillBeRawPtr<CSSValue> valueForCounterDirectives(const Computed |
return list.release(); |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> valueForShape(const ComputedStyle& style, ShapeValue* shapeValue) |
+static CSSValue valueForShape(const ComputedStyle& style, ShapeValue* shapeValue) |
{ |
if (!shapeValue) |
return cssValuePool().createIdentifierValue(CSSValueNone); |
@@ -1073,7 +1069,7 @@ static PassRefPtrWillBeRawPtr<CSSValue> valueForShape(const ComputedStyle& style |
return cssValuePool().createValue(shapeValue->cssBox()); |
if (shapeValue->type() == ShapeValue::Image) { |
if (shapeValue->image()) |
- return shapeValue->image()->cssValue(); |
+ return *shapeValue->image()->cssValue(); |
return cssValuePool().createIdentifierValue(CSSValueNone); |
} |
@@ -1090,26 +1086,26 @@ static PassRefPtrWillBeRawPtr<CSSValueList> valuesForSidesShorthand(const StyleP |
{ |
RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); |
// Assume the properties are in the usual order top, right, bottom, left. |
- RefPtrWillBeRawPtr<CSSValue> topValue = ComputedStyleCSSValueMapping::get(shorthand.properties()[0], style, layoutObject, styledNode, allowVisitedStyle); |
- RefPtrWillBeRawPtr<CSSValue> rightValue = ComputedStyleCSSValueMapping::get(shorthand.properties()[1], style, layoutObject, styledNode, allowVisitedStyle); |
- RefPtrWillBeRawPtr<CSSValue> bottomValue = ComputedStyleCSSValueMapping::get(shorthand.properties()[2], style, layoutObject, styledNode, allowVisitedStyle); |
- RefPtrWillBeRawPtr<CSSValue> leftValue = ComputedStyleCSSValueMapping::get(shorthand.properties()[3], style, layoutObject, styledNode, allowVisitedStyle); |
+ NullableCSSValue topValue = ComputedStyleCSSValueMapping::get(shorthand.properties()[0], style, layoutObject, styledNode, allowVisitedStyle); |
+ NullableCSSValue rightValue = ComputedStyleCSSValueMapping::get(shorthand.properties()[1], style, layoutObject, styledNode, allowVisitedStyle); |
+ NullableCSSValue bottomValue = ComputedStyleCSSValueMapping::get(shorthand.properties()[2], style, layoutObject, styledNode, allowVisitedStyle); |
+ NullableCSSValue leftValue = ComputedStyleCSSValueMapping::get(shorthand.properties()[3], style, layoutObject, styledNode, allowVisitedStyle); |
// All 4 properties must be specified. |
if (!topValue || !rightValue || !bottomValue || !leftValue) |
return nullptr; |
- bool showLeft = !compareCSSValuePtr(rightValue, leftValue); |
- bool showBottom = !compareCSSValuePtr(topValue, bottomValue) || showLeft; |
- bool showRight = !compareCSSValuePtr(topValue, rightValue) || showBottom; |
+ bool showLeft = rightValue != leftValue; |
+ bool showBottom = (topValue != bottomValue) || showLeft; |
+ bool showRight = (topValue != rightValue) || showBottom; |
- list->append(topValue.release()); |
+ list->append(*topValue); |
if (showRight) |
- list->append(rightValue.release()); |
+ list->append(*rightValue); |
if (showBottom) |
- list->append(bottomValue.release()); |
+ list->append(*bottomValue); |
if (showLeft) |
- list->append(leftValue.release()); |
+ list->append(*leftValue); |
return list.release(); |
} |
@@ -1151,7 +1147,7 @@ static PassRefPtrWillBeRawPtr<CSSValueList> valueForBorderRadiusShorthand(const |
if (showVerticalBottomLeft) |
verticalRadii->append(bottomLeftRadius->item(1)); |
- if (!verticalRadii->equals(*toCSSValueList(list->item(0)))) |
+ if (!verticalRadii->equals(toCSSValueList(list->item(0)))) |
list->append(verticalRadii.release()); |
return list.release(); |
@@ -1173,7 +1169,7 @@ static PassRefPtrWillBeRawPtr<CSSPrimitiveValue> glyphOrientationToCSSPrimitiveV |
} |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> strokeDashArrayToCSSValueList(const SVGDashArray& dashes, const ComputedStyle& style) |
+static CSSValue strokeDashArrayToCSSValueList(const SVGDashArray& dashes, const ComputedStyle& style) |
{ |
if (dashes.isEmpty()) |
return CSSPrimitiveValue::createIdentifier(CSSValueNone); |
@@ -1185,7 +1181,7 @@ static PassRefPtrWillBeRawPtr<CSSValue> strokeDashArrayToCSSValueList(const SVGD |
return list.release(); |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> paintOrderToCSSValueList(EPaintOrder paintorder) |
+static CSSValue paintOrderToCSSValueList(EPaintOrder paintorder) |
{ |
RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); |
do { |
@@ -1206,7 +1202,7 @@ static PassRefPtrWillBeRawPtr<CSSValue> paintOrderToCSSValueList(EPaintOrder pai |
return list.release(); |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> adjustSVGPaintForCurrentColor(SVGPaintType paintType, const String& url, const Color& color, const Color& currentColor) |
+static CSSValue adjustSVGPaintForCurrentColor(SVGPaintType paintType, const String& url, const Color& color, const Color& currentColor) |
{ |
if (paintType >= SVG_PAINTTYPE_URI_NONE) { |
RefPtrWillBeRawPtr<CSSValueList> values = CSSValueList::createSpaceSeparated(); |
@@ -1232,7 +1228,7 @@ static inline String serializeAsFragmentIdentifier(const AtomicString& resource) |
return "#" + resource; |
} |
-PassRefPtrWillBeRawPtr<CSSValue> ComputedStyleCSSValueMapping::valueForShadowData(const ShadowData& shadow, const ComputedStyle& style, bool useSpread) |
+CSSValue ComputedStyleCSSValueMapping::valueForShadowData(const ShadowData& shadow, const ComputedStyle& style, bool useSpread) |
{ |
RefPtrWillBeRawPtr<CSSPrimitiveValue> x = zoomAdjustedPixelValue(shadow.x(), style); |
RefPtrWillBeRawPtr<CSSPrimitiveValue> y = zoomAdjustedPixelValue(shadow.y(), style); |
@@ -1243,7 +1239,7 @@ PassRefPtrWillBeRawPtr<CSSValue> ComputedStyleCSSValueMapping::valueForShadowDat |
return CSSShadowValue::create(x.release(), y.release(), blur.release(), spread.release(), shadowStyle.release(), color.release()); |
} |
-PassRefPtrWillBeRawPtr<CSSValue> ComputedStyleCSSValueMapping::valueForShadowList(const ShadowList* shadowList, const ComputedStyle& style, bool useSpread) |
+CSSValue ComputedStyleCSSValueMapping::valueForShadowList(const ShadowList* shadowList, const ComputedStyle& style, bool useSpread) |
{ |
if (!shadowList) |
return cssValuePool().createIdentifierValue(CSSValueNone); |
@@ -1255,7 +1251,7 @@ PassRefPtrWillBeRawPtr<CSSValue> ComputedStyleCSSValueMapping::valueForShadowLis |
return list.release(); |
} |
-PassRefPtrWillBeRawPtr<CSSValue> ComputedStyleCSSValueMapping::valueForFilter(const ComputedStyle& style) |
+CSSValue ComputedStyleCSSValueMapping::valueForFilter(const ComputedStyle& style) |
{ |
if (style.filter().operations().isEmpty()) |
return cssValuePool().createIdentifierValue(CSSValueNone); |
@@ -1325,7 +1321,7 @@ PassRefPtrWillBeRawPtr<CSSValue> ComputedStyleCSSValueMapping::valueForFilter(co |
return list.release(); |
} |
-PassRefPtrWillBeRawPtr<CSSValue> ComputedStyleCSSValueMapping::valueForFont(const ComputedStyle& style) |
+CSSValue ComputedStyleCSSValueMapping::valueForFont(const ComputedStyle& style) |
{ |
// Add a slash between size and line-height. |
RefPtrWillBeRawPtr<CSSValueList> sizeAndLineHeight = CSSValueList::createSlashSeparated(); |
@@ -1343,7 +1339,7 @@ PassRefPtrWillBeRawPtr<CSSValue> ComputedStyleCSSValueMapping::valueForFont(cons |
return list.release(); |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> valueForScrollSnapDestination(const LengthPoint& destination, const ComputedStyle& style) |
+static CSSValue valueForScrollSnapDestination(const LengthPoint& destination, const ComputedStyle& style) |
{ |
RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createSpaceSeparated(); |
list->append(zoomAdjustedPixelValueForLength(destination.x(), style)); |
@@ -1351,7 +1347,7 @@ static PassRefPtrWillBeRawPtr<CSSValue> valueForScrollSnapDestination(const Leng |
return list.release(); |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> valueForScrollSnapPoints(const ScrollSnapPoints& points, const ComputedStyle& style) |
+static CSSValue valueForScrollSnapPoints(const ScrollSnapPoints& points, const ComputedStyle& style) |
{ |
if (points.hasRepeat) { |
RefPtrWillBeRawPtr<CSSFunctionValue> repeat = CSSFunctionValue::create(CSSValueRepeat); |
@@ -1362,7 +1358,7 @@ static PassRefPtrWillBeRawPtr<CSSValue> valueForScrollSnapPoints(const ScrollSna |
return cssValuePool().createIdentifierValue(CSSValueNone); |
} |
-static PassRefPtrWillBeRawPtr<CSSValue> valueForScrollSnapCoordinate(const Vector<LengthPoint>& coordinates, const ComputedStyle& style) |
+static CSSValue valueForScrollSnapCoordinate(const Vector<LengthPoint>& coordinates, const ComputedStyle& style) |
{ |
if (coordinates.isEmpty()) |
return cssValuePool().createIdentifierValue(CSSValueNone); |
@@ -1379,7 +1375,7 @@ static PassRefPtrWillBeRawPtr<CSSValue> valueForScrollSnapCoordinate(const Vecto |
return list.release(); |
} |
-PassRefPtrWillBeRawPtr<CSSValue> ComputedStyleCSSValueMapping::get(CSSPropertyID propertyID, const ComputedStyle& style, const LayoutObject* layoutObject, Node* styledNode, bool allowVisitedStyle) |
+NullableCSSValue ComputedStyleCSSValueMapping::get(CSSPropertyID propertyID, const ComputedStyle& style, const LayoutObject* layoutObject, Node* styledNode, bool allowVisitedStyle) |
{ |
const SVGComputedStyle& svgStyle = style.svgStyle(); |
propertyID = CSSProperty::resolveDirectionAwareProperty(propertyID, style.direction(), style.writingMode()); |
@@ -1395,7 +1391,7 @@ PassRefPtrWillBeRawPtr<CSSValue> ComputedStyleCSSValueMapping::get(CSSPropertyID |
const FillLayer* currLayer = propertyID == CSSPropertyWebkitMaskImage ? &style.maskLayers() : &style.backgroundLayers(); |
for (; currLayer; currLayer = currLayer->next()) { |
if (currLayer->image()) |
- list->append(currLayer->image()->cssValue()); |
+ list->append(*currLayer->image()->cssValue()); |
else |
list->append(cssValuePool().createIdentifierValue(CSSValueNone)); |
} |
@@ -1591,15 +1587,15 @@ PassRefPtrWillBeRawPtr<CSSValue> ComputedStyleCSSValueMapping::get(CSSPropertyID |
list = CSSValueList::createCommaSeparated(); |
for (unsigned i = 0; i < cursors->size(); ++i) { |
if (StyleImage* image = cursors->at(i).image()) |
- list->append(image->cssValue()); |
+ list->append(*image->cssValue()); |
} |
} |
- RefPtrWillBeRawPtr<CSSValue> value = cssValuePool().createValue(style.cursor()); |
+ CSSValue value = cssValuePool().createValue(style.cursor()); |
if (list) { |
- list->append(value.release()); |
+ list->append(value); |
return list.release(); |
} |
- return value.release(); |
+ return value; |
} |
case CSSPropertyDirection: |
return cssValuePool().createValue(style.direction()); |
@@ -2378,17 +2374,17 @@ PassRefPtrWillBeRawPtr<CSSValue> ComputedStyleCSSValueMapping::get(CSSPropertyID |
case CSSPropertyBackground: |
return valuesForBackgroundShorthand(style, layoutObject, styledNode, allowVisitedStyle); |
case CSSPropertyBorder: { |
- RefPtrWillBeRawPtr<CSSValue> value = get(CSSPropertyBorderTop, style, layoutObject, styledNode, allowVisitedStyle); |
+ NullableCSSValue value = get(CSSPropertyBorderTop, style, layoutObject, styledNode, allowVisitedStyle); |
const CSSPropertyID properties[] = { |
CSSPropertyBorderRight, |
CSSPropertyBorderBottom, |
CSSPropertyBorderLeft |
}; |
for (size_t i = 0; i < WTF_ARRAY_LENGTH(properties); ++i) { |
- if (!compareCSSValuePtr<CSSValue>(value, get(properties[i], style, layoutObject, styledNode, allowVisitedStyle))) |
+ if (value != get(properties[i], style, layoutObject, styledNode, allowVisitedStyle)) |
return nullptr; |
} |
- return value.release(); |
+ return *value; |
} |
case CSSPropertyBorderBottom: |
return valuesForShorthandProperty(borderBottomShorthand(), style, layoutObject, styledNode, allowVisitedStyle); |