Index: Source/core/css/resolver/StyleBuilderConverter.cpp |
diff --git a/Source/core/css/resolver/StyleBuilderConverter.cpp b/Source/core/css/resolver/StyleBuilderConverter.cpp |
index a3a34e281fc249877818e21b4ba66d37a3038dc6..f9e66ccc8dee6c0fc21270d24e62ef55b8e89dfc 100644 |
--- a/Source/core/css/resolver/StyleBuilderConverter.cpp |
+++ b/Source/core/css/resolver/StyleBuilderConverter.cpp |
@@ -28,6 +28,7 @@ |
#include "core/css/resolver/StyleBuilderConverter.h" |
#include "core/css/BasicShapeFunctions.h" |
+#include "core/css/CSSContentDistributionValue.h" |
#include "core/css/CSSFontFeatureValue.h" |
#include "core/css/CSSFunctionValue.h" |
#include "core/css/CSSGridLineNamesValue.h" |
@@ -331,6 +332,37 @@ EGlyphOrientation StyleBuilderConverter::convertGlyphOrientation(StyleResolverSt |
return GO_270DEG; |
} |
+StyleSelfAlignmentData StyleBuilderConverter::convertSelfOrDefaultAlignmentData(StyleResolverState&, CSSValue* value) |
+{ |
+ StyleSelfAlignmentData alignmentData = ComputedStyle::initialSelfAlignment(); |
+ CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
+ if (Pair* pairValue = primitiveValue->getPairValue()) { |
+ if (pairValue->first()->getValueID() == CSSValueLegacy) { |
+ alignmentData.setPositionType(LegacyPosition); |
+ alignmentData.setPosition(*pairValue->second()); |
+ } else { |
+ alignmentData.setPosition(*pairValue->first()); |
+ alignmentData.setOverflow(*pairValue->second()); |
+ } |
+ } else { |
+ alignmentData.setPosition(*primitiveValue); |
+ } |
+ return alignmentData; |
+} |
+ |
+StyleContentAlignmentData StyleBuilderConverter::convertContentAlignmentData(StyleResolverState&, CSSValue* value) |
+{ |
+ StyleContentAlignmentData alignmentData = ComputedStyle::initialContentAlignment(); |
+ CSSContentDistributionValue* contentValue = toCSSContentDistributionValue(value); |
+ if (contentValue->distribution()->getValueID() != CSSValueInvalid) |
+ alignmentData.setDistribution(*contentValue->distribution()); |
+ if (contentValue->position()->getValueID() != CSSValueInvalid) |
+ alignmentData.setPosition(*contentValue->position()); |
+ if (contentValue->overflow()->getValueID() != CSSValueInvalid) |
+ alignmentData.setOverflow(*contentValue->overflow()); |
+ return alignmentData; |
+} |
+ |
GridAutoFlow StyleBuilderConverter::convertGridAutoFlow(StyleResolverState&, CSSValue* value) |
{ |
CSSValueList* list = toCSSValueList(value); |