Index: Source/build/scripts/templates/StyleBuilderFunctions.cpp.tmpl |
diff --git a/Source/build/scripts/templates/StyleBuilderFunctions.cpp.tmpl b/Source/build/scripts/templates/StyleBuilderFunctions.cpp.tmpl |
index 78a0245da7aecc7f128add31de82281a9876f239..0c94b6463d6c5023f131472dcda7dbb2da3d1bf9 100644 |
--- a/Source/build/scripts/templates/StyleBuilderFunctions.cpp.tmpl |
+++ b/Source/build/scripts/templates/StyleBuilderFunctions.cpp.tmpl |
@@ -481,18 +481,31 @@ namespace WebCore { |
CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
if (primitiveValue->getValueID() == CSSValueAuto) |
{{ set_value(property) }}(nullptr); |
- else if (primitiveValue->getValueID() == CSSValueMarginBox |
- || primitiveValue->getValueID() == CSSValueBorderBox |
- || primitiveValue->getValueID() == CSSValuePaddingBox |
- || primitiveValue->getValueID() == CSSValueContentBox) |
- {{ set_value(property) }}(ShapeValue::createLayoutBoxValue(LayoutBox(*primitiveValue))); |
else if (primitiveValue->getValueID() == CSSValueOutsideShape) |
{{ set_value(property) }}(ShapeValue::createOutsideValue()); |
- else if (primitiveValue->isShape()) { |
- {{ set_value(property) }}(ShapeValue::createShapeValue(basicShapeForValue(state, primitiveValue->getShapeValue()))); |
- } |
} else if (value->isImageValue() || value->isImageSetValue()) { |
{{ set_value(property) }}(ShapeValue::createImageValue(state.styleImage({{property_id}}, value))); |
+ } else if (value->isValueList()) { |
+ RefPtr<BasicShape> shape; |
+ LayoutBox layoutBox = BoxMissing; |
+ CSSValueList* valueList = toCSSValueList(value); |
+ for (unsigned i = 0; i < valueList->length(); ++i) { |
+ CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(valueList->itemWithoutBoundsCheck(i)); |
+ if (primitiveValue->isShape()) |
+ shape = basicShapeForValue(state, primitiveValue->getShapeValue()); |
+ else if (primitiveValue->getValueID() == CSSValueContentBox |
+ || primitiveValue->getValueID() == CSSValueBorderBox |
+ || primitiveValue->getValueID() == CSSValuePaddingBox |
+ || primitiveValue->getValueID() == CSSValueMarginBox) |
+ layoutBox = LayoutBox(*primitiveValue); |
+ else |
+ return; |
+ } |
+ |
+ if (shape) |
+ {{ set_value(property) }}(ShapeValue::createShapeValue(shape.release(), layoutBox)); |
+ else if (layoutBox != BoxMissing) |
+ {{ set_value(property) }}(ShapeValue::createLayoutBoxValue(layoutBox)); |
} |
} |
{%- endmacro %} |