summaryrefslogtreecommitdiff
path: root/Source/WebCore/css/CSSFunctionValue.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/css/CSSFunctionValue.cpp')
-rw-r--r--Source/WebCore/css/CSSFunctionValue.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/Source/WebCore/css/CSSFunctionValue.cpp b/Source/WebCore/css/CSSFunctionValue.cpp
index 3877f6da9..31861b336 100644
--- a/Source/WebCore/css/CSSFunctionValue.cpp
+++ b/Source/WebCore/css/CSSFunctionValue.cpp
@@ -40,7 +40,7 @@ CSSFunctionValue::CSSFunctionValue(CSSParserFunction* function)
m_args = CSSValueList::createFromParserValueList(*function->args);
}
-CSSFunctionValue::CSSFunctionValue(String name, PassRefPtr<CSSValueList> args)
+CSSFunctionValue::CSSFunctionValue(const String& name, PassRefPtr<CSSValueList> args)
: CSSValue(FunctionClass)
, m_name(name)
, m_args(args)
@@ -62,4 +62,19 @@ bool CSSFunctionValue::equals(const CSSFunctionValue& other) const
return m_name == other.m_name && compareCSSValuePtr(m_args, other.m_args);
}
+bool CSSFunctionValue::buildParserValueSubstitutingVariables(CSSParserValue* result, const CustomPropertyValueMap& customProperties) const
+{
+ result->id = CSSValueInvalid;
+ result->unit = CSSParserValue::Function;
+ result->function = new CSSParserFunction;
+ result->function->name.init(m_name);
+ bool success = true;
+ if (m_args) {
+ CSSParserValueList* argList = new CSSParserValueList;
+ success = m_args->buildParserValueListSubstitutingVariables(argList, customProperties);
+ result->function->args.reset(argList);
+ }
+ return success;
+}
+
}