Index: Source/core/css/CSSPrimitiveValue.h |
diff --git a/Source/core/css/CSSPrimitiveValue.h b/Source/core/css/CSSPrimitiveValue.h |
index a32af7d5237b5bc9da538abade86e91370a3efa3..cf8c0f905f7aed545a2b4d4dba92e99a1818cd85 100644 |
--- a/Source/core/css/CSSPrimitiveValue.h |
+++ b/Source/core/css/CSSPrimitiveValue.h |
@@ -38,6 +38,7 @@ namespace blink { |
class CSSBasicShape; |
class CSSCalcValue; |
class CSSToLengthConversionData; |
+class CSSVariableData; |
class Counter; |
class Length; |
class LengthSize; |
@@ -119,6 +120,7 @@ public: |
PropertyID, |
ValueID, |
QuirkyEms, |
+ VariableReference, |
}; |
enum LengthUnitType { |
@@ -196,6 +198,7 @@ public: |
bool isTime() const { return type() == UnitType::Seconds || type() == UnitType::Milliseconds; } |
bool isURI() const { return type() == UnitType::URI; } |
bool isCalculated() const { return type() == UnitType::Calc; } |
+ bool isVariableReference() const { return type() == UnitType::VariableReference; } |
bool isCalculatedPercentageWithNumber() const { return typeWithCalcResolved() == UnitType::CalcPercentageWithNumber; } |
bool isCalculatedPercentageWithLength() const { return typeWithCalcResolved() == UnitType::CalcPercentageWithLength; } |
static bool isDotsPerInch(UnitType type) { return type == UnitType::DotsPerInch; } |
@@ -234,6 +237,10 @@ public: |
{ |
return adoptRefWillBeNoop(new CSSPrimitiveValue(value, style)); |
} |
+ static PassRefPtrWillBeRawPtr<CSSPrimitiveValue> create(CSSVariableData* value) |
+ { |
+ return adoptRefWillBeNoop(new CSSPrimitiveValue(value)); |
+ } |
template<typename T> static PassRefPtrWillBeRawPtr<CSSPrimitiveValue> create(T value) |
{ |
return adoptRefWillBeNoop(new CSSPrimitiveValue(value)); |
@@ -284,6 +291,12 @@ public: |
CSSCalcValue* cssCalcValue() const { ASSERT(isCalculated()); return m_value.calc; } |
CSSPropertyID getPropertyID() const { ASSERT(isPropertyID()); return m_value.propertyID; } |
+ CSSVariableData* getVariableDataValue() const |
+ { |
+ ASSERT(type() == UnitType::VariableReference); |
+ return m_value.variableData; |
+ } |
+ |
CSSValueID getValueID() const { return type() == UnitType::ValueID ? m_value.valueID : CSSValueInvalid; } |
template<typename T> inline operator T() const; // Defined in CSSPrimitiveValueMappings.h |
@@ -312,6 +325,7 @@ private: |
CSSPrimitiveValue(const LengthSize&, const ComputedStyle&); |
CSSPrimitiveValue(const String&, UnitType); |
CSSPrimitiveValue(double, UnitType); |
+ CSSPrimitiveValue(CSSVariableData*); |
template<typename T> CSSPrimitiveValue(T); // Defined in CSSPrimitiveValueMappings.h |
template<typename T> CSSPrimitiveValue(T* val) |
@@ -357,6 +371,7 @@ private: |
Pair* pair; |
Rect* rect; |
Quad* quad; |
+ CSSVariableData* variableData; |
} m_value; |
}; |