| Index: third_party/WebKit/Source/core/css/resolver/CSSToStyleMap.cpp
|
| diff --git a/third_party/WebKit/Source/core/css/resolver/CSSToStyleMap.cpp b/third_party/WebKit/Source/core/css/resolver/CSSToStyleMap.cpp
|
| index 5a0b41e64b2eace67b00bad77e27af45f2a5ad87..859ef55551c563619ef6280adc322130c45ac203 100644
|
| --- a/third_party/WebKit/Source/core/css/resolver/CSSToStyleMap.cpp
|
| +++ b/third_party/WebKit/Source/core/css/resolver/CSSToStyleMap.cpp
|
| @@ -50,11 +50,11 @@ void CSSToStyleMap::mapFillAttachment(StyleResolverState&, FillLayer* layer, con
|
| return;
|
| }
|
|
|
| - if (!value.isPrimitiveValue())
|
| + if (!value.isIdentifierValue())
|
| return;
|
|
|
| - const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value);
|
| - switch (primitiveValue.getValueID()) {
|
| + const CSSIdentifierValue& identifierValue = toCSSIdentifierValue(value);
|
| + switch (identifierValue.getValueID()) {
|
| case CSSValueFixed:
|
| layer->setAttachment(FixedBackgroundAttachment);
|
| break;
|
| @@ -76,11 +76,11 @@ void CSSToStyleMap::mapFillClip(StyleResolverState&, FillLayer* layer, const CSS
|
| return;
|
| }
|
|
|
| - if (!value.isPrimitiveValue())
|
| + if (!value.isIdentifierValue())
|
| return;
|
|
|
| - const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value);
|
| - layer->setClip(primitiveValue.convertTo<EFillBox>());
|
| + const CSSIdentifierValue& identifierValue = toCSSIdentifierValue(value);
|
| + layer->setClip(identifierValue.convertTo<EFillBox>());
|
| }
|
|
|
| void CSSToStyleMap::mapFillComposite(StyleResolverState&, FillLayer* layer, const CSSValue& value)
|
| @@ -90,11 +90,11 @@ void CSSToStyleMap::mapFillComposite(StyleResolverState&, FillLayer* layer, cons
|
| return;
|
| }
|
|
|
| - if (!value.isPrimitiveValue())
|
| + if (!value.isIdentifierValue())
|
| return;
|
|
|
| - const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value);
|
| - layer->setComposite(primitiveValue.convertTo<CompositeOperator>());
|
| + const CSSIdentifierValue& identifierValue = toCSSIdentifierValue(value);
|
| + layer->setComposite(identifierValue.convertTo<CompositeOperator>());
|
| }
|
|
|
| void CSSToStyleMap::mapFillBlendMode(StyleResolverState&, FillLayer* layer, const CSSValue& value)
|
| @@ -104,11 +104,11 @@ void CSSToStyleMap::mapFillBlendMode(StyleResolverState&, FillLayer* layer, cons
|
| return;
|
| }
|
|
|
| - if (!value.isPrimitiveValue())
|
| + if (!value.isIdentifierValue())
|
| return;
|
|
|
| - const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value);
|
| - layer->setBlendMode(primitiveValue.convertTo<WebBlendMode>());
|
| + const CSSIdentifierValue& identifierValue = toCSSIdentifierValue(value);
|
| + layer->setBlendMode(identifierValue.convertTo<WebBlendMode>());
|
| }
|
|
|
| void CSSToStyleMap::mapFillOrigin(StyleResolverState&, FillLayer* layer, const CSSValue& value)
|
| @@ -118,11 +118,11 @@ void CSSToStyleMap::mapFillOrigin(StyleResolverState&, FillLayer* layer, const C
|
| return;
|
| }
|
|
|
| - if (!value.isPrimitiveValue())
|
| + if (!value.isIdentifierValue())
|
| return;
|
|
|
| - const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value);
|
| - layer->setOrigin(primitiveValue.convertTo<EFillBox>());
|
| + const CSSIdentifierValue& identifierValue = toCSSIdentifierValue(value);
|
| + layer->setOrigin(identifierValue.convertTo<EFillBox>());
|
| }
|
|
|
|
|
| @@ -144,11 +144,11 @@ void CSSToStyleMap::mapFillRepeatX(StyleResolverState&, FillLayer* layer, const
|
| return;
|
| }
|
|
|
| - if (!value.isPrimitiveValue())
|
| + if (!value.isIdentifierValue())
|
| return;
|
|
|
| - const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value);
|
| - layer->setRepeatX(primitiveValue.convertTo<EFillRepeat>());
|
| + const CSSIdentifierValue& identifierValue = toCSSIdentifierValue(value);
|
| + layer->setRepeatX(identifierValue.convertTo<EFillRepeat>());
|
| }
|
|
|
| void CSSToStyleMap::mapFillRepeatY(StyleResolverState&, FillLayer* layer, const CSSValue& value)
|
| @@ -158,11 +158,11 @@ void CSSToStyleMap::mapFillRepeatY(StyleResolverState&, FillLayer* layer, const
|
| return;
|
| }
|
|
|
| - if (!value.isPrimitiveValue())
|
| + if (!value.isIdentifierValue())
|
| return;
|
|
|
| - const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value);
|
| - layer->setRepeatY(primitiveValue.convertTo<EFillRepeat>());
|
| + const CSSIdentifierValue& identifierValue = toCSSIdentifierValue(value);
|
| + layer->setRepeatY(identifierValue.convertTo<EFillRepeat>());
|
| }
|
|
|
| void CSSToStyleMap::mapFillSize(StyleResolverState& state, FillLayer* layer, const CSSValue& value)
|
| @@ -173,19 +173,19 @@ void CSSToStyleMap::mapFillSize(StyleResolverState& state, FillLayer* layer, con
|
| return;
|
| }
|
|
|
| - if (!value.isPrimitiveValue() && !value.isValuePair())
|
| + if (!value.isIdentifierValue() && !value.isPrimitiveValue() && !value.isValuePair())
|
| return;
|
|
|
| - if (value.isPrimitiveValue() && toCSSPrimitiveValue(value).getValueID() == CSSValueContain)
|
| + if (value.isIdentifierValue() && toCSSIdentifierValue(value).getValueID() == CSSValueContain)
|
| layer->setSizeType(Contain);
|
| - else if (value.isPrimitiveValue() && toCSSPrimitiveValue(value).getValueID() == CSSValueCover)
|
| + else if (value.isIdentifierValue() && toCSSIdentifierValue(value).getValueID() == CSSValueCover)
|
| layer->setSizeType(Cover);
|
| else
|
| layer->setSizeType(SizeLength);
|
|
|
| LengthSize b = FillLayer::initialFillSizeLength(layer->type());
|
|
|
| - if (value.isPrimitiveValue() && (toCSSPrimitiveValue(value).getValueID() == CSSValueContain || toCSSPrimitiveValue(value).getValueID() == CSSValueCover)) {
|
| + if (value.isIdentifierValue() && (toCSSIdentifierValue(value).getValueID() == CSSValueContain || toCSSIdentifierValue(value).getValueID() == CSSValueCover)) {
|
| layer->setSizeLength(b);
|
| return;
|
| }
|
| @@ -198,7 +198,7 @@ void CSSToStyleMap::mapFillSize(StyleResolverState& state, FillLayer* layer, con
|
| firstLength = StyleBuilderConverter::convertLengthOrAuto(state, pair.first());
|
| secondLength = StyleBuilderConverter::convertLengthOrAuto(state, pair.second());
|
| } else {
|
| - ASSERT(value.isPrimitiveValue());
|
| + DCHECK(value.isPrimitiveValue() || value.isIdentifierValue());
|
| firstLength = StyleBuilderConverter::convertLengthOrAuto(state, value);
|
| secondLength = Length();
|
| }
|
| @@ -215,18 +215,18 @@ void CSSToStyleMap::mapFillXPosition(StyleResolverState& state, FillLayer* layer
|
| return;
|
| }
|
|
|
| - if (!value.isPrimitiveValue() && !value.isValuePair())
|
| + if (!value.isIdentifierValue() && !value.isPrimitiveValue() && !value.isValuePair())
|
| return;
|
|
|
| Length length;
|
| if (value.isValuePair())
|
| length = toCSSPrimitiveValue(toCSSValuePair(value).second()).convertToLength(state.cssToLengthConversionData());
|
| else
|
| - length = StyleBuilderConverter::convertPositionLength<CSSValueLeft, CSSValueRight>(state, toCSSPrimitiveValue(value));
|
| + length = StyleBuilderConverter::convertPositionLength<CSSValueLeft, CSSValueRight>(state, value);
|
|
|
| layer->setXPosition(length);
|
| if (value.isValuePair())
|
| - layer->setBackgroundXOrigin(toCSSPrimitiveValue(toCSSValuePair(value).first()).convertTo<BackgroundEdgeOrigin>());
|
| + layer->setBackgroundXOrigin(toCSSIdentifierValue(toCSSValuePair(value).first()).convertTo<BackgroundEdgeOrigin>());
|
| }
|
|
|
| void CSSToStyleMap::mapFillYPosition(StyleResolverState& state, FillLayer* layer, const CSSValue& value)
|
| @@ -236,18 +236,18 @@ void CSSToStyleMap::mapFillYPosition(StyleResolverState& state, FillLayer* layer
|
| return;
|
| }
|
|
|
| - if (!value.isPrimitiveValue() && !value.isValuePair())
|
| + if (!value.isIdentifierValue() && !value.isPrimitiveValue() && !value.isValuePair())
|
| return;
|
|
|
| Length length;
|
| if (value.isValuePair())
|
| length = toCSSPrimitiveValue(toCSSValuePair(value).second()).convertToLength(state.cssToLengthConversionData());
|
| else
|
| - length = StyleBuilderConverter::convertPositionLength<CSSValueTop, CSSValueBottom>(state, toCSSPrimitiveValue(value));
|
| + length = StyleBuilderConverter::convertPositionLength<CSSValueTop, CSSValueBottom>(state, value);
|
|
|
| layer->setYPosition(length);
|
| if (value.isValuePair())
|
| - layer->setBackgroundYOrigin(toCSSPrimitiveValue(toCSSValuePair(value).first()).convertTo<BackgroundEdgeOrigin>());
|
| + layer->setBackgroundYOrigin(toCSSIdentifierValue(toCSSValuePair(value).first()).convertTo<BackgroundEdgeOrigin>());
|
| }
|
|
|
| void CSSToStyleMap::mapFillMaskSourceType(StyleResolverState&, FillLayer* layer, const CSSValue& value)
|
| @@ -258,10 +258,10 @@ void CSSToStyleMap::mapFillMaskSourceType(StyleResolverState&, FillLayer* layer,
|
| return;
|
| }
|
|
|
| - if (!value.isPrimitiveValue())
|
| + if (!value.isIdentifierValue())
|
| return;
|
|
|
| - switch (toCSSPrimitiveValue(value).getValueID()) {
|
| + switch (toCSSIdentifierValue(value).getValueID()) {
|
| case CSSValueAlpha:
|
| type = MaskAlpha;
|
| break;
|
| @@ -289,7 +289,7 @@ Timing::PlaybackDirection CSSToStyleMap::mapAnimationDirection(const CSSValue& v
|
| if (value.isInitialValue())
|
| return CSSAnimationData::initialDirection();
|
|
|
| - switch (toCSSPrimitiveValue(value).getValueID()) {
|
| + switch (toCSSIdentifierValue(value).getValueID()) {
|
| case CSSValueNormal:
|
| return Timing::PlaybackDirection::NORMAL;
|
| case CSSValueAlternate:
|
| @@ -316,7 +316,7 @@ Timing::FillMode CSSToStyleMap::mapAnimationFillMode(const CSSValue& value)
|
| if (value.isInitialValue())
|
| return CSSAnimationData::initialFillMode();
|
|
|
| - switch (toCSSPrimitiveValue(value).getValueID()) {
|
| + switch (toCSSIdentifierValue(value).getValueID()) {
|
| case CSSValueNone:
|
| return Timing::FillMode::NONE;
|
| case CSSValueForwards:
|
| @@ -335,10 +335,9 @@ double CSSToStyleMap::mapAnimationIterationCount(const CSSValue& value)
|
| {
|
| if (value.isInitialValue())
|
| return CSSAnimationData::initialIterationCount();
|
| - const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value);
|
| - if (primitiveValue.getValueID() == CSSValueInfinite)
|
| + if (value.isIdentifierValue() && toCSSIdentifierValue(value).getValueID() == CSSValueInfinite)
|
| return std::numeric_limits<double>::infinity();
|
| - return primitiveValue.getFloatValue();
|
| + return toCSSPrimitiveValue(value).getFloatValue();
|
| }
|
|
|
| AtomicString CSSToStyleMap::mapAnimationName(const CSSValue& value)
|
| @@ -347,7 +346,7 @@ AtomicString CSSToStyleMap::mapAnimationName(const CSSValue& value)
|
| return CSSAnimationData::initialName();
|
| if (value.isCustomIdentValue())
|
| return AtomicString(toCSSCustomIdentValue(value).value());
|
| - ASSERT(toCSSPrimitiveValue(value).getValueID() == CSSValueNone);
|
| + DCHECK_EQ(toCSSIdentifierValue(value).getValueID(), CSSValueNone);
|
| return CSSAnimationData::initialName();
|
| }
|
|
|
| @@ -355,9 +354,9 @@ EAnimPlayState CSSToStyleMap::mapAnimationPlayState(const CSSValue& value)
|
| {
|
| if (value.isInitialValue())
|
| return CSSAnimationData::initialPlayState();
|
| - if (toCSSPrimitiveValue(value).getValueID() == CSSValuePaused)
|
| + if (toCSSIdentifierValue(value).getValueID() == CSSValuePaused)
|
| return AnimPlayStatePaused;
|
| - ASSERT(toCSSPrimitiveValue(value).getValueID() == CSSValueRunning);
|
| + DCHECK_EQ(toCSSIdentifierValue(value).getValueID(), CSSValueRunning);
|
| return AnimPlayStatePlaying;
|
| }
|
|
|
| @@ -371,7 +370,7 @@ CSSTransitionData::TransitionProperty CSSToStyleMap::mapAnimationProperty(const
|
| return CSSTransitionData::TransitionProperty(customIdentValue.valueAsPropertyID());
|
| return CSSTransitionData::TransitionProperty(customIdentValue.value());
|
| }
|
| - ASSERT(toCSSPrimitiveValue(value).getValueID() == CSSValueNone);
|
| + DCHECK_EQ(toCSSIdentifierValue(value).getValueID(), CSSValueNone);
|
| return CSSTransitionData::TransitionProperty(CSSTransitionData::TransitionNone);
|
| }
|
|
|
| @@ -382,9 +381,9 @@ PassRefPtr<TimingFunction> CSSToStyleMap::mapAnimationTimingFunction(const CSSVa
|
| // currently get into here with initial since the parser expands unset
|
| // properties in shorthands to initial.
|
|
|
| - if (value.isPrimitiveValue()) {
|
| - const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value);
|
| - switch (primitiveValue.getValueID()) {
|
| + if (value.isIdentifierValue()) {
|
| + const CSSIdentifierValue& identifierValue = toCSSIdentifierValue(value);
|
| + switch (identifierValue.getValueID()) {
|
| case CSSValueLinear:
|
| return LinearTimingFunction::shared();
|
| case CSSValueEase:
|
| @@ -501,24 +500,27 @@ void CSSToStyleMap::mapNinePieceImageSlice(StyleResolverState&, const CSSValue&
|
| // Set up a length box to represent our image slices.
|
| LengthBox box;
|
| const CSSQuadValue& slices = borderImageSlice.slices();
|
| - box.m_top = convertBorderImageSliceSide(*slices.top());
|
| - box.m_bottom = convertBorderImageSliceSide(*slices.bottom());
|
| - box.m_left = convertBorderImageSliceSide(*slices.left());
|
| - box.m_right = convertBorderImageSliceSide(*slices.right());
|
| + box.m_top = convertBorderImageSliceSide(toCSSPrimitiveValue(*slices.top()));
|
| + box.m_bottom = convertBorderImageSliceSide(toCSSPrimitiveValue(*slices.bottom()));
|
| + box.m_left = convertBorderImageSliceSide(toCSSPrimitiveValue(*slices.left()));
|
| + box.m_right = convertBorderImageSliceSide(toCSSPrimitiveValue(*slices.right()));
|
| image.setImageSlices(box);
|
|
|
| // Set our fill mode.
|
| image.setFill(borderImageSlice.fill());
|
| }
|
|
|
| -static BorderImageLength toBorderImageLength(CSSPrimitiveValue& value, const CSSToLengthConversionData& conversionData)
|
| +static BorderImageLength toBorderImageLength(CSSValue& value, const CSSToLengthConversionData& conversionData)
|
| {
|
| - if (value.isNumber())
|
| - return value.getDoubleValue();
|
| - if (value.isPercentage())
|
| - return Length(value.getDoubleValue(), Percent);
|
| - if (value.getValueID() != CSSValueAuto)
|
| - return value.computeLength<Length>(conversionData);
|
| + if (value.isPrimitiveValue()) {
|
| + const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value);
|
| + if (primitiveValue.isNumber())
|
| + return primitiveValue.getDoubleValue();
|
| + if (primitiveValue.isPercentage())
|
| + return Length(primitiveValue.getDoubleValue(), Percent);
|
| + return primitiveValue.computeLength<Length>(conversionData);
|
| + }
|
| + DCHECK_EQ(toCSSIdentifierValue(value).getValueID(), CSSValueAuto);
|
| return Length(Auto);
|
| }
|
|
|
| @@ -543,8 +545,8 @@ void CSSToStyleMap::mapNinePieceImageRepeat(StyleResolverState&, const CSSValue&
|
| return;
|
|
|
| const CSSValuePair& pair = toCSSValuePair(value);
|
| - CSSValueID firstIdentifier = toCSSPrimitiveValue(pair.first()).getValueID();
|
| - CSSValueID secondIdentifier = toCSSPrimitiveValue(pair.second()).getValueID();
|
| + CSSValueID firstIdentifier = toCSSIdentifierValue(pair.first()).getValueID();
|
| + CSSValueID secondIdentifier = toCSSIdentifierValue(pair.second()).getValueID();
|
|
|
| ENinePieceImageRule horizontalRule;
|
| switch (firstIdentifier) {
|
|
|