Index: third_party/WebKit/Source/core/css/CSSBasicShapeValues.cpp |
diff --git a/third_party/WebKit/Source/core/css/CSSBasicShapeValues.cpp b/third_party/WebKit/Source/core/css/CSSBasicShapeValues.cpp |
index b361d43e3db6ad761c5e9090bec5e5f304a58a33..32982626e14c46fa3a0883dc2e4b91580bc2b45c 100644 |
--- a/third_party/WebKit/Source/core/css/CSSBasicShapeValues.cpp |
+++ b/third_party/WebKit/Source/core/css/CSSBasicShapeValues.cpp |
@@ -29,6 +29,7 @@ |
#include "core/css/CSSBasicShapeValues.h" |
+#include "core/css/CSSIdentifierValue.h" |
#include "core/css/CSSPrimitiveValue.h" |
#include "core/css/CSSValuePair.h" |
#include "platform/Length.h" |
@@ -62,8 +63,8 @@ static String buildCircleString(const String& radius, const String& centerX, con |
static String serializePositionOffset(const CSSValuePair& offset, const CSSValuePair& other) |
{ |
- if ((toCSSPrimitiveValue(offset.first()).getValueID() == CSSValueLeft && toCSSPrimitiveValue(other.first()).getValueID() == CSSValueTop) |
- || (toCSSPrimitiveValue(offset.first()).getValueID() == CSSValueTop && toCSSPrimitiveValue(other.first()).getValueID() == CSSValueLeft)) |
+ if ((toCSSIdentifierValue(offset.first()).getValueID() == CSSValueLeft && toCSSIdentifierValue(other.first()).getValueID() == CSSValueTop) |
+ || (toCSSIdentifierValue(offset.first()).getValueID() == CSSValueTop && toCSSIdentifierValue(other.first()).getValueID() == CSSValueLeft)) |
return offset.second().cssText(); |
return offset.cssText(); |
} |
@@ -75,10 +76,10 @@ static CSSValuePair* buildSerializablePositionOffset(CSSValue* offset, CSSValueI |
if (!offset) { |
side = CSSValueCenter; |
- } else if (offset->isPrimitiveValue() && toCSSPrimitiveValue(offset)->isValueID()) { |
- side = toCSSPrimitiveValue(offset)->getValueID(); |
+ } else if (offset->isIdentifierValue()) { |
+ side = toCSSIdentifierValue(offset)->getValueID(); |
} else if (offset->isValuePair()) { |
- side = toCSSPrimitiveValue(toCSSValuePair(*offset).first()).getValueID(); |
+ side = toCSSIdentifierValue(toCSSValuePair(*offset).first()).getValueID(); |
amount = &toCSSPrimitiveValue(toCSSValuePair(*offset).second()); |
if ((side == CSSValueRight || side == CSSValueBottom) && amount->isPercentage()) { |
side = defaultSide; |
@@ -99,7 +100,7 @@ static CSSValuePair* buildSerializablePositionOffset(CSSValue* offset, CSSValueI |
side = defaultSide; |
} |
- return CSSValuePair::create(CSSPrimitiveValue::createIdentifier(side), amount, CSSValuePair::KeepIdenticalValues); |
+ return CSSValuePair::create(CSSIdentifierValue::create(side), amount, CSSValuePair::KeepIdenticalValues); |
} |
String CSSBasicShapeCircleValue::customCSSText() const |
@@ -108,7 +109,7 @@ String CSSBasicShapeCircleValue::customCSSText() const |
CSSValuePair* normalizedCY = buildSerializablePositionOffset(m_centerY, CSSValueTop); |
String radius; |
- if (m_radius && m_radius->getValueID() != CSSValueClosestSide) |
+ if (m_radius && !(m_radius->isIdentifierValue() && toCSSIdentifierValue(*m_radius).getValueID() == CSSValueClosestSide)) |
radius = m_radius->cssText(); |
return buildCircleString(radius, |
@@ -170,11 +171,11 @@ String CSSBasicShapeEllipseValue::customCSSText() const |
String radiusX; |
String radiusY; |
if (m_radiusX) { |
- bool shouldSerializeRadiusXValue = m_radiusX->getValueID() != CSSValueClosestSide; |
+ bool shouldSerializeRadiusXValue = !(m_radiusX->isIdentifierValue() && toCSSIdentifierValue(*m_radiusX).getValueID() == CSSValueClosestSide); |
bool shouldSerializeRadiusYValue = false; |
if (m_radiusY) { |
- shouldSerializeRadiusYValue = m_radiusY->getValueID() != CSSValueClosestSide; |
+ shouldSerializeRadiusYValue = !(m_radiusY->isIdentifierValue() && toCSSIdentifierValue(*m_radiusY).getValueID() == CSSValueClosestSide); |
if (shouldSerializeRadiusYValue) |
radiusY = m_radiusY->cssText(); |
} |