| Index: third_party/WebKit/Source/core/css/resolver/StyleBuilderCustom.cpp
|
| diff --git a/third_party/WebKit/Source/core/css/resolver/StyleBuilderCustom.cpp b/third_party/WebKit/Source/core/css/resolver/StyleBuilderCustom.cpp
|
| index 5943b343d79f52940f4134609269175f0e8107ab..e9e56d3b274778cc4e1ebf1803823c3491e7e38d 100644
|
| --- a/third_party/WebKit/Source/core/css/resolver/StyleBuilderCustom.cpp
|
| +++ b/third_party/WebKit/Source/core/css/resolver/StyleBuilderCustom.cpp
|
| @@ -46,6 +46,7 @@
|
| #include "core/css/CSSBasicShapeValues.h"
|
| #include "core/css/CSSCounterValue.h"
|
| #include "core/css/CSSCursorImageValue.h"
|
| +#include "core/css/CSSCustomPropertyDeclaration.h"
|
| #include "core/css/CSSFunctionValue.h"
|
| #include "core/css/CSSGradientValue.h"
|
| #include "core/css/CSSGridTemplateAreasValue.h"
|
| @@ -56,8 +57,10 @@
|
| #include "core/css/CSSPropertyMetadata.h"
|
| #include "core/css/CSSURIValue.h"
|
| #include "core/css/CSSValuePair.h"
|
| +#include "core/css/CSSVariableReferenceValue.h"
|
| #include "core/css/StylePropertySet.h"
|
| #include "core/css/StyleRule.h"
|
| +#include "core/css/resolver/CSSVariableResolver.h"
|
| #include "core/css/resolver/ElementStyleResources.h"
|
| #include "core/css/resolver/FilterOperationResolver.h"
|
| #include "core/css/resolver/FontBuilder.h"
|
| @@ -108,6 +111,11 @@ static inline bool isValidVisitedLinkProperty(CSSPropertyID id)
|
|
|
| void StyleBuilder::applyProperty(CSSPropertyID id, StyleResolverState& state, CSSValue* value)
|
| {
|
| + if (RuntimeEnabledFeatures::cssVariablesEnabled() && id != CSSPropertyVariable && value->isVariableReferenceValue()) {
|
| + CSSVariableResolver::resolveAndApplyVariableReferences(state, id, *toCSSVariableReferenceValue(value));
|
| + return;
|
| + }
|
| +
|
| ASSERT_WITH_MESSAGE(!isShorthandProperty(id), "Shorthand property id = %d wasn't expanded at parsing time", id);
|
|
|
| bool isInherit = state.parentNode() && value->isInheritedValue();
|
| @@ -813,6 +821,34 @@ void StyleBuilderFunctions::applyValueCSSPropertyWebkitTextOrientation(StyleReso
|
| state.setTextOrientation(toCSSPrimitiveValue(value)->convertTo<TextOrientation>());
|
| }
|
|
|
| +void StyleBuilderFunctions::applyValueCSSPropertyVariable(StyleResolverState& state, CSSValue* value)
|
| +{
|
| + CSSCustomPropertyDeclaration* declaration = toCSSCustomPropertyDeclaration(value);
|
| + switch (declaration->id()) {
|
| + case CSSValueInitial:
|
| + state.style()->removeVariable(declaration->name());
|
| + break;
|
| +
|
| + case CSSValueUnset:
|
| + case CSSValueInherit: {
|
| + state.style()->removeVariable(declaration->name());
|
| + StyleVariableData* parentVariables = state.parentStyle()->variables();
|
| + if (!parentVariables)
|
| + return;
|
| + CSSVariableData* value = parentVariables->getVariable(declaration->name());
|
| + if (!value)
|
| + return;
|
| + state.style()->setVariable(declaration->name(), value);
|
| + break;
|
| + }
|
| + case CSSValueInternalVariableValue:
|
| + state.style()->setVariable(declaration->name(), declaration->value());
|
| + break;
|
| + default:
|
| + ASSERT_NOT_REACHED();
|
| + }
|
| +}
|
| +
|
| void StyleBuilderFunctions::applyInheritCSSPropertyBaselineShift(StyleResolverState& state)
|
| {
|
| const SVGComputedStyle& parentSvgStyle = state.parentStyle()->svgStyle();
|
|
|