Index: third_party/WebKit/Source/core/css/CSSPrimitiveValue.cpp |
diff --git a/third_party/WebKit/Source/core/css/CSSPrimitiveValue.cpp b/third_party/WebKit/Source/core/css/CSSPrimitiveValue.cpp |
index f862828c1ff50e89566563ea50ef2a67a3804bf3..6822d32db341a848fc74692e5688bbdc32e96ef5 100644 |
--- a/third_party/WebKit/Source/core/css/CSSPrimitiveValue.cpp |
+++ b/third_party/WebKit/Source/core/css/CSSPrimitiveValue.cpp |
@@ -26,6 +26,7 @@ |
#include "core/css/CSSHelper.h" |
#include "core/css/CSSMarkup.h" |
#include "core/css/CSSToLengthConversionData.h" |
+#include "core/css/CSSVariableData.h" |
#include "core/css/StyleSheetContents.h" |
#include "core/dom/Node.h" |
#include "core/style/ComputedStyle.h" |
@@ -340,6 +341,13 @@ void CSSPrimitiveValue::init(PassRefPtrWillBeRawPtr<CSSBasicShape> shape) |
m_value.shape = shape.leakRef(); |
} |
+void CSSPrimitiveValue::init(PassRefPtrWillBeRawPtr<CSSVariableData> variableData) |
+{ |
+ init(UnitType::VariableReference); |
+ m_hasCachedCSSText = false; |
+ m_value.variableData = variableData.leakRef(); |
+} |
+ |
CSSPrimitiveValue::~CSSPrimitiveValue() |
{ |
cleanup(); |
@@ -370,6 +378,11 @@ void CSSPrimitiveValue::cleanup() |
m_value.shape->deref(); |
#endif |
break; |
+ case UnitType::VariableReference: |
+#if !ENABLE(OILPAN) |
+ m_value.variableData->deref(); |
+#endif |
+ break; |
case UnitType::Number: |
case UnitType::Integer: |
case UnitType::Percentage: |
@@ -852,6 +865,7 @@ const char* CSSPrimitiveValue::unitTypeToString(UnitType type) |
case UnitType::Shape: |
case UnitType::CalcPercentageWithNumber: |
case UnitType::CalcPercentageWithLength: |
+ case UnitType::VariableReference: |
break; |
}; |
ASSERT_NOT_REACHED(); |
@@ -930,6 +944,11 @@ String CSSPrimitiveValue::customCSSText() const |
case UnitType::Shape: |
text = m_value.shape->cssText(); |
break; |
+ case UnitType::VariableReference: { |
+ CSSParserTokenRange range = m_value.variableData->tokenRange(); |
+ text = range.serialize(); |
+ break; |
+ } |
case UnitType::CalcPercentageWithNumber: |
case UnitType::CalcPercentageWithLength: |
ASSERT_NOT_REACHED(); |
@@ -992,6 +1011,8 @@ bool CSSPrimitiveValue::equals(const CSSPrimitiveValue& other) const |
return m_value.calc && other.m_value.calc && m_value.calc->equals(*other.m_value.calc); |
case UnitType::Shape: |
return m_value.shape && other.m_value.shape && m_value.shape->equals(*other.m_value.shape); |
+ case UnitType::VariableReference: |
+ return m_value.variableData == other.m_value.variableData; |
case UnitType::Integer: |
case UnitType::Chs: |
case UnitType::CalcPercentageWithNumber: |