| Index: Source/core/css/CSSPrimitiveValue.h
|
| diff --git a/Source/core/css/CSSPrimitiveValue.h b/Source/core/css/CSSPrimitiveValue.h
|
| index f045e5536151670a0b096adf948964cdcea10bfe..f3a350b6fa8a5803748c2171698736bafb9e3a43 100644
|
| --- a/Source/core/css/CSSPrimitiveValue.h
|
| +++ b/Source/core/css/CSSPrimitiveValue.h
|
| @@ -22,6 +22,7 @@
|
| #ifndef CSSPrimitiveValue_h
|
| #define CSSPrimitiveValue_h
|
|
|
| +#include "CSSPropertyNames.h"
|
| #include "CSSValueKeywords.h"
|
| #include "core/css/CSSValue.h"
|
| #include "core/platform/graphics/Color.h"
|
| @@ -129,6 +130,9 @@ public:
|
| CSS_CALC_PERCENTAGE_WITH_NUMBER = 114,
|
| CSS_CALC_PERCENTAGE_WITH_LENGTH = 115,
|
| CSS_VARIABLE_NAME = 116,
|
| +
|
| + CSS_PROPERTY_ID = 117,
|
| + CSS_VALUE_ID = 118
|
| };
|
|
|
| // This enum follows the CSSParser::Units enum augmented with UNIT_FREQUENCY for frequencies.
|
| @@ -161,7 +165,6 @@ public:
|
| || m_primitiveUnitType == CSS_REMS
|
| || m_primitiveUnitType == CSS_CHS;
|
| }
|
| - bool isIdent() const { return m_primitiveUnitType == CSS_IDENT; }
|
| bool isLength() const
|
| {
|
| unsigned short type = primitiveType();
|
| @@ -190,8 +193,11 @@ public:
|
| bool isVariableName() const { return primitiveType() == CSS_VARIABLE_NAME; }
|
| bool isViewportPercentageLength() const { return m_primitiveUnitType >= CSS_VW && m_primitiveUnitType <= CSS_VMAX; }
|
| bool isFlex() const { return primitiveType() == CSS_FR; }
|
| + bool isValueID() const { return m_primitiveUnitType == CSS_VALUE_ID; }
|
|
|
| - static PassRefPtr<CSSPrimitiveValue> createIdentifier(int identifier) { return adoptRef(new CSSPrimitiveValue(identifier)); }
|
| + static PassRefPtr<CSSPrimitiveValue> createIdentifier(CSSValueID valueID) { return adoptRef(new CSSPrimitiveValue(valueID)); }
|
| + static PassRefPtr<CSSPrimitiveValue> createIdentifier(CSSPropertyID propertyID) { return adoptRef(new CSSPrimitiveValue(propertyID)); }
|
| + static PassRefPtr<CSSPrimitiveValue> createParserOperator(int parserOperator) { return adoptRef(new CSSPrimitiveValue(parserOperator)); }
|
| static PassRefPtr<CSSPrimitiveValue> createColor(unsigned rgbValue) { return adoptRef(new CSSPrimitiveValue(rgbValue)); }
|
| static PassRefPtr<CSSPrimitiveValue> create(double value, UnitTypes type) { return adoptRef(new CSSPrimitiveValue(value, type)); }
|
| static PassRefPtr<CSSPrimitiveValue> create(const String& value, UnitTypes type) { return adoptRef(new CSSPrimitiveValue(value, type)); }
|
| @@ -293,7 +299,8 @@ public:
|
|
|
| CSSCalcValue* cssCalcValue() const { return m_primitiveUnitType != CSS_CALC ? 0 : m_value.calc; }
|
|
|
| - int getIdent() const { return m_primitiveUnitType == CSS_IDENT ? m_value.ident : 0; }
|
| + CSSPropertyID getPropertyID() const { return m_primitiveUnitType == CSS_PROPERTY_ID ? m_value.propertyID : CSSPropertyInvalid; }
|
| + CSSValueID getValueID() const { return m_primitiveUnitType == CSS_VALUE_ID ? m_value.valueID : CSSValueInvalid; }
|
|
|
| template<typename T> inline operator T() const; // Defined in CSSPrimitiveValueMappings.h
|
|
|
| @@ -315,8 +322,10 @@ public:
|
| void reportDescendantMemoryUsage(MemoryObjectInfo*) const;
|
|
|
| private:
|
| - // FIXME: int vs. unsigned overloading is too subtle to distinguish the color and identifier cases.
|
| - CSSPrimitiveValue(int ident);
|
| + CSSPrimitiveValue(CSSValueID);
|
| + CSSPrimitiveValue(CSSPropertyID);
|
| + // FIXME: int vs. unsigned overloading is too subtle to distinguish the color and operator cases.
|
| + CSSPrimitiveValue(int parserOperator);
|
| CSSPrimitiveValue(unsigned color); // RGB value
|
| CSSPrimitiveValue(const Length&);
|
| CSSPrimitiveValue(const String&, UnitTypes);
|
| @@ -352,7 +361,9 @@ private:
|
| double computeLengthDouble(RenderStyle* currentStyle, RenderStyle* rootStyle, float multiplier, bool computingFontSize);
|
|
|
| union {
|
| - int ident;
|
| + CSSPropertyID propertyID;
|
| + CSSValueID valueID;
|
| + int parserOperator;
|
| double num;
|
| StringImpl* string;
|
| Counter* counter;
|
|
|