String StylePropertySerializer::getPropertyValue(CSSPropertyID propertyID) const { // Shorthand and 4-values properties switch (propertyID) { case CSSPropertyAnimation: return getLayeredShorthandValue(animationShorthand()); case CSSPropertyBorderSpacing: return borderSpacingValue(borderSpacingShorthand()); case CSSPropertyBackgroundPosition: return getLayeredShorthandValue(backgroundPositionShorthand()); case CSSPropertyBackgroundRepeat: return backgroundRepeatPropertyValue(); case CSSPropertyBackground: return getLayeredShorthandValue(backgroundShorthand()); case CSSPropertyBorder: return borderPropertyValue(OmitUncommonValues); case CSSPropertyBorderTop: return getShorthandValue(borderTopShorthand()); case CSSPropertyBorderRight: return getShorthandValue(borderRightShorthand()); case CSSPropertyBorderBottom: return getShorthandValue(borderBottomShorthand()); case CSSPropertyBorderLeft: return getShorthandValue(borderLeftShorthand()); case CSSPropertyOutline: return getShorthandValue(outlineShorthand()); case CSSPropertyBorderColor: return get4Values(borderColorShorthand()); case CSSPropertyBorderWidth: return get4Values(borderWidthShorthand()); case CSSPropertyBorderStyle: return get4Values(borderStyleShorthand()); case CSSPropertyWebkitColumnRule: return getShorthandValue(webkitColumnRuleShorthand()); case CSSPropertyWebkitColumns: return getShorthandValue(webkitColumnsShorthand()); case CSSPropertyFlex: return getShorthandValue(flexShorthand()); case CSSPropertyFlexFlow: return getShorthandValue(flexFlowShorthand()); case CSSPropertyGridColumn: return getShorthandValue(gridColumnShorthand()); case CSSPropertyGridRow: return getShorthandValue(gridRowShorthand()); case CSSPropertyGridArea: return getShorthandValue(gridAreaShorthand()); case CSSPropertyFont: return fontValue(); case CSSPropertyMargin: return get4Values(marginShorthand()); case CSSPropertyWebkitMarginCollapse: return getShorthandValue(webkitMarginCollapseShorthand()); case CSSPropertyOverflow: return getCommonValue(overflowShorthand()); case CSSPropertyPadding: return get4Values(paddingShorthand()); case CSSPropertyTransition: return getLayeredShorthandValue(transitionShorthand()); case CSSPropertyListStyle: return getShorthandValue(listStyleShorthand()); case CSSPropertyWebkitMaskPosition: return getLayeredShorthandValue(webkitMaskPositionShorthand()); case CSSPropertyWebkitMaskRepeat: return getLayeredShorthandValue(webkitMaskRepeatShorthand()); case CSSPropertyWebkitMask: return getLayeredShorthandValue(webkitMaskShorthand()); case CSSPropertyWebkitTextEmphasis: return getShorthandValue(webkitTextEmphasisShorthand()); case CSSPropertyWebkitTextStroke: return getShorthandValue(webkitTextStrokeShorthand()); case CSSPropertyTransformOrigin: case CSSPropertyWebkitTransformOrigin: return getShorthandValue(webkitTransformOriginShorthand()); case CSSPropertyWebkitTransition: return getLayeredShorthandValue(webkitTransitionShorthand()); case CSSPropertyWebkitAnimation: return getLayeredShorthandValue(webkitAnimationShorthand()); case CSSPropertyMarker: { RefPtrWillBeRawPtr<CSSValue> value = m_propertySet.getPropertyCSSValue(CSSPropertyMarkerStart); if (value) return value->cssText(); return String(); } case CSSPropertyBorderRadius: return get4Values(borderRadiusShorthand()); default: return String(); } }
CSSPropertyID CSSProperty::resolveDirectionAwareProperty(CSSPropertyID propertyID, TextDirection direction, WritingMode writingMode) { switch (propertyID) { case CSSPropertyWebkitMarginEnd: return resolveToPhysicalProperty(direction, writingMode, EndSide, marginShorthand()); case CSSPropertyWebkitMarginStart: return resolveToPhysicalProperty(direction, writingMode, StartSide, marginShorthand()); case CSSPropertyWebkitMarginBefore: return resolveToPhysicalProperty(direction, writingMode, BeforeSide, marginShorthand()); case CSSPropertyWebkitMarginAfter: return resolveToPhysicalProperty(direction, writingMode, AfterSide, marginShorthand()); case CSSPropertyWebkitPaddingEnd: return resolveToPhysicalProperty(direction, writingMode, EndSide, paddingShorthand()); case CSSPropertyWebkitPaddingStart: return resolveToPhysicalProperty(direction, writingMode, StartSide, paddingShorthand()); case CSSPropertyWebkitPaddingBefore: return resolveToPhysicalProperty(direction, writingMode, BeforeSide, paddingShorthand()); case CSSPropertyWebkitPaddingAfter: return resolveToPhysicalProperty(direction, writingMode, AfterSide, paddingShorthand()); case CSSPropertyWebkitBorderEnd: return resolveToPhysicalProperty(direction, writingMode, EndSide, borderDirections()); case CSSPropertyWebkitBorderStart: return resolveToPhysicalProperty(direction, writingMode, StartSide, borderDirections()); case CSSPropertyWebkitBorderBefore: return resolveToPhysicalProperty(direction, writingMode, BeforeSide, borderDirections()); case CSSPropertyWebkitBorderAfter: return resolveToPhysicalProperty(direction, writingMode, AfterSide, borderDirections()); case CSSPropertyWebkitBorderEndColor: return resolveToPhysicalProperty(direction, writingMode, EndSide, borderColorShorthand()); case CSSPropertyWebkitBorderStartColor: return resolveToPhysicalProperty(direction, writingMode, StartSide, borderColorShorthand()); case CSSPropertyWebkitBorderBeforeColor: return resolveToPhysicalProperty(direction, writingMode, BeforeSide, borderColorShorthand()); case CSSPropertyWebkitBorderAfterColor: return resolveToPhysicalProperty(direction, writingMode, AfterSide, borderColorShorthand()); case CSSPropertyWebkitBorderEndStyle: return resolveToPhysicalProperty(direction, writingMode, EndSide, borderStyleShorthand()); case CSSPropertyWebkitBorderStartStyle: return resolveToPhysicalProperty(direction, writingMode, StartSide, borderStyleShorthand()); case CSSPropertyWebkitBorderBeforeStyle: return resolveToPhysicalProperty(direction, writingMode, BeforeSide, borderStyleShorthand()); case CSSPropertyWebkitBorderAfterStyle: return resolveToPhysicalProperty(direction, writingMode, AfterSide, borderStyleShorthand()); case CSSPropertyWebkitBorderEndWidth: return resolveToPhysicalProperty(direction, writingMode, EndSide, borderWidthShorthand()); case CSSPropertyWebkitBorderStartWidth: return resolveToPhysicalProperty(direction, writingMode, StartSide, borderWidthShorthand()); case CSSPropertyWebkitBorderBeforeWidth: return resolveToPhysicalProperty(direction, writingMode, BeforeSide, borderWidthShorthand()); case CSSPropertyWebkitBorderAfterWidth: return resolveToPhysicalProperty(direction, writingMode, AfterSide, borderWidthShorthand()); case CSSPropertyWebkitLogicalWidth: { const CSSPropertyID properties[2] = { CSSPropertyWidth, CSSPropertyHeight }; return resolveToPhysicalProperty(writingMode, LogicalWidth, properties); } case CSSPropertyWebkitLogicalHeight: { const CSSPropertyID properties[2] = { CSSPropertyWidth, CSSPropertyHeight }; return resolveToPhysicalProperty(writingMode, LogicalHeight, properties); } case CSSPropertyWebkitMinLogicalWidth: { const CSSPropertyID properties[2] = { CSSPropertyMinWidth, CSSPropertyMinHeight }; return resolveToPhysicalProperty(writingMode, LogicalWidth, properties); } case CSSPropertyWebkitMinLogicalHeight: { const CSSPropertyID properties[2] = { CSSPropertyMinWidth, CSSPropertyMinHeight }; return resolveToPhysicalProperty(writingMode, LogicalHeight, properties); } case CSSPropertyWebkitMaxLogicalWidth: { const CSSPropertyID properties[2] = { CSSPropertyMaxWidth, CSSPropertyMaxHeight }; return resolveToPhysicalProperty(writingMode, LogicalWidth, properties); } case CSSPropertyWebkitMaxLogicalHeight: { const CSSPropertyID properties[2] = { CSSPropertyMaxWidth, CSSPropertyMaxHeight }; return resolveToPhysicalProperty(writingMode, LogicalHeight, properties); } default: return propertyID; } }
String StylePropertySerializer::getPropertyValue(CSSPropertyID propertyID) const { // Shorthand and 4-values properties switch (propertyID) { case CSSPropertyAnimation: return getLayeredShorthandValue(animationShorthand()); case CSSPropertyBorderSpacing: return borderSpacingValue(borderSpacingShorthand()); case CSSPropertyBackgroundPosition: return getLayeredShorthandValue(backgroundPositionShorthand()); case CSSPropertyBackgroundRepeat: return backgroundRepeatPropertyValue(); case CSSPropertyBackground: return getLayeredShorthandValue(backgroundShorthand()); case CSSPropertyBorder: return borderPropertyValue(OmitUncommonValues); case CSSPropertyBorderTop: return getShorthandValue(borderTopShorthand()); case CSSPropertyBorderRight: return getShorthandValue(borderRightShorthand()); case CSSPropertyBorderBottom: return getShorthandValue(borderBottomShorthand()); case CSSPropertyBorderLeft: return getShorthandValue(borderLeftShorthand()); case CSSPropertyOutline: return getShorthandValue(outlineShorthand()); case CSSPropertyBorderColor: return get4Values(borderColorShorthand()); case CSSPropertyBorderWidth: return get4Values(borderWidthShorthand()); case CSSPropertyBorderStyle: return get4Values(borderStyleShorthand()); case CSSPropertyFlex: return getShorthandValue(flexShorthand()); case CSSPropertyFlexFlow: return getShorthandValue(flexFlowShorthand()); case CSSPropertyFont: return fontValue(); case CSSPropertyMargin: return get4Values(marginShorthand()); case CSSPropertyOverflow: return getCommonValue(overflowShorthand()); case CSSPropertyPadding: return get4Values(paddingShorthand()); case CSSPropertyTransition: return getLayeredShorthandValue(transitionShorthand()); case CSSPropertyListStyle: return getShorthandValue(listStyleShorthand()); case CSSPropertyWebkitTextEmphasis: return getShorthandValue(webkitTextEmphasisShorthand()); case CSSPropertyWebkitTextStroke: return getShorthandValue(webkitTextStrokeShorthand()); case CSSPropertyTransformOrigin: case CSSPropertyWebkitTransformOrigin: return getShorthandValue(webkitTransformOriginShorthand()); case CSSPropertyBorderRadius: return get4Values(borderRadiusShorthand()); default: return String(); } }