Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / css / CSSParserValues.h
index 0aafa37..d2879a4 100644 (file)
@@ -131,6 +131,12 @@ struct CSSParserString {
     bool m_is8Bit;
 };
 
+template <>
+inline const LChar* CSSParserString::characters<LChar>() const { return characters8(); }
+
+template <>
+inline const UChar* CSSParserString::characters<UChar>() const { return characters16(); }
+
 struct CSSParserFunction;
 
 struct CSSParserValue {
@@ -141,16 +147,19 @@ struct CSSParserValue {
         int iValue;
         CSSParserString string;
         CSSParserFunction* function;
+        CSSParserValueList* valueList;
     };
     enum {
-        Operator = 0x100000,
-        Function = 0x100001,
-        Q_EMS    = 0x100002
+        Operator  = 0x100000,
+        Function  = 0x100001,
+        ValueList = 0x100002,
+        Q_EMS     = 0x100003,
     };
     int unit;
 
     inline void setFromNumber(double value, int unit = CSSPrimitiveValue::CSS_NUMBER);
     inline void setFromFunction(CSSParserFunction*);
+    inline void setFromValueList(PassOwnPtr<CSSParserValueList>);
 
     PassRefPtr<CSSValue> createCSSValue();
 };
@@ -167,7 +176,7 @@ public:
     void addValue(const CSSParserValue&);
     void insertValueAt(unsigned, const CSSParserValue&);
     void deleteValueAt(unsigned);
-    void extend(CSSParserValueList&);
+    void stealValues(CSSParserValueList&);
 
     unsigned size() const { return m_values.size(); }
     unsigned currentIndex() { return m_current; }
@@ -215,7 +224,6 @@ public:
     void setForPage() { m_selector->setForPage(); }
     void setRelationIsAffectedByPseudoContent() { m_selector->setRelationIsAffectedByPseudoContent(); }
     bool relationIsAffectedByPseudoContent() const { return m_selector->relationIsAffectedByPseudoContent(); }
-    void setMatchUserAgentOnly() { m_selector->setMatchUserAgentOnly(); }
 
     void adoptSelectorVector(Vector<OwnPtr<CSSParserSelector> >& selectorVector);
 
@@ -254,7 +262,10 @@ inline void CSSParserValue::setFromNumber(double value, int unit)
 {
     id = CSSValueInvalid;
     isInt = false;
-    fValue = value;
+    if (std::isfinite(value))
+        fValue = value;
+    else
+        fValue = 0;
     this->unit = unit;
 }
 
@@ -265,6 +276,13 @@ inline void CSSParserValue::setFromFunction(CSSParserFunction* function)
     unit = Function;
 }
 
+inline void CSSParserValue::setFromValueList(PassOwnPtr<CSSParserValueList> valueList)
+{
+    id = CSSValueInvalid;
+    this->valueList = valueList.leakPtr();
+    unit = ValueList;
+}
+
 }
 
 #endif