Skip to content

Instantly share code, notes, and snippets.

@darrnshn
Created April 12, 2017 05:50
Show Gist options
  • Select an option

  • Save darrnshn/88a94abf4e37e26b7fdcc4126beb11fa to your computer and use it in GitHub Desktop.

Select an option

Save darrnshn/88a94abf4e37e26b7fdcc4126beb11fa to your computer and use it in GitHub Desktop.
#include "StyleBuilderFunctions.h"
#include "CSSValueKeywords.h"
#include "core/animation/css/CSSAnimationData.h"
#include "core/css/BasicShapeFunctions.h"
#include "core/css/CSSContentDistributionValue.h"
#include "core/css/CSSCustomIdentValue.h"
#include "core/css/CSSPrimitiveValueMappings.h"
#include "core/css/CSSURIValue.h"
#include "core/css/CSSValuePair.h"
#include "core/css/resolver/StyleResolverState.h"
namespace blink {
void StyleBuilderFunctions::applyInitialCSSPropertyVectorEffect(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetVectorEffect(SVGComputedStyle::InitialVectorEffect());
}
void StyleBuilderFunctions::applyInheritCSSPropertyVectorEffect(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetVectorEffect(state.ParentStyle()->SvgStyle().VectorEffect());
}
void StyleBuilderFunctions::applyValueCSSPropertyVectorEffect(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetVectorEffect(ToCSSIdentifierValue(value).ConvertTo<EVectorEffect>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyFillRule(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetFillRule(SVGComputedStyle::InitialFillRule());
}
void StyleBuilderFunctions::applyInheritCSSPropertyFillRule(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetFillRule(state.ParentStyle()->SvgStyle().FillRule());
}
void StyleBuilderFunctions::applyValueCSSPropertyFillRule(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetFillRule(ToCSSIdentifierValue(value).ConvertTo<WindRule>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyFontVariantNumeric(StyleResolverState& state) {
state.GetFontBuilder().SetVariantNumeric(FontBuilder::InitialVariantNumeric());
}
void StyleBuilderFunctions::applyInheritCSSPropertyFontVariantNumeric(StyleResolverState& state) {
state.GetFontBuilder().SetVariantNumeric(state.ParentFontDescription().VariantNumeric());
}
void StyleBuilderFunctions::applyValueCSSPropertyFontVariantNumeric(StyleResolverState& state, const CSSValue& value) {
state.GetFontBuilder().SetVariantNumeric(StyleBuilderConverter::ConvertFontVariantNumeric(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyCx(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetCx(SVGComputedStyle::InitialCx());
}
void StyleBuilderFunctions::applyInheritCSSPropertyCx(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetCx(state.ParentStyle()->SvgStyle().Cx());
}
void StyleBuilderFunctions::applyValueCSSPropertyCx(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetCx(StyleBuilderConverter::ConvertLength(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyCy(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetCy(SVGComputedStyle::InitialCy());
}
void StyleBuilderFunctions::applyInheritCSSPropertyCy(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetCy(state.ParentStyle()->SvgStyle().Cy());
}
void StyleBuilderFunctions::applyValueCSSPropertyCy(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetCy(StyleBuilderConverter::ConvertLength(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyShapeOutside(StyleResolverState& state) {
state.Style()->SetShapeOutside(ComputedStyle::InitialShapeOutside());
}
void StyleBuilderFunctions::applyInheritCSSPropertyShapeOutside(StyleResolverState& state) {
state.Style()->SetShapeOutside(state.ParentStyle()->ShapeOutside());
}
void StyleBuilderFunctions::applyValueCSSPropertyShapeOutside(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetShapeOutside(StyleBuilderConverter::ConvertShapeValue(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitHyphenateCharacter(StyleResolverState& state) {
state.Style()->SetHyphenationString(ComputedStyle::InitialHyphenationString());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitHyphenateCharacter(StyleResolverState& state) {
state.Style()->SetHyphenationString(state.ParentStyle()->HyphenationString());
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitHyphenateCharacter(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetHyphenationString(StyleBuilderConverter::ConvertString<CSSValueAuto>(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitBoxPack(StyleResolverState& state) {
state.Style()->SetBoxPack(ComputedStyle::InitialBoxPack());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitBoxPack(StyleResolverState& state) {
state.Style()->SetBoxPack(state.ParentStyle()->BoxPack());
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitBoxPack(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetBoxPack(ToCSSIdentifierValue(value).ConvertTo<EBoxPack>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitMarginBottomCollapse(StyleResolverState& state) {
state.Style()->SetMarginAfterCollapse(ComputedStyle::InitialMarginAfterCollapse());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitMarginBottomCollapse(StyleResolverState& state) {
state.Style()->SetMarginAfterCollapse(state.ParentStyle()->MarginAfterCollapse());
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitMarginBottomCollapse(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetMarginAfterCollapse(ToCSSIdentifierValue(value).ConvertTo<EMarginCollapse>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyOutlineWidth(StyleResolverState& state) {
state.Style()->SetOutlineWidth(ComputedStyle::InitialOutlineWidth());
}
void StyleBuilderFunctions::applyInheritCSSPropertyOutlineWidth(StyleResolverState& state) {
state.Style()->SetOutlineWidth(state.ParentStyle()->OutlineWidth());
}
void StyleBuilderFunctions::applyValueCSSPropertyOutlineWidth(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetOutlineWidth(StyleBuilderConverter::ConvertLineWidth<unsigned short>(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyColumnRuleWidth(StyleResolverState& state) {
state.Style()->SetColumnRuleWidth(ComputedStyle::InitialColumnRuleWidth());
}
void StyleBuilderFunctions::applyInheritCSSPropertyColumnRuleWidth(StyleResolverState& state) {
state.Style()->SetColumnRuleWidth(state.ParentStyle()->ColumnRuleWidth());
}
void StyleBuilderFunctions::applyValueCSSPropertyColumnRuleWidth(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetColumnRuleWidth(StyleBuilderConverter::ConvertLineWidth<unsigned short>(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyStrokeOpacity(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetStrokeOpacity(SVGComputedStyle::InitialStrokeOpacity());
}
void StyleBuilderFunctions::applyInheritCSSPropertyStrokeOpacity(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetStrokeOpacity(state.ParentStyle()->SvgStyle().StrokeOpacity());
}
void StyleBuilderFunctions::applyValueCSSPropertyStrokeOpacity(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetStrokeOpacity(StyleBuilderConverter::ConvertNumberOrPercentage(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyOffsetRotate(StyleResolverState& state) {
state.Style()->SetOffsetRotate(ComputedStyle::InitialOffsetRotate());
}
void StyleBuilderFunctions::applyInheritCSSPropertyOffsetRotate(StyleResolverState& state) {
state.Style()->SetOffsetRotate(state.ParentStyle()->OffsetRotate());
}
void StyleBuilderFunctions::applyValueCSSPropertyOffsetRotate(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetOffsetRotate(StyleBuilderConverter::ConvertOffsetRotate(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyFontFamily(StyleResolverState& state) {
state.GetFontBuilder().SetFamilyDescription(FontBuilder::InitialFamilyDescription());
}
void StyleBuilderFunctions::applyInheritCSSPropertyFontFamily(StyleResolverState& state) {
state.GetFontBuilder().SetFamilyDescription(state.ParentFontDescription().GetFamilyDescription());
}
void StyleBuilderFunctions::applyValueCSSPropertyFontFamily(StyleResolverState& state, const CSSValue& value) {
state.GetFontBuilder().SetFamilyDescription(StyleBuilderConverter::ConvertFontFamily(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitBoxFlex(StyleResolverState& state) {
state.Style()->SetBoxFlex(ComputedStyle::InitialBoxFlex());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitBoxFlex(StyleResolverState& state) {
state.Style()->SetBoxFlex(state.ParentStyle()->BoxFlex());
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitBoxFlex(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetBoxFlex(ToCSSPrimitiveValue(value).ConvertTo<float>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyContain(StyleResolverState& state) {
state.Style()->SetContain(ComputedStyle::InitialContain());
}
void StyleBuilderFunctions::applyInheritCSSPropertyContain(StyleResolverState& state) {
state.Style()->SetContain(state.ParentStyle()->Contain());
}
void StyleBuilderFunctions::applyValueCSSPropertyContain(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetContain(StyleBuilderConverter::ConvertFlags<Containment>(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyBorderBottomStyle(StyleResolverState& state) {
state.Style()->SetBorderBottomStyle(ComputedStyle::InitialBorderStyle());
}
void StyleBuilderFunctions::applyInheritCSSPropertyBorderBottomStyle(StyleResolverState& state) {
state.Style()->SetBorderBottomStyle(state.ParentStyle()->BorderBottomStyle());
}
void StyleBuilderFunctions::applyValueCSSPropertyBorderBottomStyle(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetBorderBottomStyle(ToCSSIdentifierValue(value).ConvertTo<EBorderStyle>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyHeight(StyleResolverState& state) {
state.Style()->SetHeight(ComputedStyle::InitialSize());
}
void StyleBuilderFunctions::applyInheritCSSPropertyHeight(StyleResolverState& state) {
state.Style()->SetHeight(state.ParentStyle()->Height());
}
void StyleBuilderFunctions::applyValueCSSPropertyHeight(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetHeight(StyleBuilderConverter::ConvertLengthSizing(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyBorderImageSource(StyleResolverState& state) {
state.Style()->SetBorderImageSource(ComputedStyle::InitialBorderImageSource());
}
void StyleBuilderFunctions::applyInheritCSSPropertyBorderImageSource(StyleResolverState& state) {
state.Style()->SetBorderImageSource(state.ParentStyle()->BorderImageSource());
}
void StyleBuilderFunctions::applyInitialCSSPropertyPaintOrder(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetPaintOrder(SVGComputedStyle::InitialPaintOrder());
}
void StyleBuilderFunctions::applyInheritCSSPropertyPaintOrder(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetPaintOrder(state.ParentStyle()->SvgStyle().PaintOrder());
}
void StyleBuilderFunctions::applyValueCSSPropertyPaintOrder(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetPaintOrder(StyleBuilderConverter::ConvertPaintOrder(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyTextRendering(StyleResolverState& state) {
state.GetFontBuilder().SetTextRendering(FontBuilder::InitialTextRendering());
}
void StyleBuilderFunctions::applyInheritCSSPropertyTextRendering(StyleResolverState& state) {
state.GetFontBuilder().SetTextRendering(state.ParentFontDescription().TextRendering());
}
void StyleBuilderFunctions::applyValueCSSPropertyTextRendering(StyleResolverState& state, const CSSValue& value) {
state.GetFontBuilder().SetTextRendering(ToCSSIdentifierValue(value).ConvertTo<TextRenderingMode>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyBorderBottomLeftRadius(StyleResolverState& state) {
state.Style()->SetBorderBottomLeftRadius(ComputedStyle::InitialBorderRadius());
}
void StyleBuilderFunctions::applyInheritCSSPropertyBorderBottomLeftRadius(StyleResolverState& state) {
state.Style()->SetBorderBottomLeftRadius(state.ParentStyle()->BorderBottomLeftRadius());
}
void StyleBuilderFunctions::applyValueCSSPropertyBorderBottomLeftRadius(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetBorderBottomLeftRadius(StyleBuilderConverter::ConvertRadius(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyColorInterpolation(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetColorInterpolation(SVGComputedStyle::InitialColorInterpolation());
}
void StyleBuilderFunctions::applyInheritCSSPropertyColorInterpolation(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetColorInterpolation(state.ParentStyle()->SvgStyle().ColorInterpolation());
}
void StyleBuilderFunctions::applyValueCSSPropertyColorInterpolation(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetColorInterpolation(ToCSSIdentifierValue(value).ConvertTo<EColorInterpolation>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyFontVariationSettings(StyleResolverState& state) {
state.GetFontBuilder().SetVariationSettings(FontBuilder::InitialVariationSettings());
}
void StyleBuilderFunctions::applyInheritCSSPropertyFontVariationSettings(StyleResolverState& state) {
state.GetFontBuilder().SetVariationSettings(state.ParentFontDescription().VariationSettings());
}
void StyleBuilderFunctions::applyValueCSSPropertyFontVariationSettings(StyleResolverState& state, const CSSValue& value) {
state.GetFontBuilder().SetVariationSettings(StyleBuilderConverter::ConvertFontVariationSettings(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyTextDecorationLine(StyleResolverState& state) {
state.Style()->SetTextDecoration(ComputedStyle::InitialTextDecoration());
}
void StyleBuilderFunctions::applyInheritCSSPropertyTextDecorationLine(StyleResolverState& state) {
state.Style()->SetTextDecoration(state.ParentStyle()->GetTextDecoration());
}
void StyleBuilderFunctions::applyValueCSSPropertyTextDecorationLine(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetTextDecoration(StyleBuilderConverter::ConvertFlags<TextDecoration>(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyFilter(StyleResolverState& state) {
state.Style()->SetFilter(ComputedStyle::InitialFilter());
}
void StyleBuilderFunctions::applyInheritCSSPropertyFilter(StyleResolverState& state) {
state.Style()->SetFilter(state.ParentStyle()->Filter());
}
void StyleBuilderFunctions::applyValueCSSPropertyFilter(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetFilter(StyleBuilderConverter::ConvertFilterOperations(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyShapeMargin(StyleResolverState& state) {
state.Style()->SetShapeMargin(ComputedStyle::InitialShapeMargin());
}
void StyleBuilderFunctions::applyInheritCSSPropertyShapeMargin(StyleResolverState& state) {
state.Style()->SetShapeMargin(state.ParentStyle()->ShapeMargin());
}
void StyleBuilderFunctions::applyValueCSSPropertyShapeMargin(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetShapeMargin(StyleBuilderConverter::ConvertLength(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyScrollSnapType(StyleResolverState& state) {
state.Style()->SetScrollSnapType(ComputedStyle::InitialScrollSnapType());
}
void StyleBuilderFunctions::applyInheritCSSPropertyScrollSnapType(StyleResolverState& state) {
state.Style()->SetScrollSnapType(state.ParentStyle()->GetScrollSnapType());
}
void StyleBuilderFunctions::applyValueCSSPropertyScrollSnapType(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetScrollSnapType(ToCSSIdentifierValue(value).ConvertTo<ScrollSnapType>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyImageRendering(StyleResolverState& state) {
state.Style()->SetImageRendering(ComputedStyle::InitialImageRendering());
}
void StyleBuilderFunctions::applyInheritCSSPropertyImageRendering(StyleResolverState& state) {
state.Style()->SetImageRendering(state.ParentStyle()->ImageRendering());
}
void StyleBuilderFunctions::applyValueCSSPropertyImageRendering(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetImageRendering(ToCSSIdentifierValue(value).ConvertTo<EImageRendering>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyPaddingBottom(StyleResolverState& state) {
state.Style()->SetPaddingBottom(ComputedStyle::InitialPadding());
}
void StyleBuilderFunctions::applyInheritCSSPropertyPaddingBottom(StyleResolverState& state) {
state.Style()->SetPaddingBottom(state.ParentStyle()->PaddingBottom());
}
void StyleBuilderFunctions::applyValueCSSPropertyPaddingBottom(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetPaddingBottom(StyleBuilderConverter::ConvertLength(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyQuotes(StyleResolverState& state) {
state.Style()->SetQuotes(ComputedStyle::InitialQuotes());
}
void StyleBuilderFunctions::applyInheritCSSPropertyQuotes(StyleResolverState& state) {
state.Style()->SetQuotes(state.ParentStyle()->Quotes());
}
void StyleBuilderFunctions::applyValueCSSPropertyQuotes(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetQuotes(StyleBuilderConverter::ConvertQuotes(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyGridAutoRows(StyleResolverState& state) {
state.Style()->SetGridAutoRows(ComputedStyle::InitialGridAutoRows());
}
void StyleBuilderFunctions::applyInheritCSSPropertyGridAutoRows(StyleResolverState& state) {
state.Style()->SetGridAutoRows(state.ParentStyle()->GridAutoRows());
}
void StyleBuilderFunctions::applyValueCSSPropertyGridAutoRows(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetGridAutoRows(StyleBuilderConverter::ConvertGridTrackSizeList(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyClipPath(StyleResolverState& state) {
state.Style()->SetClipPath(ComputedStyle::InitialClipPath());
}
void StyleBuilderFunctions::applyInheritCSSPropertyClipPath(StyleResolverState& state) {
state.Style()->SetClipPath(state.ParentStyle()->ClipPath());
}
void StyleBuilderFunctions::applyValueCSSPropertyClipPath(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetClipPath(StyleBuilderConverter::ConvertClipPath(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyBreakBefore(StyleResolverState& state) {
state.Style()->SetBreakBefore(ComputedStyle::InitialBreakBefore());
}
void StyleBuilderFunctions::applyInheritCSSPropertyBreakBefore(StyleResolverState& state) {
state.Style()->SetBreakBefore(state.ParentStyle()->BreakBefore());
}
void StyleBuilderFunctions::applyValueCSSPropertyBreakBefore(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetBreakBefore(ToCSSIdentifierValue(value).ConvertTo<EBreakBetween>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyObjectFit(StyleResolverState& state) {
state.Style()->SetObjectFit(ComputedStyle::InitialObjectFit());
}
void StyleBuilderFunctions::applyInheritCSSPropertyObjectFit(StyleResolverState& state) {
state.Style()->SetObjectFit(state.ParentStyle()->GetObjectFit());
}
void StyleBuilderFunctions::applyValueCSSPropertyObjectFit(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetObjectFit(ToCSSIdentifierValue(value).ConvertTo<ObjectFit>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyStopOpacity(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetStopOpacity(SVGComputedStyle::InitialStopOpacity());
}
void StyleBuilderFunctions::applyInheritCSSPropertyStopOpacity(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetStopOpacity(state.ParentStyle()->SvgStyle().StopOpacity());
}
void StyleBuilderFunctions::applyValueCSSPropertyStopOpacity(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetStopOpacity(StyleBuilderConverter::ConvertNumberOrPercentage(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitBoxReflect(StyleResolverState& state) {
state.Style()->SetBoxReflect(ComputedStyle::InitialBoxReflect());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitBoxReflect(StyleResolverState& state) {
state.Style()->SetBoxReflect(state.ParentStyle()->BoxReflect());
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitBoxReflect(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetBoxReflect(StyleBuilderConverter::ConvertBoxReflect(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyBorderTopRightRadius(StyleResolverState& state) {
state.Style()->SetBorderTopRightRadius(ComputedStyle::InitialBorderRadius());
}
void StyleBuilderFunctions::applyInheritCSSPropertyBorderTopRightRadius(StyleResolverState& state) {
state.Style()->SetBorderTopRightRadius(state.ParentStyle()->BorderTopRightRadius());
}
void StyleBuilderFunctions::applyValueCSSPropertyBorderTopRightRadius(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetBorderTopRightRadius(StyleBuilderConverter::ConvertRadius(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitBoxDirection(StyleResolverState& state) {
state.Style()->SetBoxDirection(ComputedStyle::InitialBoxDirection());
state.Style()->SetBoxDirectionIsInherited
(false);
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitBoxDirection(StyleResolverState& state) {
state.Style()->SetBoxDirection(state.ParentStyle()->BoxDirection());
state.Style()->SetBoxDirectionIsInherited
(true);
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitBoxDirection(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetBoxDirection(ToCSSIdentifierValue(value).ConvertTo<EBoxDirection>());
state.Style()->SetBoxDirectionIsInherited
(false);
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitUserModify(StyleResolverState& state) {
state.Style()->SetUserModify(ComputedStyle::InitialUserModify());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitUserModify(StyleResolverState& state) {
state.Style()->SetUserModify(state.ParentStyle()->UserModify());
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitUserModify(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetUserModify(ToCSSIdentifierValue(value).ConvertTo<EUserModify>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitBoxDecorationBreak(StyleResolverState& state) {
state.Style()->SetBoxDecorationBreak(ComputedStyle::InitialBoxDecorationBreak());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitBoxDecorationBreak(StyleResolverState& state) {
state.Style()->SetBoxDecorationBreak(state.ParentStyle()->BoxDecorationBreak());
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitBoxDecorationBreak(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetBoxDecorationBreak(ToCSSIdentifierValue(value).ConvertTo<EBoxDecorationBreak>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyFontKerning(StyleResolverState& state) {
state.GetFontBuilder().SetKerning(FontBuilder::InitialKerning());
}
void StyleBuilderFunctions::applyInheritCSSPropertyFontKerning(StyleResolverState& state) {
state.GetFontBuilder().SetKerning(state.ParentFontDescription().GetKerning());
}
void StyleBuilderFunctions::applyValueCSSPropertyFontKerning(StyleResolverState& state, const CSSValue& value) {
state.GetFontBuilder().SetKerning(ToCSSIdentifierValue(value).ConvertTo<FontDescription::Kerning>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyFontWeight(StyleResolverState& state) {
state.GetFontBuilder().SetWeight(FontBuilder::InitialWeight());
}
void StyleBuilderFunctions::applyInheritCSSPropertyFontWeight(StyleResolverState& state) {
state.GetFontBuilder().SetWeight(state.ParentFontDescription().Weight());
}
void StyleBuilderFunctions::applyValueCSSPropertyFontWeight(StyleResolverState& state, const CSSValue& value) {
state.GetFontBuilder().SetWeight(StyleBuilderConverter::ConvertFontWeight(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyShapeImageThreshold(StyleResolverState& state) {
state.Style()->SetShapeImageThreshold(ComputedStyle::InitialShapeImageThreshold());
}
void StyleBuilderFunctions::applyInheritCSSPropertyShapeImageThreshold(StyleResolverState& state) {
state.Style()->SetShapeImageThreshold(state.ParentStyle()->ShapeImageThreshold());
}
void StyleBuilderFunctions::applyValueCSSPropertyShapeImageThreshold(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetShapeImageThreshold(ToCSSPrimitiveValue(value).ConvertTo<float>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyRy(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetRy(SVGComputedStyle::InitialRy());
}
void StyleBuilderFunctions::applyInheritCSSPropertyRy(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetRy(state.ParentStyle()->SvgStyle().Ry());
}
void StyleBuilderFunctions::applyValueCSSPropertyRy(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetRy(StyleBuilderConverter::ConvertLengthOrAuto(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyRx(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetRx(SVGComputedStyle::InitialRx());
}
void StyleBuilderFunctions::applyInheritCSSPropertyRx(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetRx(state.ParentStyle()->SvgStyle().Rx());
}
void StyleBuilderFunctions::applyValueCSSPropertyRx(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetRx(StyleBuilderConverter::ConvertLengthOrAuto(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyMarginRight(StyleResolverState& state) {
state.Style()->SetMarginRight(ComputedStyle::InitialMargin());
}
void StyleBuilderFunctions::applyInheritCSSPropertyMarginRight(StyleResolverState& state) {
state.Style()->SetMarginRight(state.ParentStyle()->MarginRight());
}
void StyleBuilderFunctions::applyValueCSSPropertyMarginRight(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetMarginRight(StyleBuilderConverter::ConvertQuirkyLength(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitFontSmoothing(StyleResolverState& state) {
state.GetFontBuilder().SetFontSmoothing(FontBuilder::InitialFontSmoothing());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitFontSmoothing(StyleResolverState& state) {
state.GetFontBuilder().SetFontSmoothing(state.ParentFontDescription().FontSmoothing());
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitFontSmoothing(StyleResolverState& state, const CSSValue& value) {
state.GetFontBuilder().SetFontSmoothing(ToCSSIdentifierValue(value).ConvertTo<FontSmoothingMode>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyBreakAfter(StyleResolverState& state) {
state.Style()->SetBreakAfter(ComputedStyle::InitialBreakAfter());
}
void StyleBuilderFunctions::applyInheritCSSPropertyBreakAfter(StyleResolverState& state) {
state.Style()->SetBreakAfter(state.ParentStyle()->BreakAfter());
}
void StyleBuilderFunctions::applyValueCSSPropertyBreakAfter(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetBreakAfter(ToCSSIdentifierValue(value).ConvertTo<EBreakBetween>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyOpacity(StyleResolverState& state) {
state.Style()->SetOpacity(ComputedStyle::InitialOpacity());
}
void StyleBuilderFunctions::applyInheritCSSPropertyOpacity(StyleResolverState& state) {
state.Style()->SetOpacity(state.ParentStyle()->Opacity());
}
void StyleBuilderFunctions::applyValueCSSPropertyOpacity(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetOpacity(ToCSSPrimitiveValue(value).ConvertTo<float>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyDominantBaseline(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetDominantBaseline(SVGComputedStyle::InitialDominantBaseline());
}
void StyleBuilderFunctions::applyInheritCSSPropertyDominantBaseline(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetDominantBaseline(state.ParentStyle()->SvgStyle().DominantBaseline());
}
void StyleBuilderFunctions::applyValueCSSPropertyDominantBaseline(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetDominantBaseline(ToCSSIdentifierValue(value).ConvertTo<EDominantBaseline>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyAlignSelf(StyleResolverState& state) {
state.Style()->SetAlignSelf(ComputedStyle::InitialSelfAlignment());
}
void StyleBuilderFunctions::applyInheritCSSPropertyAlignSelf(StyleResolverState& state) {
state.Style()->SetAlignSelf(state.ParentStyle()->AlignSelf());
}
void StyleBuilderFunctions::applyValueCSSPropertyAlignSelf(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetAlignSelf(StyleBuilderConverter::ConvertSelfOrDefaultAlignmentData(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyClear(StyleResolverState& state) {
state.Style()->SetClear(ComputedStyle::InitialClear());
}
void StyleBuilderFunctions::applyInheritCSSPropertyClear(StyleResolverState& state) {
state.Style()->SetClear(state.ParentStyle()->Clear());
}
void StyleBuilderFunctions::applyValueCSSPropertyClear(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetClear(ToCSSIdentifierValue(value).ConvertTo<EClear>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyPaddingRight(StyleResolverState& state) {
state.Style()->SetPaddingRight(ComputedStyle::InitialPadding());
}
void StyleBuilderFunctions::applyInheritCSSPropertyPaddingRight(StyleResolverState& state) {
state.Style()->SetPaddingRight(state.ParentStyle()->PaddingRight());
}
void StyleBuilderFunctions::applyValueCSSPropertyPaddingRight(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetPaddingRight(StyleBuilderConverter::ConvertLength(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyTextCombineUpright(StyleResolverState& state) {
state.Style()->SetTextCombine(ComputedStyle::InitialTextCombine());
}
void StyleBuilderFunctions::applyInheritCSSPropertyTextCombineUpright(StyleResolverState& state) {
state.Style()->SetTextCombine(state.ParentStyle()->GetTextCombine());
}
void StyleBuilderFunctions::applyValueCSSPropertyTextCombineUpright(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetTextCombine(ToCSSIdentifierValue(value).ConvertTo<TextCombine>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyTransformStyle(StyleResolverState& state) {
state.Style()->SetTransformStyle3D(ComputedStyle::InitialTransformStyle3D());
}
void StyleBuilderFunctions::applyInheritCSSPropertyTransformStyle(StyleResolverState& state) {
state.Style()->SetTransformStyle3D(state.ParentStyle()->TransformStyle3D());
}
void StyleBuilderFunctions::applyValueCSSPropertyTransformStyle(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetTransformStyle3D(ToCSSIdentifierValue(value).ConvertTo<ETransformStyle3D>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitBorderHorizontalSpacing(StyleResolverState& state) {
state.Style()->SetHorizontalBorderSpacing(ComputedStyle::InitialHorizontalBorderSpacing());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitBorderHorizontalSpacing(StyleResolverState& state) {
state.Style()->SetHorizontalBorderSpacing(state.ParentStyle()->HorizontalBorderSpacing());
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitBorderHorizontalSpacing(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetHorizontalBorderSpacing(StyleBuilderConverter::ConvertComputedLength<short>(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitTapHighlightColor(StyleResolverState& state) {
state.Style()->SetTapHighlightColor(ComputedStyle::InitialTapHighlightColor());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitTapHighlightColor(StyleResolverState& state) {
state.Style()->SetTapHighlightColor(state.ParentStyle()->TapHighlightColor());
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitTapHighlightColor(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetTapHighlightColor(StyleBuilderConverter::ConvertColor(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyCaptionSide(StyleResolverState& state) {
state.Style()->SetCaptionSide(ComputedStyle::InitialCaptionSide());
state.Style()->SetCaptionSideIsInherited
(false);
}
void StyleBuilderFunctions::applyInheritCSSPropertyCaptionSide(StyleResolverState& state) {
state.Style()->SetCaptionSide(state.ParentStyle()->CaptionSide());
state.Style()->SetCaptionSideIsInherited
(true);
}
void StyleBuilderFunctions::applyValueCSSPropertyCaptionSide(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetCaptionSide(ToCSSIdentifierValue(value).ConvertTo<ECaptionSide>());
state.Style()->SetCaptionSideIsInherited
(false);
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitPrintColorAdjust(StyleResolverState& state) {
state.Style()->SetPrintColorAdjust(ComputedStyle::InitialPrintColorAdjust());
state.Style()->SetPrintColorAdjustIsInherited
(false);
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitPrintColorAdjust(StyleResolverState& state) {
state.Style()->SetPrintColorAdjust(state.ParentStyle()->PrintColorAdjust());
state.Style()->SetPrintColorAdjustIsInherited
(true);
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitPrintColorAdjust(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetPrintColorAdjust(ToCSSIdentifierValue(value).ConvertTo<EPrintColorAdjust>());
state.Style()->SetPrintColorAdjustIsInherited
(false);
}
void StyleBuilderFunctions::applyInitialCSSPropertyStrokeDasharray(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetStrokeDashArray(SVGComputedStyle::InitialStrokeDashArray());
}
void StyleBuilderFunctions::applyInheritCSSPropertyStrokeDasharray(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetStrokeDashArray(state.ParentStyle()->SvgStyle().StrokeDashArray());
}
void StyleBuilderFunctions::applyValueCSSPropertyStrokeDasharray(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetStrokeDashArray(StyleBuilderConverter::ConvertStrokeDasharray(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyFlexBasis(StyleResolverState& state) {
state.Style()->SetFlexBasis(ComputedStyle::InitialFlexBasis());
}
void StyleBuilderFunctions::applyInheritCSSPropertyFlexBasis(StyleResolverState& state) {
state.Style()->SetFlexBasis(state.ParentStyle()->FlexBasis());
}
void StyleBuilderFunctions::applyValueCSSPropertyFlexBasis(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetFlexBasis(StyleBuilderConverter::ConvertLengthOrAuto(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyWidows(StyleResolverState& state) {
state.Style()->SetWidows(ComputedStyle::InitialWidows());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWidows(StyleResolverState& state) {
state.Style()->SetWidows(state.ParentStyle()->Widows());
}
void StyleBuilderFunctions::applyValueCSSPropertyWidows(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetWidows(ToCSSPrimitiveValue(value).ConvertTo<short>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitRubyPosition(StyleResolverState& state) {
state.Style()->SetRubyPosition(ComputedStyle::InitialRubyPosition());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitRubyPosition(StyleResolverState& state) {
state.Style()->SetRubyPosition(state.ParentStyle()->GetRubyPosition());
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitRubyPosition(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetRubyPosition(ToCSSIdentifierValue(value).ConvertTo<RubyPosition>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyFlexShrink(StyleResolverState& state) {
state.Style()->SetFlexShrink(ComputedStyle::InitialFlexShrink());
}
void StyleBuilderFunctions::applyInheritCSSPropertyFlexShrink(StyleResolverState& state) {
state.Style()->SetFlexShrink(state.ParentStyle()->FlexShrink());
}
void StyleBuilderFunctions::applyValueCSSPropertyFlexShrink(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetFlexShrink(ToCSSPrimitiveValue(value).ConvertTo<float>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitTransformOriginY(StyleResolverState& state) {
state.Style()->SetTransformOriginY(ComputedStyle::InitialTransformOriginY());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitTransformOriginY(StyleResolverState& state) {
state.Style()->SetTransformOriginY(state.ParentStyle()->TransformOriginY());
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitTransformOriginY(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetTransformOriginY(StyleBuilderConverter::ConvertLength(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitTransformOriginX(StyleResolverState& state) {
state.Style()->SetTransformOriginX(ComputedStyle::InitialTransformOriginX());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitTransformOriginX(StyleResolverState& state) {
state.Style()->SetTransformOriginX(state.ParentStyle()->TransformOriginX());
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitTransformOriginX(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetTransformOriginX(StyleBuilderConverter::ConvertLength(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyTransform(StyleResolverState& state) {
state.Style()->SetTransform(ComputedStyle::InitialTransform());
}
void StyleBuilderFunctions::applyInheritCSSPropertyTransform(StyleResolverState& state) {
state.Style()->SetTransform(state.ParentStyle()->Transform());
}
void StyleBuilderFunctions::applyValueCSSPropertyTransform(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetTransform(StyleBuilderConverter::ConvertTransformOperations(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyScrollBehavior(StyleResolverState& state) {
state.Style()->SetScrollBehavior(ComputedStyle::InitialScrollBehavior());
}
void StyleBuilderFunctions::applyInheritCSSPropertyScrollBehavior(StyleResolverState& state) {
state.Style()->SetScrollBehavior(state.ParentStyle()->GetScrollBehavior());
}
void StyleBuilderFunctions::applyValueCSSPropertyScrollBehavior(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetScrollBehavior(ToCSSIdentifierValue(value).ConvertTo<ScrollBehavior>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyGridAutoFlow(StyleResolverState& state) {
state.Style()->SetGridAutoFlow(ComputedStyle::InitialGridAutoFlow());
}
void StyleBuilderFunctions::applyInheritCSSPropertyGridAutoFlow(StyleResolverState& state) {
state.Style()->SetGridAutoFlow(state.ParentStyle()->GetGridAutoFlow());
}
void StyleBuilderFunctions::applyValueCSSPropertyGridAutoFlow(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetGridAutoFlow(StyleBuilderConverter::ConvertGridAutoFlow(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitTextEmphasisPosition(StyleResolverState& state) {
state.Style()->SetTextEmphasisPosition(ComputedStyle::InitialTextEmphasisPosition());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitTextEmphasisPosition(StyleResolverState& state) {
state.Style()->SetTextEmphasisPosition(state.ParentStyle()->GetTextEmphasisPosition());
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitTextEmphasisPosition(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetTextEmphasisPosition(ToCSSIdentifierValue(value).ConvertTo<TextEmphasisPosition>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyStopColor(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetStopColor(SVGComputedStyle::InitialStopColor());
}
void StyleBuilderFunctions::applyInheritCSSPropertyStopColor(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetStopColor(state.ParentStyle()->SvgStyle().StopColor());
}
void StyleBuilderFunctions::applyValueCSSPropertyStopColor(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetStopColor(StyleBuilderConverter::ConvertColor(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitLineClamp(StyleResolverState& state) {
state.Style()->SetLineClamp(ComputedStyle::InitialLineClamp());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitLineClamp(StyleResolverState& state) {
state.Style()->SetLineClamp(state.ParentStyle()->LineClamp());
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitLineClamp(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetLineClamp(ToCSSPrimitiveValue(value).ConvertTo<LineClampValue>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyJustifySelf(StyleResolverState& state) {
state.Style()->SetJustifySelf(ComputedStyle::InitialSelfAlignment());
}
void StyleBuilderFunctions::applyInheritCSSPropertyJustifySelf(StyleResolverState& state) {
state.Style()->SetJustifySelf(state.ParentStyle()->JustifySelf());
}
void StyleBuilderFunctions::applyValueCSSPropertyJustifySelf(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetJustifySelf(StyleBuilderConverter::ConvertSelfOrDefaultAlignmentData(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyTextJustify(StyleResolverState& state) {
state.Style()->SetTextJustify(ComputedStyle::InitialTextJustify());
}
void StyleBuilderFunctions::applyInheritCSSPropertyTextJustify(StyleResolverState& state) {
state.Style()->SetTextJustify(state.ParentStyle()->GetTextJustify());
}
void StyleBuilderFunctions::applyValueCSSPropertyTextJustify(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetTextJustify(ToCSSIdentifierValue(value).ConvertTo<TextJustify>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyWordSpacing(StyleResolverState& state) {
state.Style()->SetWordSpacing(ComputedStyle::InitialLetterWordSpacing());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWordSpacing(StyleResolverState& state) {
state.Style()->SetWordSpacing(state.ParentStyle()->WordSpacing());
}
void StyleBuilderFunctions::applyValueCSSPropertyWordSpacing(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetWordSpacing(StyleBuilderConverter::ConvertSpacing(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyPerspectiveOrigin(StyleResolverState& state) {
state.Style()->SetPerspectiveOrigin(ComputedStyle::InitialPerspectiveOrigin());
}
void StyleBuilderFunctions::applyInheritCSSPropertyPerspectiveOrigin(StyleResolverState& state) {
state.Style()->SetPerspectiveOrigin(state.ParentStyle()->PerspectiveOrigin());
}
void StyleBuilderFunctions::applyValueCSSPropertyPerspectiveOrigin(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetPerspectiveOrigin(StyleBuilderConverter::ConvertPosition(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyTextAnchor(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetTextAnchor(SVGComputedStyle::InitialTextAnchor());
}
void StyleBuilderFunctions::applyInheritCSSPropertyTextAnchor(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetTextAnchor(state.ParentStyle()->SvgStyle().TextAnchor());
}
void StyleBuilderFunctions::applyValueCSSPropertyTextAnchor(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetTextAnchor(ToCSSIdentifierValue(value).ConvertTo<ETextAnchor>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyFontStyle(StyleResolverState& state) {
state.GetFontBuilder().SetStyle(FontBuilder::InitialStyle());
}
void StyleBuilderFunctions::applyInheritCSSPropertyFontStyle(StyleResolverState& state) {
state.GetFontBuilder().SetStyle(state.ParentFontDescription().Style());
}
void StyleBuilderFunctions::applyValueCSSPropertyFontStyle(StyleResolverState& state, const CSSValue& value) {
state.GetFontBuilder().SetStyle(ToCSSIdentifierValue(value).ConvertTo<FontStyle>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyBorderBottomRightRadius(StyleResolverState& state) {
state.Style()->SetBorderBottomRightRadius(ComputedStyle::InitialBorderRadius());
}
void StyleBuilderFunctions::applyInheritCSSPropertyBorderBottomRightRadius(StyleResolverState& state) {
state.Style()->SetBorderBottomRightRadius(state.ParentStyle()->BorderBottomRightRadius());
}
void StyleBuilderFunctions::applyValueCSSPropertyBorderBottomRightRadius(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetBorderBottomRightRadius(StyleBuilderConverter::ConvertRadius(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyBorderRightWidth(StyleResolverState& state) {
state.Style()->SetBorderRightWidth(ComputedStyle::InitialBorderWidth());
}
void StyleBuilderFunctions::applyInheritCSSPropertyBorderRightWidth(StyleResolverState& state) {
state.Style()->SetBorderRightWidth(state.ParentStyle()->BorderRightWidth());
}
void StyleBuilderFunctions::applyValueCSSPropertyBorderRightWidth(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetBorderRightWidth(StyleBuilderConverter::ConvertLineWidth<float>(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyBorderTopLeftRadius(StyleResolverState& state) {
state.Style()->SetBorderTopLeftRadius(ComputedStyle::InitialBorderRadius());
}
void StyleBuilderFunctions::applyInheritCSSPropertyBorderTopLeftRadius(StyleResolverState& state) {
state.Style()->SetBorderTopLeftRadius(state.ParentStyle()->BorderTopLeftRadius());
}
void StyleBuilderFunctions::applyValueCSSPropertyBorderTopLeftRadius(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetBorderTopLeftRadius(StyleBuilderConverter::ConvertRadius(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyWritingMode(StyleResolverState& state) {
state.Style()->SetWritingMode(ComputedStyle::InitialWritingMode());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWritingMode(StyleResolverState& state) {
state.Style()->SetWritingMode(state.ParentStyle()->GetWritingMode());
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitTextSecurity(StyleResolverState& state) {
state.Style()->SetTextSecurity(ComputedStyle::InitialTextSecurity());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitTextSecurity(StyleResolverState& state) {
state.Style()->SetTextSecurity(state.ParentStyle()->TextSecurity());
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitTextSecurity(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetTextSecurity(ToCSSIdentifierValue(value).ConvertTo<ETextSecurity>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyBorderLeftWidth(StyleResolverState& state) {
state.Style()->SetBorderLeftWidth(ComputedStyle::InitialBorderWidth());
}
void StyleBuilderFunctions::applyInheritCSSPropertyBorderLeftWidth(StyleResolverState& state) {
state.Style()->SetBorderLeftWidth(state.ParentStyle()->BorderLeftWidth());
}
void StyleBuilderFunctions::applyValueCSSPropertyBorderLeftWidth(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetBorderLeftWidth(StyleBuilderConverter::ConvertLineWidth<float>(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitLineBreak(StyleResolverState& state) {
state.Style()->SetLineBreak(ComputedStyle::InitialLineBreak());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitLineBreak(StyleResolverState& state) {
state.Style()->SetLineBreak(state.ParentStyle()->GetLineBreak());
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitLineBreak(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetLineBreak(ToCSSIdentifierValue(value).ConvertTo<LineBreak>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyIsolation(StyleResolverState& state) {
state.Style()->SetIsolation(ComputedStyle::InitialIsolation());
}
void StyleBuilderFunctions::applyInheritCSSPropertyIsolation(StyleResolverState& state) {
state.Style()->SetIsolation(state.ParentStyle()->Isolation());
}
void StyleBuilderFunctions::applyValueCSSPropertyIsolation(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetIsolation(ToCSSIdentifierValue(value).ConvertTo<EIsolation>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyFillOpacity(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetFillOpacity(SVGComputedStyle::InitialFillOpacity());
}
void StyleBuilderFunctions::applyInheritCSSPropertyFillOpacity(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetFillOpacity(state.ParentStyle()->SvgStyle().FillOpacity());
}
void StyleBuilderFunctions::applyValueCSSPropertyFillOpacity(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetFillOpacity(StyleBuilderConverter::ConvertNumberOrPercentage(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyBorderTopWidth(StyleResolverState& state) {
state.Style()->SetBorderTopWidth(ComputedStyle::InitialBorderWidth());
}
void StyleBuilderFunctions::applyInheritCSSPropertyBorderTopWidth(StyleResolverState& state) {
state.Style()->SetBorderTopWidth(state.ParentStyle()->BorderTopWidth());
}
void StyleBuilderFunctions::applyValueCSSPropertyBorderTopWidth(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetBorderTopWidth(StyleBuilderConverter::ConvertLineWidth<float>(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyBottom(StyleResolverState& state) {
state.Style()->SetBottom(ComputedStyle::InitialBottom());
}
void StyleBuilderFunctions::applyInheritCSSPropertyBottom(StyleResolverState& state) {
state.Style()->SetBottom(state.ParentStyle()->Bottom());
}
void StyleBuilderFunctions::applyValueCSSPropertyBottom(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetBottom(StyleBuilderConverter::ConvertLengthOrAuto(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyBorderCollapse(StyleResolverState& state) {
state.Style()->SetBorderCollapse(ComputedStyle::InitialBorderCollapse());
state.Style()->SetBorderCollapseIsInherited
(false);
}
void StyleBuilderFunctions::applyInheritCSSPropertyBorderCollapse(StyleResolverState& state) {
state.Style()->SetBorderCollapse(state.ParentStyle()->BorderCollapse());
state.Style()->SetBorderCollapseIsInherited
(true);
}
void StyleBuilderFunctions::applyValueCSSPropertyBorderCollapse(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetBorderCollapse(ToCSSIdentifierValue(value).ConvertTo<EBorderCollapse>());
state.Style()->SetBorderCollapseIsInherited
(false);
}
void StyleBuilderFunctions::applyInitialCSSPropertyTop(StyleResolverState& state) {
state.Style()->SetTop(ComputedStyle::InitialTop());
}
void StyleBuilderFunctions::applyInheritCSSPropertyTop(StyleResolverState& state) {
state.Style()->SetTop(state.ParentStyle()->Top());
}
void StyleBuilderFunctions::applyValueCSSPropertyTop(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetTop(StyleBuilderConverter::ConvertLengthOrAuto(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyScrollSnapPointsX(StyleResolverState& state) {
state.Style()->SetScrollSnapPointsX(ComputedStyle::InitialScrollSnapPointsX());
}
void StyleBuilderFunctions::applyInheritCSSPropertyScrollSnapPointsX(StyleResolverState& state) {
state.Style()->SetScrollSnapPointsX(state.ParentStyle()->ScrollSnapPointsX());
}
void StyleBuilderFunctions::applyValueCSSPropertyScrollSnapPointsX(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetScrollSnapPointsX(StyleBuilderConverter::ConvertSnapPoints(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyScrollSnapPointsY(StyleResolverState& state) {
state.Style()->SetScrollSnapPointsY(ComputedStyle::InitialScrollSnapPointsY());
}
void StyleBuilderFunctions::applyInheritCSSPropertyScrollSnapPointsY(StyleResolverState& state) {
state.Style()->SetScrollSnapPointsY(state.ParentStyle()->ScrollSnapPointsY());
}
void StyleBuilderFunctions::applyValueCSSPropertyScrollSnapPointsY(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetScrollSnapPointsY(StyleBuilderConverter::ConvertSnapPoints(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyUnicodeBidi(StyleResolverState& state) {
state.Style()->SetUnicodeBidi(ComputedStyle::InitialUnicodeBidi());
}
void StyleBuilderFunctions::applyInheritCSSPropertyUnicodeBidi(StyleResolverState& state) {
state.Style()->SetUnicodeBidi(state.ParentStyle()->GetUnicodeBidi());
}
void StyleBuilderFunctions::applyValueCSSPropertyUnicodeBidi(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetUnicodeBidi(ToCSSIdentifierValue(value).ConvertTo<UnicodeBidi>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitWritingMode(StyleResolverState& state) {
state.Style()->SetWritingMode(ComputedStyle::InitialWritingMode());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitWritingMode(StyleResolverState& state) {
state.Style()->SetWritingMode(state.ParentStyle()->GetWritingMode());
}
void StyleBuilderFunctions::applyInitialCSSPropertyFloat(StyleResolverState& state) {
state.Style()->SetFloating(ComputedStyle::InitialFloating());
}
void StyleBuilderFunctions::applyInheritCSSPropertyFloat(StyleResolverState& state) {
state.Style()->SetFloating(state.ParentStyle()->Floating());
}
void StyleBuilderFunctions::applyValueCSSPropertyFloat(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetFloating(ToCSSIdentifierValue(value).ConvertTo<EFloat>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyWordWrap(StyleResolverState& state) {
state.Style()->SetOverflowWrap(ComputedStyle::InitialOverflowWrap());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWordWrap(StyleResolverState& state) {
state.Style()->SetOverflowWrap(state.ParentStyle()->OverflowWrap());
}
void StyleBuilderFunctions::applyValueCSSPropertyWordWrap(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetOverflowWrap(ToCSSIdentifierValue(value).ConvertTo<EOverflowWrap>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyTransformOrigin(StyleResolverState& state) {
state.Style()->SetTransformOrigin(ComputedStyle::InitialTransformOrigin());
}
void StyleBuilderFunctions::applyInheritCSSPropertyTransformOrigin(StyleResolverState& state) {
state.Style()->SetTransformOrigin(state.ParentStyle()->GetTransformOrigin());
}
void StyleBuilderFunctions::applyValueCSSPropertyTransformOrigin(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetTransformOrigin(StyleBuilderConverter::ConvertTransformOrigin(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitRtlOrdering(StyleResolverState& state) {
state.Style()->SetRtlOrdering(ComputedStyle::InitialRtlOrdering());
state.Style()->SetRtlOrderingIsInherited
(false);
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitRtlOrdering(StyleResolverState& state) {
state.Style()->SetRtlOrdering(state.ParentStyle()->RtlOrdering());
state.Style()->SetRtlOrderingIsInherited
(true);
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitRtlOrdering(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetRtlOrdering(ToCSSIdentifierValue(value).ConvertTo<EOrder>());
state.Style()->SetRtlOrderingIsInherited
(false);
}
void StyleBuilderFunctions::applyInitialCSSPropertyMarginTop(StyleResolverState& state) {
state.Style()->SetMarginTop(ComputedStyle::InitialMargin());
}
void StyleBuilderFunctions::applyInheritCSSPropertyMarginTop(StyleResolverState& state) {
state.Style()->SetMarginTop(state.ParentStyle()->MarginTop());
}
void StyleBuilderFunctions::applyValueCSSPropertyMarginTop(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetMarginTop(StyleBuilderConverter::ConvertQuirkyLength(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyMaxWidth(StyleResolverState& state) {
state.Style()->SetMaxWidth(ComputedStyle::InitialMaxSize());
}
void StyleBuilderFunctions::applyInheritCSSPropertyMaxWidth(StyleResolverState& state) {
state.Style()->SetMaxWidth(state.ParentStyle()->MaxWidth());
}
void StyleBuilderFunctions::applyValueCSSPropertyMaxWidth(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetMaxWidth(StyleBuilderConverter::ConvertLengthMaxSizing(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyTextShadow(StyleResolverState& state) {
state.Style()->SetTextShadow(ComputedStyle::InitialTextShadow());
}
void StyleBuilderFunctions::applyInheritCSSPropertyTextShadow(StyleResolverState& state) {
state.Style()->SetTextShadow(state.ParentStyle()->TextShadow());
}
void StyleBuilderFunctions::applyValueCSSPropertyTextShadow(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetTextShadow(StyleBuilderConverter::ConvertShadowList(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyFontVariantCaps(StyleResolverState& state) {
state.GetFontBuilder().SetVariantCaps(FontBuilder::InitialVariantCaps());
}
void StyleBuilderFunctions::applyInheritCSSPropertyFontVariantCaps(StyleResolverState& state) {
state.GetFontBuilder().SetVariantCaps(state.ParentFontDescription().VariantCaps());
}
void StyleBuilderFunctions::applyValueCSSPropertyFontVariantCaps(StyleResolverState& state, const CSSValue& value) {
state.GetFontBuilder().SetVariantCaps(StyleBuilderConverter::ConvertFontVariantCaps(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitBoxOrdinalGroup(StyleResolverState& state) {
state.Style()->SetBoxOrdinalGroup(ComputedStyle::InitialBoxOrdinalGroup());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitBoxOrdinalGroup(StyleResolverState& state) {
state.Style()->SetBoxOrdinalGroup(state.ParentStyle()->BoxOrdinalGroup());
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitBoxOrdinalGroup(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetBoxOrdinalGroup(ToCSSPrimitiveValue(value).ConvertTo<unsigned int>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyColumnFill(StyleResolverState& state) {
state.Style()->SetColumnFill(ComputedStyle::InitialColumnFill());
}
void StyleBuilderFunctions::applyInheritCSSPropertyColumnFill(StyleResolverState& state) {
state.Style()->SetColumnFill(state.ParentStyle()->GetColumnFill());
}
void StyleBuilderFunctions::applyValueCSSPropertyColumnFill(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetColumnFill(ToCSSIdentifierValue(value).ConvertTo<ColumnFill>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyOverflowX(StyleResolverState& state) {
state.Style()->SetOverflowX(ComputedStyle::InitialOverflowX());
}
void StyleBuilderFunctions::applyInheritCSSPropertyOverflowX(StyleResolverState& state) {
state.Style()->SetOverflowX(state.ParentStyle()->OverflowX());
}
void StyleBuilderFunctions::applyValueCSSPropertyOverflowX(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetOverflowX(ToCSSIdentifierValue(value).ConvertTo<EOverflow>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyOverflowY(StyleResolverState& state) {
state.Style()->SetOverflowY(ComputedStyle::InitialOverflowY());
}
void StyleBuilderFunctions::applyInheritCSSPropertyOverflowY(StyleResolverState& state) {
state.Style()->SetOverflowY(state.ParentStyle()->OverflowY());
}
void StyleBuilderFunctions::applyValueCSSPropertyOverflowY(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetOverflowY(ToCSSIdentifierValue(value).ConvertTo<EOverflow>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyHyphens(StyleResolverState& state) {
state.Style()->SetHyphens(ComputedStyle::InitialHyphens());
}
void StyleBuilderFunctions::applyInheritCSSPropertyHyphens(StyleResolverState& state) {
state.Style()->SetHyphens(state.ParentStyle()->GetHyphens());
}
void StyleBuilderFunctions::applyValueCSSPropertyHyphens(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetHyphens(ToCSSIdentifierValue(value).ConvertTo<Hyphens>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyTextSizeAdjust(StyleResolverState& state) {
state.Style()->SetTextSizeAdjust(ComputedStyle::InitialTextSizeAdjust());
}
void StyleBuilderFunctions::applyInheritCSSPropertyTextSizeAdjust(StyleResolverState& state) {
state.Style()->SetTextSizeAdjust(state.ParentStyle()->GetTextSizeAdjust());
}
void StyleBuilderFunctions::applyValueCSSPropertyTextSizeAdjust(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetTextSizeAdjust(StyleBuilderConverter::ConvertTextSizeAdjust(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyPerspective(StyleResolverState& state) {
state.Style()->SetPerspective(ComputedStyle::InitialPerspective());
}
void StyleBuilderFunctions::applyInheritCSSPropertyPerspective(StyleResolverState& state) {
state.Style()->SetPerspective(state.ParentStyle()->Perspective());
}
void StyleBuilderFunctions::applyValueCSSPropertyPerspective(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetPerspective(StyleBuilderConverter::ConvertPerspective(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyUserSelect(StyleResolverState& state) {
state.Style()->SetUserSelect(ComputedStyle::InitialUserSelect());
}
void StyleBuilderFunctions::applyInheritCSSPropertyUserSelect(StyleResolverState& state) {
state.Style()->SetUserSelect(state.ParentStyle()->UserSelect());
}
void StyleBuilderFunctions::applyValueCSSPropertyUserSelect(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetUserSelect(ToCSSIdentifierValue(value).ConvertTo<EUserSelect>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyLineHeight(StyleResolverState& state) {
state.Style()->SetLineHeight(ComputedStyle::InitialLineHeight());
}
void StyleBuilderFunctions::applyInheritCSSPropertyLineHeight(StyleResolverState& state) {
state.Style()->SetLineHeight(state.ParentStyle()->SpecifiedLineHeight());
}
void StyleBuilderFunctions::applyValueCSSPropertyLineHeight(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetLineHeight(StyleBuilderConverter::ConvertLineHeight(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyOrder(StyleResolverState& state) {
state.Style()->SetOrder(ComputedStyle::InitialOrder());
}
void StyleBuilderFunctions::applyInheritCSSPropertyOrder(StyleResolverState& state) {
state.Style()->SetOrder(state.ParentStyle()->Order());
}
void StyleBuilderFunctions::applyValueCSSPropertyOrder(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetOrder(ToCSSPrimitiveValue(value).ConvertTo<int>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitBoxAlign(StyleResolverState& state) {
state.Style()->SetBoxAlign(ComputedStyle::InitialBoxAlign());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitBoxAlign(StyleResolverState& state) {
state.Style()->SetBoxAlign(state.ParentStyle()->BoxAlign());
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitBoxAlign(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetBoxAlign(ToCSSIdentifierValue(value).ConvertTo<EBoxAlignment>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyScale(StyleResolverState& state) {
state.Style()->SetScale(ComputedStyle::InitialScale());
}
void StyleBuilderFunctions::applyInheritCSSPropertyScale(StyleResolverState& state) {
state.Style()->SetScale(state.ParentStyle()->Scale());
}
void StyleBuilderFunctions::applyValueCSSPropertyScale(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetScale(StyleBuilderConverter::ConvertScale(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyGridAutoColumns(StyleResolverState& state) {
state.Style()->SetGridAutoColumns(ComputedStyle::InitialGridAutoColumns());
}
void StyleBuilderFunctions::applyInheritCSSPropertyGridAutoColumns(StyleResolverState& state) {
state.Style()->SetGridAutoColumns(state.ParentStyle()->GridAutoColumns());
}
void StyleBuilderFunctions::applyValueCSSPropertyGridAutoColumns(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetGridAutoColumns(StyleBuilderConverter::ConvertGridTrackSizeList(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyGridRowStart(StyleResolverState& state) {
state.Style()->SetGridRowStart(ComputedStyle::InitialGridRowStart());
}
void StyleBuilderFunctions::applyInheritCSSPropertyGridRowStart(StyleResolverState& state) {
state.Style()->SetGridRowStart(state.ParentStyle()->GridRowStart());
}
void StyleBuilderFunctions::applyValueCSSPropertyGridRowStart(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetGridRowStart(StyleBuilderConverter::ConvertGridPosition(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitTextStrokeWidth(StyleResolverState& state) {
state.Style()->SetTextStrokeWidth(ComputedStyle::InitialTextStrokeWidth());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitTextStrokeWidth(StyleResolverState& state) {
state.Style()->SetTextStrokeWidth(state.ParentStyle()->TextStrokeWidth());
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitTextStrokeWidth(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetTextStrokeWidth(StyleBuilderConverter::ConvertTextStrokeWidth(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyStrokeDashoffset(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetStrokeDashOffset(SVGComputedStyle::InitialStrokeDashOffset());
}
void StyleBuilderFunctions::applyInheritCSSPropertyStrokeDashoffset(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetStrokeDashOffset(state.ParentStyle()->SvgStyle().StrokeDashOffset());
}
void StyleBuilderFunctions::applyValueCSSPropertyStrokeDashoffset(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetStrokeDashOffset(StyleBuilderConverter::ConvertLength(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyPosition(StyleResolverState& state) {
state.Style()->SetPosition(ComputedStyle::InitialPosition());
}
void StyleBuilderFunctions::applyValueCSSPropertyPosition(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetPosition(ToCSSIdentifierValue(value).ConvertTo<EPosition>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyFontStretch(StyleResolverState& state) {
state.GetFontBuilder().SetStretch(FontBuilder::InitialStretch());
}
void StyleBuilderFunctions::applyInheritCSSPropertyFontStretch(StyleResolverState& state) {
state.GetFontBuilder().SetStretch(state.ParentFontDescription().Stretch());
}
void StyleBuilderFunctions::applyValueCSSPropertyFontStretch(StyleResolverState& state, const CSSValue& value) {
state.GetFontBuilder().SetStretch(ToCSSIdentifierValue(value).ConvertTo<FontStretch>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyMixBlendMode(StyleResolverState& state) {
state.Style()->SetBlendMode(ComputedStyle::InitialBlendMode());
}
void StyleBuilderFunctions::applyInheritCSSPropertyMixBlendMode(StyleResolverState& state) {
state.Style()->SetBlendMode(state.ParentStyle()->BlendMode());
}
void StyleBuilderFunctions::applyValueCSSPropertyMixBlendMode(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetBlendMode(ToCSSIdentifierValue(value).ConvertTo<blink::WebBlendMode>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyBaselineShift(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetBaselineShift(SVGComputedStyle::InitialBaselineShift());
}
void StyleBuilderFunctions::applyInitialCSSPropertyPaddingLeft(StyleResolverState& state) {
state.Style()->SetPaddingLeft(ComputedStyle::InitialPadding());
}
void StyleBuilderFunctions::applyInheritCSSPropertyPaddingLeft(StyleResolverState& state) {
state.Style()->SetPaddingLeft(state.ParentStyle()->PaddingLeft());
}
void StyleBuilderFunctions::applyValueCSSPropertyPaddingLeft(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetPaddingLeft(StyleBuilderConverter::ConvertLength(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyWhiteSpace(StyleResolverState& state) {
state.Style()->SetWhiteSpace(ComputedStyle::InitialWhiteSpace());
state.Style()->SetWhiteSpaceIsInherited
(false);
}
void StyleBuilderFunctions::applyInheritCSSPropertyWhiteSpace(StyleResolverState& state) {
state.Style()->SetWhiteSpace(state.ParentStyle()->WhiteSpace());
state.Style()->SetWhiteSpaceIsInherited
(true);
}
void StyleBuilderFunctions::applyValueCSSPropertyWhiteSpace(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetWhiteSpace(ToCSSIdentifierValue(value).ConvertTo<EWhiteSpace>());
state.Style()->SetWhiteSpaceIsInherited
(false);
}
void StyleBuilderFunctions::applyInitialCSSPropertyOverflowWrap(StyleResolverState& state) {
state.Style()->SetOverflowWrap(ComputedStyle::InitialOverflowWrap());
}
void StyleBuilderFunctions::applyInheritCSSPropertyOverflowWrap(StyleResolverState& state) {
state.Style()->SetOverflowWrap(state.ParentStyle()->OverflowWrap());
}
void StyleBuilderFunctions::applyValueCSSPropertyOverflowWrap(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetOverflowWrap(ToCSSIdentifierValue(value).ConvertTo<EOverflowWrap>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyVerticalAlign(StyleResolverState& state) {
state.Style()->SetVerticalAlign(ComputedStyle::InitialVerticalAlign());
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitLocale(StyleResolverState& state) {
state.GetFontBuilder().SetLocale(FontBuilder::InitialLocale());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitLocale(StyleResolverState& state) {
state.GetFontBuilder().SetLocale(state.ParentFontDescription().Locale());
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitMarginAfterCollapse(StyleResolverState& state) {
state.Style()->SetMarginAfterCollapse(ComputedStyle::InitialMarginAfterCollapse());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitMarginAfterCollapse(StyleResolverState& state) {
state.Style()->SetMarginAfterCollapse(state.ParentStyle()->MarginAfterCollapse());
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitMarginAfterCollapse(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetMarginAfterCollapse(ToCSSIdentifierValue(value).ConvertTo<EMarginCollapse>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyOffsetPosition(StyleResolverState& state) {
state.Style()->SetOffsetPosition(ComputedStyle::InitialOffsetPosition());
}
void StyleBuilderFunctions::applyInheritCSSPropertyOffsetPosition(StyleResolverState& state) {
state.Style()->SetOffsetPosition(state.ParentStyle()->OffsetPosition());
}
void StyleBuilderFunctions::applyValueCSSPropertyOffsetPosition(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetOffsetPosition(StyleBuilderConverter::ConvertPositionOrAuto(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyBackdropFilter(StyleResolverState& state) {
state.Style()->SetBackdropFilter(ComputedStyle::InitialBackdropFilter());
}
void StyleBuilderFunctions::applyInheritCSSPropertyBackdropFilter(StyleResolverState& state) {
state.Style()->SetBackdropFilter(state.ParentStyle()->BackdropFilter());
}
void StyleBuilderFunctions::applyValueCSSPropertyBackdropFilter(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetBackdropFilter(StyleBuilderConverter::ConvertFilterOperations(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyMarkerEnd(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetMarkerEndResource(SVGComputedStyle::InitialMarkerEndResource());
}
void StyleBuilderFunctions::applyInheritCSSPropertyMarkerEnd(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetMarkerEndResource(state.ParentStyle()->SvgStyle().MarkerEndResource());
}
void StyleBuilderFunctions::applyValueCSSPropertyMarkerEnd(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetMarkerEndResource(StyleBuilderConverter::ConvertFragmentIdentifier(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitBoxLines(StyleResolverState& state) {
state.Style()->SetBoxLines(ComputedStyle::InitialBoxLines());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitBoxLines(StyleResolverState& state) {
state.Style()->SetBoxLines(state.ParentStyle()->BoxLines());
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitBoxLines(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetBoxLines(ToCSSIdentifierValue(value).ConvertTo<EBoxLines>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyOffsetAnchor(StyleResolverState& state) {
state.Style()->SetOffsetAnchor(ComputedStyle::InitialOffsetAnchor());
}
void StyleBuilderFunctions::applyInheritCSSPropertyOffsetAnchor(StyleResolverState& state) {
state.Style()->SetOffsetAnchor(state.ParentStyle()->OffsetAnchor());
}
void StyleBuilderFunctions::applyValueCSSPropertyOffsetAnchor(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetOffsetAnchor(StyleBuilderConverter::ConvertPositionOrAuto(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyColumnSpan(StyleResolverState& state) {
state.Style()->SetColumnSpan(ComputedStyle::InitialColumnSpan());
}
void StyleBuilderFunctions::applyInheritCSSPropertyColumnSpan(StyleResolverState& state) {
state.Style()->SetColumnSpan(state.ParentStyle()->GetColumnSpan());
}
void StyleBuilderFunctions::applyValueCSSPropertyColumnSpan(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetColumnSpan(ToCSSIdentifierValue(value).ConvertTo<ColumnSpan>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyTableLayout(StyleResolverState& state) {
state.Style()->SetTableLayout(ComputedStyle::InitialTableLayout());
}
void StyleBuilderFunctions::applyInheritCSSPropertyTableLayout(StyleResolverState& state) {
state.Style()->SetTableLayout(state.ParentStyle()->TableLayout());
}
void StyleBuilderFunctions::applyValueCSSPropertyTableLayout(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetTableLayout(ToCSSIdentifierValue(value).ConvertTo<ETableLayout>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyGridRowGap(StyleResolverState& state) {
state.Style()->SetGridRowGap(ComputedStyle::InitialGridRowGap());
}
void StyleBuilderFunctions::applyInheritCSSPropertyGridRowGap(StyleResolverState& state) {
state.Style()->SetGridRowGap(state.ParentStyle()->GridRowGap());
}
void StyleBuilderFunctions::applyValueCSSPropertyGridRowGap(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetGridRowGap(StyleBuilderConverter::ConvertLength(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyBorderRightStyle(StyleResolverState& state) {
state.Style()->SetBorderRightStyle(ComputedStyle::InitialBorderStyle());
}
void StyleBuilderFunctions::applyInheritCSSPropertyBorderRightStyle(StyleResolverState& state) {
state.Style()->SetBorderRightStyle(state.ParentStyle()->BorderRightStyle());
}
void StyleBuilderFunctions::applyValueCSSPropertyBorderRightStyle(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetBorderRightStyle(ToCSSIdentifierValue(value).ConvertTo<EBorderStyle>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyGridRowEnd(StyleResolverState& state) {
state.Style()->SetGridRowEnd(ComputedStyle::InitialGridRowEnd());
}
void StyleBuilderFunctions::applyInheritCSSPropertyGridRowEnd(StyleResolverState& state) {
state.Style()->SetGridRowEnd(state.ParentStyle()->GridRowEnd());
}
void StyleBuilderFunctions::applyValueCSSPropertyGridRowEnd(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetGridRowEnd(StyleBuilderConverter::ConvertGridPosition(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyTextUnderlinePosition(StyleResolverState& state) {
state.Style()->SetTextUnderlinePosition(ComputedStyle::InitialTextUnderlinePosition());
}
void StyleBuilderFunctions::applyInheritCSSPropertyTextUnderlinePosition(StyleResolverState& state) {
state.Style()->SetTextUnderlinePosition(state.ParentStyle()->GetTextUnderlinePosition());
}
void StyleBuilderFunctions::applyValueCSSPropertyTextUnderlinePosition(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetTextUnderlinePosition(ToCSSIdentifierValue(value).ConvertTo<TextUnderlinePosition>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyBackfaceVisibility(StyleResolverState& state) {
state.Style()->SetBackfaceVisibility(ComputedStyle::InitialBackfaceVisibility());
}
void StyleBuilderFunctions::applyInheritCSSPropertyBackfaceVisibility(StyleResolverState& state) {
state.Style()->SetBackfaceVisibility(state.ParentStyle()->BackfaceVisibility());
}
void StyleBuilderFunctions::applyValueCSSPropertyBackfaceVisibility(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetBackfaceVisibility(ToCSSIdentifierValue(value).ConvertTo<EBackfaceVisibility>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyLeft(StyleResolverState& state) {
state.Style()->SetLeft(ComputedStyle::InitialLeft());
}
void StyleBuilderFunctions::applyInheritCSSPropertyLeft(StyleResolverState& state) {
state.Style()->SetLeft(state.ParentStyle()->Left());
}
void StyleBuilderFunctions::applyValueCSSPropertyLeft(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetLeft(StyleBuilderConverter::ConvertLengthOrAuto(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyWidth(StyleResolverState& state) {
state.Style()->SetWidth(ComputedStyle::InitialSize());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWidth(StyleResolverState& state) {
state.Style()->SetWidth(state.ParentStyle()->Width());
}
void StyleBuilderFunctions::applyValueCSSPropertyWidth(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetWidth(StyleBuilderConverter::ConvertLengthSizing(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyColumnRuleStyle(StyleResolverState& state) {
state.Style()->SetColumnRuleStyle(ComputedStyle::InitialBorderStyle());
}
void StyleBuilderFunctions::applyInheritCSSPropertyColumnRuleStyle(StyleResolverState& state) {
state.Style()->SetColumnRuleStyle(state.ParentStyle()->ColumnRuleStyle());
}
void StyleBuilderFunctions::applyValueCSSPropertyColumnRuleStyle(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetColumnRuleStyle(ToCSSIdentifierValue(value).ConvertTo<EBorderStyle>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyOffsetPath(StyleResolverState& state) {
state.Style()->SetOffsetPath(ComputedStyle::InitialOffsetPath());
}
void StyleBuilderFunctions::applyInheritCSSPropertyOffsetPath(StyleResolverState& state) {
state.Style()->SetOffsetPath(state.ParentStyle()->OffsetPath());
}
void StyleBuilderFunctions::applyValueCSSPropertyOffsetPath(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetOffsetPath(StyleBuilderConverter::ConvertPathOrNone(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyTextDecorationSkip(StyleResolverState& state) {
state.Style()->SetTextDecorationSkip(ComputedStyle::InitialTextDecorationSkip());
}
void StyleBuilderFunctions::applyInheritCSSPropertyTextDecorationSkip(StyleResolverState& state) {
state.Style()->SetTextDecorationSkip(state.ParentStyle()->GetTextDecorationSkip());
}
void StyleBuilderFunctions::applyValueCSSPropertyTextDecorationSkip(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetTextDecorationSkip(StyleBuilderConverter::ConvertFlags<TextDecorationSkip>(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyBreakInside(StyleResolverState& state) {
state.Style()->SetBreakInside(ComputedStyle::InitialBreakInside());
}
void StyleBuilderFunctions::applyInheritCSSPropertyBreakInside(StyleResolverState& state) {
state.Style()->SetBreakInside(state.ParentStyle()->BreakInside());
}
void StyleBuilderFunctions::applyValueCSSPropertyBreakInside(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetBreakInside(ToCSSIdentifierValue(value).ConvertTo<EBreakInside>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitMaskBoxImageSource(StyleResolverState& state) {
state.Style()->SetMaskBoxImageSource(ComputedStyle::InitialMaskBoxImageSource());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitMaskBoxImageSource(StyleResolverState& state) {
state.Style()->SetMaskBoxImageSource(state.ParentStyle()->MaskBoxImageSource());
}
void StyleBuilderFunctions::applyInitialCSSPropertyFontFeatureSettings(StyleResolverState& state) {
state.GetFontBuilder().SetFeatureSettings(FontBuilder::InitialFeatureSettings());
}
void StyleBuilderFunctions::applyInheritCSSPropertyFontFeatureSettings(StyleResolverState& state) {
state.GetFontBuilder().SetFeatureSettings(state.ParentFontDescription().FeatureSettings());
}
void StyleBuilderFunctions::applyValueCSSPropertyFontFeatureSettings(StyleResolverState& state, const CSSValue& value) {
state.GetFontBuilder().SetFeatureSettings(StyleBuilderConverter::ConvertFontFeatureSettings(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyStrokeMiterlimit(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetStrokeMiterLimit(SVGComputedStyle::InitialStrokeMiterLimit());
}
void StyleBuilderFunctions::applyInheritCSSPropertyStrokeMiterlimit(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetStrokeMiterLimit(state.ParentStyle()->SvgStyle().StrokeMiterLimit());
}
void StyleBuilderFunctions::applyValueCSSPropertyStrokeMiterlimit(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetStrokeMiterLimit(ToCSSPrimitiveValue(value).ConvertTo<float>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyOverflowAnchor(StyleResolverState& state) {
state.Style()->SetOverflowAnchor(ComputedStyle::InitialOverflowAnchor());
}
void StyleBuilderFunctions::applyInheritCSSPropertyOverflowAnchor(StyleResolverState& state) {
state.Style()->SetOverflowAnchor(state.ParentStyle()->OverflowAnchor());
}
void StyleBuilderFunctions::applyValueCSSPropertyOverflowAnchor(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetOverflowAnchor(ToCSSIdentifierValue(value).ConvertTo<EOverflowAnchor>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyGridColumnStart(StyleResolverState& state) {
state.Style()->SetGridColumnStart(ComputedStyle::InitialGridColumnStart());
}
void StyleBuilderFunctions::applyInheritCSSPropertyGridColumnStart(StyleResolverState& state) {
state.Style()->SetGridColumnStart(state.ParentStyle()->GridColumnStart());
}
void StyleBuilderFunctions::applyValueCSSPropertyGridColumnStart(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetGridColumnStart(StyleBuilderConverter::ConvertGridPosition(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyMarginBottom(StyleResolverState& state) {
state.Style()->SetMarginBottom(ComputedStyle::InitialMargin());
}
void StyleBuilderFunctions::applyInheritCSSPropertyMarginBottom(StyleResolverState& state) {
state.Style()->SetMarginBottom(state.ParentStyle()->MarginBottom());
}
void StyleBuilderFunctions::applyValueCSSPropertyMarginBottom(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetMarginBottom(StyleBuilderConverter::ConvertQuirkyLength(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyListStylePosition(StyleResolverState& state) {
state.Style()->SetListStylePosition(ComputedStyle::InitialListStylePosition());
state.Style()->SetListStylePositionIsInherited
(false);
}
void StyleBuilderFunctions::applyInheritCSSPropertyListStylePosition(StyleResolverState& state) {
state.Style()->SetListStylePosition(state.ParentStyle()->ListStylePosition());
state.Style()->SetListStylePositionIsInherited
(true);
}
void StyleBuilderFunctions::applyValueCSSPropertyListStylePosition(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetListStylePosition(ToCSSIdentifierValue(value).ConvertTo<EListStylePosition>());
state.Style()->SetListStylePositionIsInherited
(false);
}
void StyleBuilderFunctions::applyInitialCSSPropertyOutlineOffset(StyleResolverState& state) {
state.Style()->SetOutlineOffset(ComputedStyle::InitialOutlineOffset());
}
void StyleBuilderFunctions::applyInheritCSSPropertyOutlineOffset(StyleResolverState& state) {
state.Style()->SetOutlineOffset(state.ParentStyle()->OutlineOffset());
}
void StyleBuilderFunctions::applyValueCSSPropertyOutlineOffset(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetOutlineOffset(StyleBuilderConverter::ConvertComputedLength<int>(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyShapeRendering(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetShapeRendering(SVGComputedStyle::InitialShapeRendering());
}
void StyleBuilderFunctions::applyInheritCSSPropertyShapeRendering(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetShapeRendering(state.ParentStyle()->SvgStyle().ShapeRendering());
}
void StyleBuilderFunctions::applyValueCSSPropertyShapeRendering(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetShapeRendering(ToCSSIdentifierValue(value).ConvertTo<EShapeRendering>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyJustifyItems(StyleResolverState& state) {
state.Style()->SetJustifyItems(ComputedStyle::InitialSelfAlignment());
}
void StyleBuilderFunctions::applyInheritCSSPropertyJustifyItems(StyleResolverState& state) {
state.Style()->SetJustifyItems(state.ParentStyle()->JustifyItems());
}
void StyleBuilderFunctions::applyValueCSSPropertyJustifyItems(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetJustifyItems(StyleBuilderConverter::ConvertSelfOrDefaultAlignmentData(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyRotate(StyleResolverState& state) {
state.Style()->SetRotate(ComputedStyle::InitialRotate());
}
void StyleBuilderFunctions::applyInheritCSSPropertyRotate(StyleResolverState& state) {
state.Style()->SetRotate(state.ParentStyle()->Rotate());
}
void StyleBuilderFunctions::applyValueCSSPropertyRotate(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetRotate(StyleBuilderConverter::ConvertRotate(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyColorRendering(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetColorRendering(SVGComputedStyle::InitialColorRendering());
}
void StyleBuilderFunctions::applyInheritCSSPropertyColorRendering(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetColorRendering(state.ParentStyle()->SvgStyle().ColorRendering());
}
void StyleBuilderFunctions::applyValueCSSPropertyColorRendering(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetColorRendering(ToCSSIdentifierValue(value).ConvertTo<EColorRendering>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyStrokeLinejoin(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetJoinStyle(SVGComputedStyle::InitialJoinStyle());
}
void StyleBuilderFunctions::applyInheritCSSPropertyStrokeLinejoin(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetJoinStyle(state.ParentStyle()->SvgStyle().JoinStyle());
}
void StyleBuilderFunctions::applyValueCSSPropertyStrokeLinejoin(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetJoinStyle(ToCSSIdentifierValue(value).ConvertTo<LineJoin>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyFlexGrow(StyleResolverState& state) {
state.Style()->SetFlexGrow(ComputedStyle::InitialFlexGrow());
}
void StyleBuilderFunctions::applyInheritCSSPropertyFlexGrow(StyleResolverState& state) {
state.Style()->SetFlexGrow(state.ParentStyle()->FlexGrow());
}
void StyleBuilderFunctions::applyValueCSSPropertyFlexGrow(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetFlexGrow(ToCSSPrimitiveValue(value).ConvertTo<float>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyMask(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetMaskerResource(SVGComputedStyle::InitialMaskerResource());
}
void StyleBuilderFunctions::applyInheritCSSPropertyMask(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetMaskerResource(state.ParentStyle()->SvgStyle().MaskerResource());
}
void StyleBuilderFunctions::applyValueCSSPropertyMask(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetMaskerResource(StyleBuilderConverter::ConvertFragmentIdentifier(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitMarginBeforeCollapse(StyleResolverState& state) {
state.Style()->SetMarginBeforeCollapse(ComputedStyle::InitialMarginBeforeCollapse());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitMarginBeforeCollapse(StyleResolverState& state) {
state.Style()->SetMarginBeforeCollapse(state.ParentStyle()->MarginBeforeCollapse());
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitMarginBeforeCollapse(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetMarginBeforeCollapse(ToCSSIdentifierValue(value).ConvertTo<EMarginCollapse>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitAppearance(StyleResolverState& state) {
state.Style()->SetAppearance(ComputedStyle::InitialAppearance());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitAppearance(StyleResolverState& state) {
state.Style()->SetAppearance(state.ParentStyle()->Appearance());
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitAppearance(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetAppearance(ToCSSIdentifierValue(value).ConvertTo<ControlPart>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyPointerEvents(StyleResolverState& state) {
state.Style()->SetPointerEvents(ComputedStyle::InitialPointerEvents());
state.Style()->SetPointerEventsIsInherited
(false);
}
void StyleBuilderFunctions::applyInheritCSSPropertyPointerEvents(StyleResolverState& state) {
state.Style()->SetPointerEvents(state.ParentStyle()->PointerEvents());
state.Style()->SetPointerEventsIsInherited
(true);
}
void StyleBuilderFunctions::applyValueCSSPropertyPointerEvents(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetPointerEvents(ToCSSIdentifierValue(value).ConvertTo<EPointerEvents>());
state.Style()->SetPointerEventsIsInherited
(false);
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitBoxOrient(StyleResolverState& state) {
state.Style()->SetBoxOrient(ComputedStyle::InitialBoxOrient());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitBoxOrient(StyleResolverState& state) {
state.Style()->SetBoxOrient(state.ParentStyle()->BoxOrient());
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitBoxOrient(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetBoxOrient(ToCSSIdentifierValue(value).ConvertTo<EBoxOrient>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyStrokeLinecap(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetCapStyle(SVGComputedStyle::InitialCapStyle());
}
void StyleBuilderFunctions::applyInheritCSSPropertyStrokeLinecap(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetCapStyle(state.ParentStyle()->SvgStyle().CapStyle());
}
void StyleBuilderFunctions::applyValueCSSPropertyStrokeLinecap(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetCapStyle(ToCSSIdentifierValue(value).ConvertTo<LineCap>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyBorderLeftStyle(StyleResolverState& state) {
state.Style()->SetBorderLeftStyle(ComputedStyle::InitialBorderStyle());
}
void StyleBuilderFunctions::applyInheritCSSPropertyBorderLeftStyle(StyleResolverState& state) {
state.Style()->SetBorderLeftStyle(state.ParentStyle()->BorderLeftStyle());
}
void StyleBuilderFunctions::applyValueCSSPropertyBorderLeftStyle(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetBorderLeftStyle(ToCSSIdentifierValue(value).ConvertTo<EBorderStyle>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitUserDrag(StyleResolverState& state) {
state.Style()->SetUserDrag(ComputedStyle::InitialUserDrag());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitUserDrag(StyleResolverState& state) {
state.Style()->SetUserDrag(state.ParentStyle()->UserDrag());
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitUserDrag(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetUserDrag(ToCSSIdentifierValue(value).ConvertTo<EUserDrag>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyFontVariantLigatures(StyleResolverState& state) {
state.GetFontBuilder().SetVariantLigatures(FontBuilder::InitialVariantLigatures());
}
void StyleBuilderFunctions::applyInheritCSSPropertyFontVariantLigatures(StyleResolverState& state) {
state.GetFontBuilder().SetVariantLigatures(state.ParentFontDescription().GetVariantLigatures());
}
void StyleBuilderFunctions::applyValueCSSPropertyFontVariantLigatures(StyleResolverState& state, const CSSValue& value) {
state.GetFontBuilder().SetVariantLigatures(StyleBuilderConverter::ConvertFontVariantLigatures(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyMarkerMid(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetMarkerMidResource(SVGComputedStyle::InitialMarkerMidResource());
}
void StyleBuilderFunctions::applyInheritCSSPropertyMarkerMid(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetMarkerMidResource(state.ParentStyle()->SvgStyle().MarkerMidResource());
}
void StyleBuilderFunctions::applyValueCSSPropertyMarkerMid(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetMarkerMidResource(StyleBuilderConverter::ConvertFragmentIdentifier(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitTextCombine(StyleResolverState& state) {
state.Style()->SetTextCombine(ComputedStyle::InitialTextCombine());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitTextCombine(StyleResolverState& state) {
state.Style()->SetTextCombine(state.ParentStyle()->GetTextCombine());
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitTextCombine(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetTextCombine(ToCSSIdentifierValue(value).ConvertTo<TextCombine>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyX(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetX(SVGComputedStyle::InitialX());
}
void StyleBuilderFunctions::applyInheritCSSPropertyX(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetX(state.ParentStyle()->SvgStyle().X());
}
void StyleBuilderFunctions::applyValueCSSPropertyX(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetX(StyleBuilderConverter::ConvertLength(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyY(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetY(SVGComputedStyle::InitialY());
}
void StyleBuilderFunctions::applyInheritCSSPropertyY(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetY(state.ParentStyle()->SvgStyle().Y());
}
void StyleBuilderFunctions::applyValueCSSPropertyY(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetY(StyleBuilderConverter::ConvertLength(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyR(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetR(SVGComputedStyle::InitialR());
}
void StyleBuilderFunctions::applyInheritCSSPropertyR(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetR(state.ParentStyle()->SvgStyle().R());
}
void StyleBuilderFunctions::applyValueCSSPropertyR(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetR(StyleBuilderConverter::ConvertLength(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyResize(StyleResolverState& state) {
state.Style()->SetResize(ComputedStyle::InitialResize());
}
void StyleBuilderFunctions::applyInheritCSSPropertyResize(StyleResolverState& state) {
state.Style()->SetResize(state.ParentStyle()->Resize());
}
void StyleBuilderFunctions::applyInitialCSSPropertyOffsetDistance(StyleResolverState& state) {
state.Style()->SetOffsetDistance(ComputedStyle::InitialOffsetDistance());
}
void StyleBuilderFunctions::applyInheritCSSPropertyOffsetDistance(StyleResolverState& state) {
state.Style()->SetOffsetDistance(state.ParentStyle()->OffsetDistance());
}
void StyleBuilderFunctions::applyValueCSSPropertyOffsetDistance(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetOffsetDistance(StyleBuilderConverter::ConvertLength(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyLetterSpacing(StyleResolverState& state) {
state.Style()->SetLetterSpacing(ComputedStyle::InitialLetterWordSpacing());
}
void StyleBuilderFunctions::applyInheritCSSPropertyLetterSpacing(StyleResolverState& state) {
state.Style()->SetLetterSpacing(state.ParentStyle()->LetterSpacing());
}
void StyleBuilderFunctions::applyValueCSSPropertyLetterSpacing(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetLetterSpacing(StyleBuilderConverter::ConvertSpacing(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitTransformOriginZ(StyleResolverState& state) {
state.Style()->SetTransformOriginZ(ComputedStyle::InitialTransformOriginZ());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitTransformOriginZ(StyleResolverState& state) {
state.Style()->SetTransformOriginZ(state.ParentStyle()->TransformOriginZ());
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitTransformOriginZ(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetTransformOriginZ(StyleBuilderConverter::ConvertComputedLength<float>(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitTextOrientation(StyleResolverState& state) {
state.Style()->SetTextOrientation(ComputedStyle::InitialTextOrientation());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitTextOrientation(StyleResolverState& state) {
state.Style()->SetTextOrientation(state.ParentStyle()->GetTextOrientation());
}
void StyleBuilderFunctions::applyInitialCSSPropertyD(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetD(SVGComputedStyle::InitialD());
}
void StyleBuilderFunctions::applyInheritCSSPropertyD(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetD(state.ParentStyle()->SvgStyle().D());
}
void StyleBuilderFunctions::applyValueCSSPropertyD(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetD(StyleBuilderConverter::ConvertPathOrNone(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyColorInterpolationFilters(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetColorInterpolationFilters(SVGComputedStyle::InitialColorInterpolationFilters());
}
void StyleBuilderFunctions::applyInheritCSSPropertyColorInterpolationFilters(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetColorInterpolationFilters(state.ParentStyle()->SvgStyle().ColorInterpolationFilters());
}
void StyleBuilderFunctions::applyValueCSSPropertyColorInterpolationFilters(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetColorInterpolationFilters(ToCSSIdentifierValue(value).ConvertTo<EColorInterpolation>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyTextTransform(StyleResolverState& state) {
state.Style()->SetTextTransform(ComputedStyle::InitialTextTransform());
state.Style()->SetTextTransformIsInherited
(false);
}
void StyleBuilderFunctions::applyInheritCSSPropertyTextTransform(StyleResolverState& state) {
state.Style()->SetTextTransform(state.ParentStyle()->TextTransform());
state.Style()->SetTextTransformIsInherited
(true);
}
void StyleBuilderFunctions::applyValueCSSPropertyTextTransform(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetTextTransform(ToCSSIdentifierValue(value).ConvertTo<ETextTransform>());
state.Style()->SetTextTransformIsInherited
(false);
}
void StyleBuilderFunctions::applyInitialCSSPropertyRight(StyleResolverState& state) {
state.Style()->SetRight(ComputedStyle::InitialRight());
}
void StyleBuilderFunctions::applyInheritCSSPropertyRight(StyleResolverState& state) {
state.Style()->SetRight(state.ParentStyle()->Right());
}
void StyleBuilderFunctions::applyValueCSSPropertyRight(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetRight(StyleBuilderConverter::ConvertLengthOrAuto(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyGridColumnEnd(StyleResolverState& state) {
state.Style()->SetGridColumnEnd(ComputedStyle::InitialGridColumnEnd());
}
void StyleBuilderFunctions::applyInheritCSSPropertyGridColumnEnd(StyleResolverState& state) {
state.Style()->SetGridColumnEnd(state.ParentStyle()->GridColumnEnd());
}
void StyleBuilderFunctions::applyValueCSSPropertyGridColumnEnd(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetGridColumnEnd(StyleBuilderConverter::ConvertGridPosition(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyScrollSnapCoordinate(StyleResolverState& state) {
state.Style()->SetScrollSnapCoordinate(ComputedStyle::InitialScrollSnapCoordinate());
}
void StyleBuilderFunctions::applyInheritCSSPropertyScrollSnapCoordinate(StyleResolverState& state) {
state.Style()->SetScrollSnapCoordinate(state.ParentStyle()->ScrollSnapCoordinate());
}
void StyleBuilderFunctions::applyValueCSSPropertyScrollSnapCoordinate(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetScrollSnapCoordinate(StyleBuilderConverter::ConvertSnapCoordinates(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyAlignContent(StyleResolverState& state) {
state.Style()->SetAlignContent(ComputedStyle::InitialContentAlignment());
}
void StyleBuilderFunctions::applyInheritCSSPropertyAlignContent(StyleResolverState& state) {
state.Style()->SetAlignContent(state.ParentStyle()->AlignContent());
}
void StyleBuilderFunctions::applyValueCSSPropertyAlignContent(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetAlignContent(StyleBuilderConverter::ConvertContentAlignmentData(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyDirection(StyleResolverState& state) {
state.Style()->SetDirection(ComputedStyle::InitialDirection());
}
void StyleBuilderFunctions::applyInheritCSSPropertyDirection(StyleResolverState& state) {
state.Style()->SetDirection(state.ParentStyle()->Direction());
}
void StyleBuilderFunctions::applyInitialCSSPropertyTextOrientation(StyleResolverState& state) {
state.Style()->SetTextOrientation(ComputedStyle::InitialTextOrientation());
}
void StyleBuilderFunctions::applyInheritCSSPropertyTextOrientation(StyleResolverState& state) {
state.Style()->SetTextOrientation(state.ParentStyle()->GetTextOrientation());
}
void StyleBuilderFunctions::applyInitialCSSPropertyLineHeightStep(StyleResolverState& state) {
state.Style()->SetLineHeightStep(ComputedStyle::InitialLineHeightStep());
}
void StyleBuilderFunctions::applyInheritCSSPropertyLineHeightStep(StyleResolverState& state) {
state.Style()->SetLineHeightStep(state.ParentStyle()->LineHeightStep());
}
void StyleBuilderFunctions::applyValueCSSPropertyLineHeightStep(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetLineHeightStep(StyleBuilderConverter::ConvertComputedLength<uint8_t>(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitBorderImage(StyleResolverState& state) {
state.Style()->SetBorderImage(ComputedStyle::InitialNinePieceImage());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitBorderImage(StyleResolverState& state) {
state.Style()->SetBorderImage(state.ParentStyle()->BorderImage());
}
void StyleBuilderFunctions::applyInitialCSSPropertyTouchAction(StyleResolverState& state) {
state.Style()->SetTouchAction(ComputedStyle::InitialTouchAction());
}
void StyleBuilderFunctions::applyInheritCSSPropertyTouchAction(StyleResolverState& state) {
state.Style()->SetTouchAction(state.ParentStyle()->GetTouchAction());
}
void StyleBuilderFunctions::applyValueCSSPropertyTouchAction(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetTouchAction(StyleBuilderConverter::ConvertFlags<TouchAction>(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitBorderVerticalSpacing(StyleResolverState& state) {
state.Style()->SetVerticalBorderSpacing(ComputedStyle::InitialVerticalBorderSpacing());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitBorderVerticalSpacing(StyleResolverState& state) {
state.Style()->SetVerticalBorderSpacing(state.ParentStyle()->VerticalBorderSpacing());
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitBorderVerticalSpacing(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetVerticalBorderSpacing(StyleBuilderConverter::ConvertComputedLength<short>(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyMarginLeft(StyleResolverState& state) {
state.Style()->SetMarginLeft(ComputedStyle::InitialMargin());
}
void StyleBuilderFunctions::applyInheritCSSPropertyMarginLeft(StyleResolverState& state) {
state.Style()->SetMarginLeft(state.ParentStyle()->MarginLeft());
}
void StyleBuilderFunctions::applyValueCSSPropertyMarginLeft(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetMarginLeft(StyleBuilderConverter::ConvertQuirkyLength(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyFlexWrap(StyleResolverState& state) {
state.Style()->SetFlexWrap(ComputedStyle::InitialFlexWrap());
}
void StyleBuilderFunctions::applyInheritCSSPropertyFlexWrap(StyleResolverState& state) {
state.Style()->SetFlexWrap(state.ParentStyle()->FlexWrap());
}
void StyleBuilderFunctions::applyValueCSSPropertyFlexWrap(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetFlexWrap(ToCSSIdentifierValue(value).ConvertTo<EFlexWrap>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyMinHeight(StyleResolverState& state) {
state.Style()->SetMinHeight(ComputedStyle::InitialMinSize());
}
void StyleBuilderFunctions::applyInheritCSSPropertyMinHeight(StyleResolverState& state) {
state.Style()->SetMinHeight(state.ParentStyle()->MinHeight());
}
void StyleBuilderFunctions::applyValueCSSPropertyMinHeight(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetMinHeight(StyleBuilderConverter::ConvertLengthSizing(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyFloodColor(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetFloodColor(SVGComputedStyle::InitialFloodColor());
}
void StyleBuilderFunctions::applyInheritCSSPropertyFloodColor(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetFloodColor(state.ParentStyle()->SvgStyle().FloodColor());
}
void StyleBuilderFunctions::applyValueCSSPropertyFloodColor(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetFloodColor(StyleBuilderConverter::ConvertColor(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyMaxHeight(StyleResolverState& state) {
state.Style()->SetMaxHeight(ComputedStyle::InitialMaxSize());
}
void StyleBuilderFunctions::applyInheritCSSPropertyMaxHeight(StyleResolverState& state) {
state.Style()->SetMaxHeight(state.ParentStyle()->MaxHeight());
}
void StyleBuilderFunctions::applyValueCSSPropertyMaxHeight(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetMaxHeight(StyleBuilderConverter::ConvertLengthMaxSizing(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyBufferedRendering(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetBufferedRendering(SVGComputedStyle::InitialBufferedRendering());
}
void StyleBuilderFunctions::applyInheritCSSPropertyBufferedRendering(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetBufferedRendering(state.ParentStyle()->SvgStyle().BufferedRendering());
}
void StyleBuilderFunctions::applyValueCSSPropertyBufferedRendering(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetBufferedRendering(ToCSSIdentifierValue(value).ConvertTo<EBufferedRendering>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyOrphans(StyleResolverState& state) {
state.Style()->SetOrphans(ComputedStyle::InitialOrphans());
}
void StyleBuilderFunctions::applyInheritCSSPropertyOrphans(StyleResolverState& state) {
state.Style()->SetOrphans(state.ParentStyle()->Orphans());
}
void StyleBuilderFunctions::applyValueCSSPropertyOrphans(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetOrphans(ToCSSPrimitiveValue(value).ConvertTo<short>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyAlignmentBaseline(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetAlignmentBaseline(SVGComputedStyle::InitialAlignmentBaseline());
}
void StyleBuilderFunctions::applyInheritCSSPropertyAlignmentBaseline(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetAlignmentBaseline(state.ParentStyle()->SvgStyle().AlignmentBaseline());
}
void StyleBuilderFunctions::applyValueCSSPropertyAlignmentBaseline(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetAlignmentBaseline(ToCSSIdentifierValue(value).ConvertTo<EAlignmentBaseline>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyMinWidth(StyleResolverState& state) {
state.Style()->SetMinWidth(ComputedStyle::InitialMinSize());
}
void StyleBuilderFunctions::applyInheritCSSPropertyMinWidth(StyleResolverState& state) {
state.Style()->SetMinWidth(state.ParentStyle()->MinWidth());
}
void StyleBuilderFunctions::applyValueCSSPropertyMinWidth(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetMinWidth(StyleBuilderConverter::ConvertLengthSizing(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyMaskType(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetMaskType(SVGComputedStyle::InitialMaskType());
}
void StyleBuilderFunctions::applyInheritCSSPropertyMaskType(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetMaskType(state.ParentStyle()->SvgStyle().MaskType());
}
void StyleBuilderFunctions::applyValueCSSPropertyMaskType(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetMaskType(ToCSSIdentifierValue(value).ConvertTo<EMaskType>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitPerspectiveOriginY(StyleResolverState& state) {
state.Style()->SetPerspectiveOriginY(ComputedStyle::InitialPerspectiveOriginY());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitPerspectiveOriginY(StyleResolverState& state) {
state.Style()->SetPerspectiveOriginY(state.ParentStyle()->PerspectiveOriginY());
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitPerspectiveOriginY(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetPerspectiveOriginY(StyleBuilderConverter::ConvertLength(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyTextAlignLast(StyleResolverState& state) {
state.Style()->SetTextAlignLast(ComputedStyle::InitialTextAlignLast());
}
void StyleBuilderFunctions::applyInheritCSSPropertyTextAlignLast(StyleResolverState& state) {
state.Style()->SetTextAlignLast(state.ParentStyle()->GetTextAlignLast());
}
void StyleBuilderFunctions::applyValueCSSPropertyTextAlignLast(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetTextAlignLast(ToCSSIdentifierValue(value).ConvertTo<TextAlignLast>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitMarginTopCollapse(StyleResolverState& state) {
state.Style()->SetMarginBeforeCollapse(ComputedStyle::InitialMarginBeforeCollapse());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitMarginTopCollapse(StyleResolverState& state) {
state.Style()->SetMarginBeforeCollapse(state.ParentStyle()->MarginBeforeCollapse());
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitMarginTopCollapse(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetMarginBeforeCollapse(ToCSSIdentifierValue(value).ConvertTo<EMarginCollapse>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyTabSize(StyleResolverState& state) {
state.Style()->SetTabSize(ComputedStyle::InitialTabSize());
}
void StyleBuilderFunctions::applyInheritCSSPropertyTabSize(StyleResolverState& state) {
state.Style()->SetTabSize(state.ParentStyle()->GetTabSize());
}
void StyleBuilderFunctions::applyValueCSSPropertyTabSize(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetTabSize(StyleBuilderConverter::ConvertLengthOrTabSpaces(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyOffsetRotation(StyleResolverState& state) {
state.Style()->SetOffsetRotation(ComputedStyle::InitialOffsetRotation());
}
void StyleBuilderFunctions::applyInheritCSSPropertyOffsetRotation(StyleResolverState& state) {
state.Style()->SetOffsetRotation(state.ParentStyle()->OffsetRotation());
}
void StyleBuilderFunctions::applyValueCSSPropertyOffsetRotation(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetOffsetRotation(StyleBuilderConverter::ConvertOffsetRotate(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyBorderBottomWidth(StyleResolverState& state) {
state.Style()->SetBorderBottomWidth(ComputedStyle::InitialBorderWidth());
}
void StyleBuilderFunctions::applyInheritCSSPropertyBorderBottomWidth(StyleResolverState& state) {
state.Style()->SetBorderBottomWidth(state.ParentStyle()->BorderBottomWidth());
}
void StyleBuilderFunctions::applyValueCSSPropertyBorderBottomWidth(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetBorderBottomWidth(StyleBuilderConverter::ConvertLineWidth<float>(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitHighlight(StyleResolverState& state) {
state.Style()->SetHighlight(ComputedStyle::InitialHighlight());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitHighlight(StyleResolverState& state) {
state.Style()->SetHighlight(state.ParentStyle()->Highlight());
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitHighlight(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetHighlight(StyleBuilderConverter::ConvertString<CSSValueNone>(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyEmptyCells(StyleResolverState& state) {
state.Style()->SetEmptyCells(ComputedStyle::InitialEmptyCells());
state.Style()->SetEmptyCellsIsInherited
(false);
}
void StyleBuilderFunctions::applyInheritCSSPropertyEmptyCells(StyleResolverState& state) {
state.Style()->SetEmptyCells(state.ParentStyle()->EmptyCells());
state.Style()->SetEmptyCellsIsInherited
(true);
}
void StyleBuilderFunctions::applyValueCSSPropertyEmptyCells(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetEmptyCells(ToCSSIdentifierValue(value).ConvertTo<EEmptyCells>());
state.Style()->SetEmptyCellsIsInherited
(false);
}
void StyleBuilderFunctions::applyInitialCSSPropertyTextOverflow(StyleResolverState& state) {
state.Style()->SetTextOverflow(ComputedStyle::InitialTextOverflow());
}
void StyleBuilderFunctions::applyInheritCSSPropertyTextOverflow(StyleResolverState& state) {
state.Style()->SetTextOverflow(state.ParentStyle()->GetTextOverflow());
}
void StyleBuilderFunctions::applyValueCSSPropertyTextOverflow(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetTextOverflow(ToCSSIdentifierValue(value).ConvertTo<TextOverflow>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyBoxSizing(StyleResolverState& state) {
state.Style()->SetBoxSizing(ComputedStyle::InitialBoxSizing());
}
void StyleBuilderFunctions::applyInheritCSSPropertyBoxSizing(StyleResolverState& state) {
state.Style()->SetBoxSizing(state.ParentStyle()->BoxSizing());
}
void StyleBuilderFunctions::applyValueCSSPropertyBoxSizing(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetBoxSizing(ToCSSIdentifierValue(value).ConvertTo<EBoxSizing>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyStrokeWidth(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetStrokeWidth(SVGComputedStyle::InitialStrokeWidth());
}
void StyleBuilderFunctions::applyInheritCSSPropertyStrokeWidth(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetStrokeWidth(state.ParentStyle()->SvgStyle().StrokeWidth());
}
void StyleBuilderFunctions::applyValueCSSPropertyStrokeWidth(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetStrokeWidth(StyleBuilderConverter::ConvertUnzoomedLength(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyMarkerStart(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetMarkerStartResource(SVGComputedStyle::InitialMarkerStartResource());
}
void StyleBuilderFunctions::applyInheritCSSPropertyMarkerStart(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetMarkerStartResource(state.ParentStyle()->SvgStyle().MarkerStartResource());
}
void StyleBuilderFunctions::applyValueCSSPropertyMarkerStart(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetMarkerStartResource(StyleBuilderConverter::ConvertFragmentIdentifier(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyTextDecorationStyle(StyleResolverState& state) {
state.Style()->SetTextDecorationStyle(ComputedStyle::InitialTextDecorationStyle());
}
void StyleBuilderFunctions::applyInheritCSSPropertyTextDecorationStyle(StyleResolverState& state) {
state.Style()->SetTextDecorationStyle(state.ParentStyle()->GetTextDecorationStyle());
}
void StyleBuilderFunctions::applyValueCSSPropertyTextDecorationStyle(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetTextDecorationStyle(ToCSSIdentifierValue(value).ConvertTo<TextDecorationStyle>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyTranslate(StyleResolverState& state) {
state.Style()->SetTranslate(ComputedStyle::InitialTranslate());
}
void StyleBuilderFunctions::applyInheritCSSPropertyTranslate(StyleResolverState& state) {
state.Style()->SetTranslate(state.ParentStyle()->Translate());
}
void StyleBuilderFunctions::applyValueCSSPropertyTranslate(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetTranslate(StyleBuilderConverter::ConvertTranslate(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyPaddingTop(StyleResolverState& state) {
state.Style()->SetPaddingTop(ComputedStyle::InitialPadding());
}
void StyleBuilderFunctions::applyInheritCSSPropertyPaddingTop(StyleResolverState& state) {
state.Style()->SetPaddingTop(state.ParentStyle()->PaddingTop());
}
void StyleBuilderFunctions::applyValueCSSPropertyPaddingTop(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetPaddingTop(StyleBuilderConverter::ConvertLength(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyDisplay(StyleResolverState& state) {
state.Style()->SetDisplay(ComputedStyle::InitialDisplay());
}
void StyleBuilderFunctions::applyInheritCSSPropertyDisplay(StyleResolverState& state) {
state.Style()->SetDisplay(state.ParentStyle()->Display());
}
void StyleBuilderFunctions::applyValueCSSPropertyDisplay(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetDisplay(ToCSSIdentifierValue(value).ConvertTo<EDisplay>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyWordBreak(StyleResolverState& state) {
state.Style()->SetWordBreak(ComputedStyle::InitialWordBreak());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWordBreak(StyleResolverState& state) {
state.Style()->SetWordBreak(state.ParentStyle()->WordBreak());
}
void StyleBuilderFunctions::applyValueCSSPropertyWordBreak(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetWordBreak(ToCSSIdentifierValue(value).ConvertTo<EWordBreak>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyBorderTopStyle(StyleResolverState& state) {
state.Style()->SetBorderTopStyle(ComputedStyle::InitialBorderStyle());
}
void StyleBuilderFunctions::applyInheritCSSPropertyBorderTopStyle(StyleResolverState& state) {
state.Style()->SetBorderTopStyle(state.ParentStyle()->BorderTopStyle());
}
void StyleBuilderFunctions::applyValueCSSPropertyBorderTopStyle(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetBorderTopStyle(ToCSSIdentifierValue(value).ConvertTo<EBorderStyle>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyJustifyContent(StyleResolverState& state) {
state.Style()->SetJustifyContent(ComputedStyle::InitialContentAlignment());
}
void StyleBuilderFunctions::applyInheritCSSPropertyJustifyContent(StyleResolverState& state) {
state.Style()->SetJustifyContent(state.ParentStyle()->JustifyContent());
}
void StyleBuilderFunctions::applyValueCSSPropertyJustifyContent(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetJustifyContent(StyleBuilderConverter::ConvertContentAlignmentData(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyBoxShadow(StyleResolverState& state) {
state.Style()->SetBoxShadow(ComputedStyle::InitialBoxShadow());
}
void StyleBuilderFunctions::applyInheritCSSPropertyBoxShadow(StyleResolverState& state) {
state.Style()->SetBoxShadow(state.ParentStyle()->BoxShadow());
}
void StyleBuilderFunctions::applyValueCSSPropertyBoxShadow(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetBoxShadow(StyleBuilderConverter::ConvertShadowList(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertySpeak(StyleResolverState& state) {
state.Style()->SetSpeak(ComputedStyle::InitialSpeak());
}
void StyleBuilderFunctions::applyInheritCSSPropertySpeak(StyleResolverState& state) {
state.Style()->SetSpeak(state.ParentStyle()->Speak());
}
void StyleBuilderFunctions::applyValueCSSPropertySpeak(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetSpeak(ToCSSIdentifierValue(value).ConvertTo<ESpeak>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyListStyleImage(StyleResolverState& state) {
state.Style()->SetListStyleImage(ComputedStyle::InitialListStyleImage());
}
void StyleBuilderFunctions::applyInheritCSSPropertyListStyleImage(StyleResolverState& state) {
state.Style()->SetListStyleImage(state.ParentStyle()->ListStyleImage());
}
void StyleBuilderFunctions::applyInitialCSSPropertyFloodOpacity(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetFloodOpacity(SVGComputedStyle::InitialFloodOpacity());
}
void StyleBuilderFunctions::applyInheritCSSPropertyFloodOpacity(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetFloodOpacity(state.ParentStyle()->SvgStyle().FloodOpacity());
}
void StyleBuilderFunctions::applyValueCSSPropertyFloodOpacity(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetFloodOpacity(StyleBuilderConverter::ConvertNumberOrPercentage(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyClipRule(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetClipRule(SVGComputedStyle::InitialClipRule());
}
void StyleBuilderFunctions::applyInheritCSSPropertyClipRule(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetClipRule(state.ParentStyle()->SvgStyle().ClipRule());
}
void StyleBuilderFunctions::applyValueCSSPropertyClipRule(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetClipRule(ToCSSIdentifierValue(value).ConvertTo<WindRule>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyFlexDirection(StyleResolverState& state) {
state.Style()->SetFlexDirection(ComputedStyle::InitialFlexDirection());
}
void StyleBuilderFunctions::applyInheritCSSPropertyFlexDirection(StyleResolverState& state) {
state.Style()->SetFlexDirection(state.ParentStyle()->FlexDirection());
}
void StyleBuilderFunctions::applyValueCSSPropertyFlexDirection(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetFlexDirection(ToCSSIdentifierValue(value).ConvertTo<EFlexDirection>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyLightingColor(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetLightingColor(SVGComputedStyle::InitialLightingColor());
}
void StyleBuilderFunctions::applyInheritCSSPropertyLightingColor(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetLightingColor(state.ParentStyle()->SvgStyle().LightingColor());
}
void StyleBuilderFunctions::applyValueCSSPropertyLightingColor(StyleResolverState& state, const CSSValue& value) {
state.Style()->AccessSVGStyle().SetLightingColor(StyleBuilderConverter::ConvertColor(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyListStyleType(StyleResolverState& state) {
state.Style()->SetListStyleType(ComputedStyle::InitialListStyleType());
}
void StyleBuilderFunctions::applyInheritCSSPropertyListStyleType(StyleResolverState& state) {
state.Style()->SetListStyleType(state.ParentStyle()->ListStyleType());
}
void StyleBuilderFunctions::applyValueCSSPropertyListStyleType(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetListStyleType(ToCSSIdentifierValue(value).ConvertTo<EListStyleType>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyImageOrientation(StyleResolverState& state) {
state.Style()->SetRespectImageOrientation(ComputedStyle::InitialRespectImageOrientation());
}
void StyleBuilderFunctions::applyInheritCSSPropertyImageOrientation(StyleResolverState& state) {
state.Style()->SetRespectImageOrientation(state.ParentStyle()->RespectImageOrientation());
}
void StyleBuilderFunctions::applyValueCSSPropertyImageOrientation(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetRespectImageOrientation(StyleBuilderConverter::ConvertImageOrientation(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyTextAlign(StyleResolverState& state) {
state.Style()->SetTextAlign(ComputedStyle::InitialTextAlign());
state.Style()->SetTextAlignIsInherited
(false);
}
void StyleBuilderFunctions::applyInheritCSSPropertyTextAlign(StyleResolverState& state) {
state.Style()->SetTextAlign(state.ParentStyle()->GetTextAlign());
state.Style()->SetTextAlignIsInherited
(true);
}
void StyleBuilderFunctions::applyInitialCSSPropertyAlignItems(StyleResolverState& state) {
state.Style()->SetAlignItems(ComputedStyle::InitialDefaultAlignment());
}
void StyleBuilderFunctions::applyInheritCSSPropertyAlignItems(StyleResolverState& state) {
state.Style()->SetAlignItems(state.ParentStyle()->AlignItems());
}
void StyleBuilderFunctions::applyValueCSSPropertyAlignItems(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetAlignItems(StyleBuilderConverter::ConvertSelfOrDefaultAlignmentData(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyObjectPosition(StyleResolverState& state) {
state.Style()->SetObjectPosition(ComputedStyle::InitialObjectPosition());
}
void StyleBuilderFunctions::applyInheritCSSPropertyObjectPosition(StyleResolverState& state) {
state.Style()->SetObjectPosition(state.ParentStyle()->ObjectPosition());
}
void StyleBuilderFunctions::applyValueCSSPropertyObjectPosition(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetObjectPosition(StyleBuilderConverter::ConvertPosition(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyGridColumnGap(StyleResolverState& state) {
state.Style()->SetGridColumnGap(ComputedStyle::InitialGridColumnGap());
}
void StyleBuilderFunctions::applyInheritCSSPropertyGridColumnGap(StyleResolverState& state) {
state.Style()->SetGridColumnGap(state.ParentStyle()->GridColumnGap());
}
void StyleBuilderFunctions::applyValueCSSPropertyGridColumnGap(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetGridColumnGap(StyleBuilderConverter::ConvertLength(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyScrollSnapDestination(StyleResolverState& state) {
state.Style()->SetScrollSnapDestination(ComputedStyle::InitialScrollSnapDestination());
}
void StyleBuilderFunctions::applyInheritCSSPropertyScrollSnapDestination(StyleResolverState& state) {
state.Style()->SetScrollSnapDestination(state.ParentStyle()->ScrollSnapDestination());
}
void StyleBuilderFunctions::applyValueCSSPropertyScrollSnapDestination(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetScrollSnapDestination(StyleBuilderConverter::ConvertPosition(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyTransformBox(StyleResolverState& state) {
state.Style()->SetTransformBox(ComputedStyle::InitialTransformBox());
}
void StyleBuilderFunctions::applyInheritCSSPropertyTransformBox(StyleResolverState& state) {
state.Style()->SetTransformBox(state.ParentStyle()->TransformBox());
}
void StyleBuilderFunctions::applyValueCSSPropertyTransformBox(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetTransformBox(ToCSSIdentifierValue(value).ConvertTo<ETransformBox>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitBoxFlexGroup(StyleResolverState& state) {
state.Style()->SetBoxFlexGroup(ComputedStyle::InitialBoxFlexGroup());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitBoxFlexGroup(StyleResolverState& state) {
state.Style()->SetBoxFlexGroup(state.ParentStyle()->BoxFlexGroup());
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitBoxFlexGroup(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetBoxFlexGroup(ToCSSPrimitiveValue(value).ConvertTo<unsigned int>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitPerspectiveOriginX(StyleResolverState& state) {
state.Style()->SetPerspectiveOriginX(ComputedStyle::InitialPerspectiveOriginX());
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitPerspectiveOriginX(StyleResolverState& state) {
state.Style()->SetPerspectiveOriginX(state.ParentStyle()->PerspectiveOriginX());
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitPerspectiveOriginX(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetPerspectiveOriginX(StyleBuilderConverter::ConvertLength(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyFontSizeAdjust(StyleResolverState& state) {
state.GetFontBuilder().SetSizeAdjust(FontBuilder::InitialSizeAdjust());
}
void StyleBuilderFunctions::applyInheritCSSPropertyFontSizeAdjust(StyleResolverState& state) {
state.GetFontBuilder().SetSizeAdjust(state.ParentFontDescription().SizeAdjust());
}
void StyleBuilderFunctions::applyValueCSSPropertyFontSizeAdjust(StyleResolverState& state, const CSSValue& value) {
state.GetFontBuilder().SetSizeAdjust(StyleBuilderConverter::ConvertFontSizeAdjust(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyFontSize(StyleResolverState& state) {
state.GetFontBuilder().SetSize(FontBuilder::InitialSize());
}
void StyleBuilderFunctions::applyInheritCSSPropertyFontSize(StyleResolverState& state) {
state.GetFontBuilder().SetSize(state.ParentFontDescription().GetSize());
}
void StyleBuilderFunctions::applyValueCSSPropertyFontSize(StyleResolverState& state, const CSSValue& value) {
state.GetFontBuilder().SetSize(StyleBuilderConverter::ConvertFontSize(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyVisibility(StyleResolverState& state) {
state.Style()->SetVisibility(ComputedStyle::InitialVisibility());
state.Style()->SetVisibilityIsInherited
(false);
}
void StyleBuilderFunctions::applyInheritCSSPropertyVisibility(StyleResolverState& state) {
state.Style()->SetVisibility(state.ParentStyle()->Visibility());
state.Style()->SetVisibilityIsInherited
(true);
}
void StyleBuilderFunctions::applyValueCSSPropertyVisibility(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetVisibility(ToCSSIdentifierValue(value).ConvertTo<EVisibility>());
state.Style()->SetVisibilityIsInherited
(false);
}
void StyleBuilderFunctions::applyInitialCSSPropertyAnimationDelay(StyleResolverState& state) {
CSSAnimationData& data = state.Style()->AccessAnimations();
data.DelayList().Clear();
data.DelayList().push_back(CSSAnimationData::InitialDelay());
}
void StyleBuilderFunctions::applyInheritCSSPropertyAnimationDelay(StyleResolverState& state) {
const CSSAnimationData* parentData = state.ParentStyle()->Animations();
if (!parentData)
applyInitialCSSPropertyAnimationDelay(state);
else
state.Style()->AccessAnimations().DelayList() = parentData->DelayList();
}
void StyleBuilderFunctions::applyValueCSSPropertyAnimationDelay(StyleResolverState& state, const CSSValue& value) {
CSSAnimationData& data = state.Style()->AccessAnimations();
data.DelayList().Clear();
for (auto& listValue : ToCSSValueList(value))
data.DelayList().push_back(CSSToStyleMap::MapAnimationDelay(*listValue));
}
void StyleBuilderFunctions::applyInitialCSSPropertyAnimationDirection(StyleResolverState& state) {
CSSAnimationData& data = state.Style()->AccessAnimations();
data.DirectionList().Clear();
data.DirectionList().push_back(CSSAnimationData::InitialDirection());
}
void StyleBuilderFunctions::applyInheritCSSPropertyAnimationDirection(StyleResolverState& state) {
const CSSAnimationData* parentData = state.ParentStyle()->Animations();
if (!parentData)
applyInitialCSSPropertyAnimationDirection(state);
else
state.Style()->AccessAnimations().DirectionList() = parentData->DirectionList();
}
void StyleBuilderFunctions::applyValueCSSPropertyAnimationDirection(StyleResolverState& state, const CSSValue& value) {
CSSAnimationData& data = state.Style()->AccessAnimations();
data.DirectionList().Clear();
for (auto& listValue : ToCSSValueList(value))
data.DirectionList().push_back(CSSToStyleMap::MapAnimationDirection(*listValue));
}
void StyleBuilderFunctions::applyInitialCSSPropertyAnimationDuration(StyleResolverState& state) {
CSSAnimationData& data = state.Style()->AccessAnimations();
data.DurationList().Clear();
data.DurationList().push_back(CSSAnimationData::InitialDuration());
}
void StyleBuilderFunctions::applyInheritCSSPropertyAnimationDuration(StyleResolverState& state) {
const CSSAnimationData* parentData = state.ParentStyle()->Animations();
if (!parentData)
applyInitialCSSPropertyAnimationDuration(state);
else
state.Style()->AccessAnimations().DurationList() = parentData->DurationList();
}
void StyleBuilderFunctions::applyValueCSSPropertyAnimationDuration(StyleResolverState& state, const CSSValue& value) {
CSSAnimationData& data = state.Style()->AccessAnimations();
data.DurationList().Clear();
for (auto& listValue : ToCSSValueList(value))
data.DurationList().push_back(CSSToStyleMap::MapAnimationDuration(*listValue));
}
void StyleBuilderFunctions::applyInitialCSSPropertyAnimationFillMode(StyleResolverState& state) {
CSSAnimationData& data = state.Style()->AccessAnimations();
data.FillModeList().Clear();
data.FillModeList().push_back(CSSAnimationData::InitialFillMode());
}
void StyleBuilderFunctions::applyInheritCSSPropertyAnimationFillMode(StyleResolverState& state) {
const CSSAnimationData* parentData = state.ParentStyle()->Animations();
if (!parentData)
applyInitialCSSPropertyAnimationFillMode(state);
else
state.Style()->AccessAnimations().FillModeList() = parentData->FillModeList();
}
void StyleBuilderFunctions::applyValueCSSPropertyAnimationFillMode(StyleResolverState& state, const CSSValue& value) {
CSSAnimationData& data = state.Style()->AccessAnimations();
data.FillModeList().Clear();
for (auto& listValue : ToCSSValueList(value))
data.FillModeList().push_back(CSSToStyleMap::MapAnimationFillMode(*listValue));
}
void StyleBuilderFunctions::applyInitialCSSPropertyAnimationIterationCount(StyleResolverState& state) {
CSSAnimationData& data = state.Style()->AccessAnimations();
data.IterationCountList().Clear();
data.IterationCountList().push_back(CSSAnimationData::InitialIterationCount());
}
void StyleBuilderFunctions::applyInheritCSSPropertyAnimationIterationCount(StyleResolverState& state) {
const CSSAnimationData* parentData = state.ParentStyle()->Animations();
if (!parentData)
applyInitialCSSPropertyAnimationIterationCount(state);
else
state.Style()->AccessAnimations().IterationCountList() = parentData->IterationCountList();
}
void StyleBuilderFunctions::applyValueCSSPropertyAnimationIterationCount(StyleResolverState& state, const CSSValue& value) {
CSSAnimationData& data = state.Style()->AccessAnimations();
data.IterationCountList().Clear();
for (auto& listValue : ToCSSValueList(value))
data.IterationCountList().push_back(CSSToStyleMap::MapAnimationIterationCount(*listValue));
}
void StyleBuilderFunctions::applyInitialCSSPropertyAnimationName(StyleResolverState& state) {
CSSAnimationData& data = state.Style()->AccessAnimations();
data.NameList().Clear();
data.NameList().push_back(CSSAnimationData::InitialName());
}
void StyleBuilderFunctions::applyInheritCSSPropertyAnimationName(StyleResolverState& state) {
const CSSAnimationData* parentData = state.ParentStyle()->Animations();
if (!parentData)
applyInitialCSSPropertyAnimationName(state);
else
state.Style()->AccessAnimations().NameList() = parentData->NameList();
}
void StyleBuilderFunctions::applyValueCSSPropertyAnimationName(StyleResolverState& state, const CSSValue& value) {
CSSAnimationData& data = state.Style()->AccessAnimations();
data.NameList().Clear();
for (auto& listValue : ToCSSValueList(value))
data.NameList().push_back(CSSToStyleMap::MapAnimationName(*listValue));
}
void StyleBuilderFunctions::applyInitialCSSPropertyAnimationPlayState(StyleResolverState& state) {
CSSAnimationData& data = state.Style()->AccessAnimations();
data.PlayStateList().Clear();
data.PlayStateList().push_back(CSSAnimationData::InitialPlayState());
}
void StyleBuilderFunctions::applyInheritCSSPropertyAnimationPlayState(StyleResolverState& state) {
const CSSAnimationData* parentData = state.ParentStyle()->Animations();
if (!parentData)
applyInitialCSSPropertyAnimationPlayState(state);
else
state.Style()->AccessAnimations().PlayStateList() = parentData->PlayStateList();
}
void StyleBuilderFunctions::applyValueCSSPropertyAnimationPlayState(StyleResolverState& state, const CSSValue& value) {
CSSAnimationData& data = state.Style()->AccessAnimations();
data.PlayStateList().Clear();
for (auto& listValue : ToCSSValueList(value))
data.PlayStateList().push_back(CSSToStyleMap::MapAnimationPlayState(*listValue));
}
void StyleBuilderFunctions::applyInitialCSSPropertyAnimationTimingFunction(StyleResolverState& state) {
CSSAnimationData& data = state.Style()->AccessAnimations();
data.TimingFunctionList().Clear();
data.TimingFunctionList().push_back(CSSAnimationData::InitialTimingFunction());
}
void StyleBuilderFunctions::applyInheritCSSPropertyAnimationTimingFunction(StyleResolverState& state) {
const CSSAnimationData* parentData = state.ParentStyle()->Animations();
if (!parentData)
applyInitialCSSPropertyAnimationTimingFunction(state);
else
state.Style()->AccessAnimations().TimingFunctionList() = parentData->TimingFunctionList();
}
void StyleBuilderFunctions::applyValueCSSPropertyAnimationTimingFunction(StyleResolverState& state, const CSSValue& value) {
CSSAnimationData& data = state.Style()->AccessAnimations();
data.TimingFunctionList().Clear();
for (auto& listValue : ToCSSValueList(value))
data.TimingFunctionList().push_back(CSSToStyleMap::MapAnimationTimingFunction(*listValue));
}
void StyleBuilderFunctions::applyInitialCSSPropertyTransitionDelay(StyleResolverState& state) {
CSSTransitionData& data = state.Style()->AccessTransitions();
data.DelayList().Clear();
data.DelayList().push_back(CSSTransitionData::InitialDelay());
}
void StyleBuilderFunctions::applyInheritCSSPropertyTransitionDelay(StyleResolverState& state) {
const CSSTransitionData* parentData = state.ParentStyle()->Transitions();
if (!parentData)
applyInitialCSSPropertyTransitionDelay(state);
else
state.Style()->AccessTransitions().DelayList() = parentData->DelayList();
}
void StyleBuilderFunctions::applyValueCSSPropertyTransitionDelay(StyleResolverState& state, const CSSValue& value) {
CSSTransitionData& data = state.Style()->AccessTransitions();
data.DelayList().Clear();
for (auto& listValue : ToCSSValueList(value))
data.DelayList().push_back(CSSToStyleMap::MapAnimationDelay(*listValue));
}
void StyleBuilderFunctions::applyInitialCSSPropertyTransitionDuration(StyleResolverState& state) {
CSSTransitionData& data = state.Style()->AccessTransitions();
data.DurationList().Clear();
data.DurationList().push_back(CSSTransitionData::InitialDuration());
}
void StyleBuilderFunctions::applyInheritCSSPropertyTransitionDuration(StyleResolverState& state) {
const CSSTransitionData* parentData = state.ParentStyle()->Transitions();
if (!parentData)
applyInitialCSSPropertyTransitionDuration(state);
else
state.Style()->AccessTransitions().DurationList() = parentData->DurationList();
}
void StyleBuilderFunctions::applyValueCSSPropertyTransitionDuration(StyleResolverState& state, const CSSValue& value) {
CSSTransitionData& data = state.Style()->AccessTransitions();
data.DurationList().Clear();
for (auto& listValue : ToCSSValueList(value))
data.DurationList().push_back(CSSToStyleMap::MapAnimationDuration(*listValue));
}
void StyleBuilderFunctions::applyInitialCSSPropertyTransitionProperty(StyleResolverState& state) {
CSSTransitionData& data = state.Style()->AccessTransitions();
data.PropertyList().Clear();
data.PropertyList().push_back(CSSTransitionData::InitialProperty());
}
void StyleBuilderFunctions::applyInheritCSSPropertyTransitionProperty(StyleResolverState& state) {
const CSSTransitionData* parentData = state.ParentStyle()->Transitions();
if (!parentData)
applyInitialCSSPropertyTransitionProperty(state);
else
state.Style()->AccessTransitions().PropertyList() = parentData->PropertyList();
}
void StyleBuilderFunctions::applyValueCSSPropertyTransitionProperty(StyleResolverState& state, const CSSValue& value) {
CSSTransitionData& data = state.Style()->AccessTransitions();
data.PropertyList().Clear();
for (auto& listValue : ToCSSValueList(value))
data.PropertyList().push_back(CSSToStyleMap::MapAnimationProperty(*listValue));
}
void StyleBuilderFunctions::applyInitialCSSPropertyTransitionTimingFunction(StyleResolverState& state) {
CSSTransitionData& data = state.Style()->AccessTransitions();
data.TimingFunctionList().Clear();
data.TimingFunctionList().push_back(CSSTransitionData::InitialTimingFunction());
}
void StyleBuilderFunctions::applyInheritCSSPropertyTransitionTimingFunction(StyleResolverState& state) {
const CSSTransitionData* parentData = state.ParentStyle()->Transitions();
if (!parentData)
applyInitialCSSPropertyTransitionTimingFunction(state);
else
state.Style()->AccessTransitions().TimingFunctionList() = parentData->TimingFunctionList();
}
void StyleBuilderFunctions::applyValueCSSPropertyTransitionTimingFunction(StyleResolverState& state, const CSSValue& value) {
CSSTransitionData& data = state.Style()->AccessTransitions();
data.TimingFunctionList().Clear();
for (auto& listValue : ToCSSValueList(value))
data.TimingFunctionList().push_back(CSSToStyleMap::MapAnimationTimingFunction(*listValue));
}
void StyleBuilderFunctions::applyInitialCSSPropertyClip(StyleResolverState& state) {
state.Style()->SetHasAutoClip();
}
void StyleBuilderFunctions::applyInheritCSSPropertyClip(StyleResolverState& state) {
if (state.ParentStyle()->HasAutoClip())
state.Style()->SetHasAutoClip();
else
state.Style()->SetClip(state.ParentStyle()->Clip());
}
void StyleBuilderFunctions::applyValueCSSPropertyClip(StyleResolverState& state, const CSSValue& value) {
if (value.IsIdentifierValue() && ToCSSIdentifierValue(value).GetValueID() == CSSValueAuto)
state.Style()->SetHasAutoClip();
else
state.Style()->SetClip(StyleBuilderConverter::ConvertClip(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyColumnCount(StyleResolverState& state) {
state.Style()->SetHasAutoColumnCount();
}
void StyleBuilderFunctions::applyInheritCSSPropertyColumnCount(StyleResolverState& state) {
if (state.ParentStyle()->HasAutoColumnCount())
state.Style()->SetHasAutoColumnCount();
else
state.Style()->SetColumnCount(state.ParentStyle()->ColumnCount());
}
void StyleBuilderFunctions::applyValueCSSPropertyColumnCount(StyleResolverState& state, const CSSValue& value) {
if (value.IsIdentifierValue() && ToCSSIdentifierValue(value).GetValueID() == CSSValueAuto)
state.Style()->SetHasAutoColumnCount();
else
state.Style()->SetColumnCount(ToCSSPrimitiveValue(value).ConvertTo<unsigned short>());
}
void StyleBuilderFunctions::applyInitialCSSPropertyColumnGap(StyleResolverState& state) {
state.Style()->SetHasNormalColumnGap();
}
void StyleBuilderFunctions::applyInheritCSSPropertyColumnGap(StyleResolverState& state) {
if (state.ParentStyle()->HasNormalColumnGap())
state.Style()->SetHasNormalColumnGap();
else
state.Style()->SetColumnGap(state.ParentStyle()->ColumnGap());
}
void StyleBuilderFunctions::applyValueCSSPropertyColumnGap(StyleResolverState& state, const CSSValue& value) {
if (value.IsIdentifierValue() && ToCSSIdentifierValue(value).GetValueID() == CSSValueNormal)
state.Style()->SetHasNormalColumnGap();
else
state.Style()->SetColumnGap(StyleBuilderConverter::ConvertComputedLength<float>(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyColumnWidth(StyleResolverState& state) {
state.Style()->SetHasAutoColumnWidth();
}
void StyleBuilderFunctions::applyInheritCSSPropertyColumnWidth(StyleResolverState& state) {
if (state.ParentStyle()->HasAutoColumnWidth())
state.Style()->SetHasAutoColumnWidth();
else
state.Style()->SetColumnWidth(state.ParentStyle()->ColumnWidth());
}
void StyleBuilderFunctions::applyValueCSSPropertyColumnWidth(StyleResolverState& state, const CSSValue& value) {
if (value.IsIdentifierValue() && ToCSSIdentifierValue(value).GetValueID() == CSSValueAuto)
state.Style()->SetHasAutoColumnWidth();
else
state.Style()->SetColumnWidth(StyleBuilderConverter::ConvertComputedLength<float>(state, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyZIndex(StyleResolverState& state) {
state.Style()->SetHasAutoZIndex();
}
void StyleBuilderFunctions::applyInheritCSSPropertyZIndex(StyleResolverState& state) {
if (state.ParentStyle()->HasAutoZIndex())
state.Style()->SetHasAutoZIndex();
else
state.Style()->SetZIndex(state.ParentStyle()->ZIndex());
}
void StyleBuilderFunctions::applyValueCSSPropertyZIndex(StyleResolverState& state, const CSSValue& value) {
if (value.IsIdentifierValue() && ToCSSIdentifierValue(value).GetValueID() == CSSValueAuto)
state.Style()->SetHasAutoZIndex();
else
state.Style()->SetZIndex(ToCSSPrimitiveValue(value).ConvertTo<int>());
}
static bool lengthMatchesAllSides(const LengthBox& lengthBox,
const Length& length) {
return (lengthBox.Left() == length &&
lengthBox.Right() == length &&
lengthBox.Top() == length &&
lengthBox.Bottom() == length);
}
static bool borderImageLengthMatchesAllSides(
const BorderImageLengthBox& borderImageLengthBox,
const BorderImageLength& borderImageLength) {
return (borderImageLengthBox.Left() == borderImageLength &&
borderImageLengthBox.Right() == borderImageLength &&
borderImageLengthBox.Top() == borderImageLength &&
borderImageLengthBox.Bottom() == borderImageLength);
}
void StyleBuilderFunctions::applyInitialCSSPropertyBorderImageOutset(StyleResolverState& state) {
const NinePieceImage& currentImage = state.Style()->BorderImage();
if (borderImageLengthMatchesAllSides(currentImage.Outset(),
BorderImageLength(Length(0, kFixed))))
return;
NinePieceImage image(currentImage);
image.SetOutset(Length(0, kFixed));
state.Style()->SetBorderImage(image);
}
void StyleBuilderFunctions::applyInheritCSSPropertyBorderImageOutset(StyleResolverState& state) {
NinePieceImage image(state.Style()->BorderImage());
image.CopyOutsetFrom(state.ParentStyle()->BorderImage());
state.Style()->SetBorderImage(image);
}
void StyleBuilderFunctions::applyValueCSSPropertyBorderImageOutset(StyleResolverState& state, const CSSValue& value) {
NinePieceImage image(state.Style()->BorderImage());
image.SetOutset(CSSToStyleMap::MapNinePieceImageQuad(state, value));
state.Style()->SetBorderImage(image);
}
void StyleBuilderFunctions::applyInitialCSSPropertyBorderImageRepeat(StyleResolverState& state) {
const NinePieceImage& currentImage = state.Style()->BorderImage();
if (currentImage.HorizontalRule() == kStretchImageRule &&
currentImage.VerticalRule() == kStretchImageRule)
return;
NinePieceImage image(currentImage);
image.SetHorizontalRule(kStretchImageRule);
image.SetVerticalRule(kStretchImageRule);
state.Style()->SetBorderImage(image);
}
void StyleBuilderFunctions::applyInheritCSSPropertyBorderImageRepeat(StyleResolverState& state) {
NinePieceImage image(state.Style()->BorderImage());
image.CopyRepeatFrom(state.ParentStyle()->BorderImage());
state.Style()->SetBorderImage(image);
}
void StyleBuilderFunctions::applyValueCSSPropertyBorderImageRepeat(StyleResolverState& state, const CSSValue& value) {
NinePieceImage image(state.Style()->BorderImage());
CSSToStyleMap::MapNinePieceImageRepeat(state, value, image);
state.Style()->SetBorderImage(image);
}
void StyleBuilderFunctions::applyInitialCSSPropertyBorderImageSlice(StyleResolverState& state) {
const NinePieceImage& currentImage = state.Style()->BorderImage();
if (currentImage.Fill() == false &&
lengthMatchesAllSides(currentImage.ImageSlices(), Length(100, kPercent)))
return;
NinePieceImage image(currentImage);
image.SetImageSlices(LengthBox(Length(100, kPercent), Length(100, kPercent), Length(100, kPercent), Length(100, kPercent)));
image.SetFill(false);
state.Style()->SetBorderImage(image);
}
void StyleBuilderFunctions::applyInheritCSSPropertyBorderImageSlice(StyleResolverState& state) {
NinePieceImage image(state.Style()->BorderImage());
image.CopyImageSlicesFrom(state.ParentStyle()->BorderImage());
state.Style()->SetBorderImage(image);
}
void StyleBuilderFunctions::applyValueCSSPropertyBorderImageSlice(StyleResolverState& state, const CSSValue& value) {
NinePieceImage image(state.Style()->BorderImage());
CSSToStyleMap::MapNinePieceImageSlice(state, value, image);
state.Style()->SetBorderImage(image);
}
void StyleBuilderFunctions::applyInitialCSSPropertyBorderImageWidth(StyleResolverState& state) {
const NinePieceImage& currentImage = state.Style()->BorderImage();
if (borderImageLengthMatchesAllSides(currentImage.BorderSlices(),
BorderImageLength(1.0)))
return;
NinePieceImage image(currentImage);
image.SetBorderSlices(1.0);
state.Style()->SetBorderImage(image);
}
void StyleBuilderFunctions::applyInheritCSSPropertyBorderImageWidth(StyleResolverState& state) {
NinePieceImage image(state.Style()->BorderImage());
image.CopyBorderSlicesFrom(state.ParentStyle()->BorderImage());
state.Style()->SetBorderImage(image);
}
void StyleBuilderFunctions::applyValueCSSPropertyBorderImageWidth(StyleResolverState& state, const CSSValue& value) {
NinePieceImage image(state.Style()->BorderImage());
image.SetBorderSlices(CSSToStyleMap::MapNinePieceImageQuad(state, value));
state.Style()->SetBorderImage(image);
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitMaskBoxImageOutset(StyleResolverState& state) {
const NinePieceImage& currentImage = state.Style()->MaskBoxImage();
if (borderImageLengthMatchesAllSides(currentImage.Outset(),
BorderImageLength(Length(0, kFixed))))
return;
NinePieceImage image(currentImage);
image.SetOutset(Length(0, kFixed));
state.Style()->SetMaskBoxImage(image);
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitMaskBoxImageOutset(StyleResolverState& state) {
NinePieceImage image(state.Style()->MaskBoxImage());
image.CopyOutsetFrom(state.ParentStyle()->MaskBoxImage());
state.Style()->SetMaskBoxImage(image);
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitMaskBoxImageOutset(StyleResolverState& state, const CSSValue& value) {
NinePieceImage image(state.Style()->MaskBoxImage());
image.SetOutset(CSSToStyleMap::MapNinePieceImageQuad(state, value));
state.Style()->SetMaskBoxImage(image);
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitMaskBoxImageRepeat(StyleResolverState& state) {
const NinePieceImage& currentImage = state.Style()->MaskBoxImage();
if (currentImage.HorizontalRule() == kStretchImageRule &&
currentImage.VerticalRule() == kStretchImageRule)
return;
NinePieceImage image(currentImage);
image.SetHorizontalRule(kStretchImageRule);
image.SetVerticalRule(kStretchImageRule);
state.Style()->SetMaskBoxImage(image);
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitMaskBoxImageRepeat(StyleResolverState& state) {
NinePieceImage image(state.Style()->MaskBoxImage());
image.CopyRepeatFrom(state.ParentStyle()->MaskBoxImage());
state.Style()->SetMaskBoxImage(image);
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitMaskBoxImageRepeat(StyleResolverState& state, const CSSValue& value) {
NinePieceImage image(state.Style()->MaskBoxImage());
CSSToStyleMap::MapNinePieceImageRepeat(state, value, image);
state.Style()->SetMaskBoxImage(image);
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitMaskBoxImageSlice(StyleResolverState& state) {
const NinePieceImage& currentImage = state.Style()->MaskBoxImage();
// Masks have a different initial value for slices. Preserve the value of 0
// for backwards compatibility.
if (currentImage.Fill() == true &&
lengthMatchesAllSides(currentImage.ImageSlices(), Length(0, kFixed)))
return;
NinePieceImage image(currentImage);
image.SetImageSlices(LengthBox(Length(0, kFixed), Length(0, kFixed), Length(0, kFixed), Length(0, kFixed)));
image.SetFill(true);
state.Style()->SetMaskBoxImage(image);
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitMaskBoxImageSlice(StyleResolverState& state) {
NinePieceImage image(state.Style()->MaskBoxImage());
image.CopyImageSlicesFrom(state.ParentStyle()->MaskBoxImage());
state.Style()->SetMaskBoxImage(image);
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitMaskBoxImageSlice(StyleResolverState& state, const CSSValue& value) {
NinePieceImage image(state.Style()->MaskBoxImage());
CSSToStyleMap::MapNinePieceImageSlice(state, value, image);
state.Style()->SetMaskBoxImage(image);
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitMaskBoxImageWidth(StyleResolverState& state) {
const NinePieceImage& currentImage = state.Style()->MaskBoxImage();
// Masks have a different initial value for widths. Preserve the value of
// 'auto' for backwards compatibility.
if (borderImageLengthMatchesAllSides(currentImage.BorderSlices(),
BorderImageLength(Length(kAuto))))
return;
NinePieceImage image(currentImage);
image.SetBorderSlices(Length(kAuto));
state.Style()->SetMaskBoxImage(image);
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitMaskBoxImageWidth(StyleResolverState& state) {
NinePieceImage image(state.Style()->MaskBoxImage());
image.CopyBorderSlicesFrom(state.ParentStyle()->MaskBoxImage());
state.Style()->SetMaskBoxImage(image);
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitMaskBoxImageWidth(StyleResolverState& state, const CSSValue& value) {
NinePieceImage image(state.Style()->MaskBoxImage());
image.SetBorderSlices(CSSToStyleMap::MapNinePieceImageQuad(state, value));
state.Style()->SetMaskBoxImage(image);
}
void StyleBuilderFunctions::applyValueCSSPropertyBorderImageSource(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetBorderImageSource(state.GetStyleImage(CSSPropertyBorderImageSource, value));
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitMaskBoxImageSource(StyleResolverState& state, const CSSValue& value) {
state.Style()->SetMaskBoxImageSource(state.GetStyleImage(CSSPropertyWebkitMaskBoxImageSource, value));
}
void StyleBuilderFunctions::applyInitialCSSPropertyBackgroundColor(StyleResolverState& state) {
StyleColor color = ComputedStyle::InitialBackgroundColor();
if (state.ApplyPropertyToRegularStyle())
state.Style()->SetBackgroundColor(color);
if (state.ApplyPropertyToVisitedLinkStyle())
state.Style()->SetVisitedLinkBackgroundColor(color);
}
void StyleBuilderFunctions::applyInheritCSSPropertyBackgroundColor(StyleResolverState& state) {
// Visited link style can never explicitly inherit from parent visited link
// style so no separate getters are needed.
StyleColor color = state.ParentStyle()->BackgroundColor();
if (state.ApplyPropertyToRegularStyle())
state.Style()->SetBackgroundColor(color);
if (state.ApplyPropertyToVisitedLinkStyle())
state.Style()->SetVisitedLinkBackgroundColor(color);
}
void StyleBuilderFunctions::applyValueCSSPropertyBackgroundColor(StyleResolverState& state, const CSSValue& value)
{
if (state.ApplyPropertyToRegularStyle())
state.Style()->SetBackgroundColor(StyleBuilderConverter::ConvertStyleColor(state, value));
if (state.ApplyPropertyToVisitedLinkStyle()) {
state.Style()->SetVisitedLinkBackgroundColor(
StyleBuilderConverter::ConvertStyleColor(state, value, true));
}
}
void StyleBuilderFunctions::applyInitialCSSPropertyBorderBottomColor(StyleResolverState& state) {
StyleColor color = StyleColor::CurrentColor();
if (state.ApplyPropertyToRegularStyle())
state.Style()->SetBorderBottomColor(color);
if (state.ApplyPropertyToVisitedLinkStyle())
state.Style()->SetVisitedLinkBorderBottomColor(color);
}
void StyleBuilderFunctions::applyInheritCSSPropertyBorderBottomColor(StyleResolverState& state) {
// Visited link style can never explicitly inherit from parent visited link
// style so no separate getters are needed.
StyleColor color = state.ParentStyle()->BorderBottomColor();
if (state.ApplyPropertyToRegularStyle())
state.Style()->SetBorderBottomColor(color);
if (state.ApplyPropertyToVisitedLinkStyle())
state.Style()->SetVisitedLinkBorderBottomColor(color);
}
void StyleBuilderFunctions::applyValueCSSPropertyBorderBottomColor(StyleResolverState& state, const CSSValue& value)
{
if (state.ApplyPropertyToRegularStyle())
state.Style()->SetBorderBottomColor(StyleBuilderConverter::ConvertStyleColor(state, value));
if (state.ApplyPropertyToVisitedLinkStyle()) {
state.Style()->SetVisitedLinkBorderBottomColor(
StyleBuilderConverter::ConvertStyleColor(state, value, true));
}
}
void StyleBuilderFunctions::applyInitialCSSPropertyBorderLeftColor(StyleResolverState& state) {
StyleColor color = StyleColor::CurrentColor();
if (state.ApplyPropertyToRegularStyle())
state.Style()->SetBorderLeftColor(color);
if (state.ApplyPropertyToVisitedLinkStyle())
state.Style()->SetVisitedLinkBorderLeftColor(color);
}
void StyleBuilderFunctions::applyInheritCSSPropertyBorderLeftColor(StyleResolverState& state) {
// Visited link style can never explicitly inherit from parent visited link
// style so no separate getters are needed.
StyleColor color = state.ParentStyle()->BorderLeftColor();
if (state.ApplyPropertyToRegularStyle())
state.Style()->SetBorderLeftColor(color);
if (state.ApplyPropertyToVisitedLinkStyle())
state.Style()->SetVisitedLinkBorderLeftColor(color);
}
void StyleBuilderFunctions::applyValueCSSPropertyBorderLeftColor(StyleResolverState& state, const CSSValue& value)
{
if (state.ApplyPropertyToRegularStyle())
state.Style()->SetBorderLeftColor(StyleBuilderConverter::ConvertStyleColor(state, value));
if (state.ApplyPropertyToVisitedLinkStyle()) {
state.Style()->SetVisitedLinkBorderLeftColor(
StyleBuilderConverter::ConvertStyleColor(state, value, true));
}
}
void StyleBuilderFunctions::applyInitialCSSPropertyBorderRightColor(StyleResolverState& state) {
StyleColor color = StyleColor::CurrentColor();
if (state.ApplyPropertyToRegularStyle())
state.Style()->SetBorderRightColor(color);
if (state.ApplyPropertyToVisitedLinkStyle())
state.Style()->SetVisitedLinkBorderRightColor(color);
}
void StyleBuilderFunctions::applyInheritCSSPropertyBorderRightColor(StyleResolverState& state) {
// Visited link style can never explicitly inherit from parent visited link
// style so no separate getters are needed.
StyleColor color = state.ParentStyle()->BorderRightColor();
if (state.ApplyPropertyToRegularStyle())
state.Style()->SetBorderRightColor(color);
if (state.ApplyPropertyToVisitedLinkStyle())
state.Style()->SetVisitedLinkBorderRightColor(color);
}
void StyleBuilderFunctions::applyValueCSSPropertyBorderRightColor(StyleResolverState& state, const CSSValue& value)
{
if (state.ApplyPropertyToRegularStyle())
state.Style()->SetBorderRightColor(StyleBuilderConverter::ConvertStyleColor(state, value));
if (state.ApplyPropertyToVisitedLinkStyle()) {
state.Style()->SetVisitedLinkBorderRightColor(
StyleBuilderConverter::ConvertStyleColor(state, value, true));
}
}
void StyleBuilderFunctions::applyInitialCSSPropertyBorderTopColor(StyleResolverState& state) {
StyleColor color = StyleColor::CurrentColor();
if (state.ApplyPropertyToRegularStyle())
state.Style()->SetBorderTopColor(color);
if (state.ApplyPropertyToVisitedLinkStyle())
state.Style()->SetVisitedLinkBorderTopColor(color);
}
void StyleBuilderFunctions::applyInheritCSSPropertyBorderTopColor(StyleResolverState& state) {
// Visited link style can never explicitly inherit from parent visited link
// style so no separate getters are needed.
StyleColor color = state.ParentStyle()->BorderTopColor();
if (state.ApplyPropertyToRegularStyle())
state.Style()->SetBorderTopColor(color);
if (state.ApplyPropertyToVisitedLinkStyle())
state.Style()->SetVisitedLinkBorderTopColor(color);
}
void StyleBuilderFunctions::applyValueCSSPropertyBorderTopColor(StyleResolverState& state, const CSSValue& value)
{
if (state.ApplyPropertyToRegularStyle())
state.Style()->SetBorderTopColor(StyleBuilderConverter::ConvertStyleColor(state, value));
if (state.ApplyPropertyToVisitedLinkStyle()) {
state.Style()->SetVisitedLinkBorderTopColor(
StyleBuilderConverter::ConvertStyleColor(state, value, true));
}
}
void StyleBuilderFunctions::applyInitialCSSPropertyOutlineColor(StyleResolverState& state) {
StyleColor color = StyleColor::CurrentColor();
if (state.ApplyPropertyToRegularStyle())
state.Style()->SetOutlineColor(color);
if (state.ApplyPropertyToVisitedLinkStyle())
state.Style()->SetVisitedLinkOutlineColor(color);
}
void StyleBuilderFunctions::applyInheritCSSPropertyOutlineColor(StyleResolverState& state) {
// Visited link style can never explicitly inherit from parent visited link
// style so no separate getters are needed.
StyleColor color = state.ParentStyle()->OutlineColor();
if (state.ApplyPropertyToRegularStyle())
state.Style()->SetOutlineColor(color);
if (state.ApplyPropertyToVisitedLinkStyle())
state.Style()->SetVisitedLinkOutlineColor(color);
}
void StyleBuilderFunctions::applyValueCSSPropertyOutlineColor(StyleResolverState& state, const CSSValue& value)
{
if (state.ApplyPropertyToRegularStyle())
state.Style()->SetOutlineColor(StyleBuilderConverter::ConvertStyleColor(state, value));
if (state.ApplyPropertyToVisitedLinkStyle()) {
state.Style()->SetVisitedLinkOutlineColor(
StyleBuilderConverter::ConvertStyleColor(state, value, true));
}
}
void StyleBuilderFunctions::applyInitialCSSPropertyTextDecorationColor(StyleResolverState& state) {
StyleColor color = StyleColor::CurrentColor();
if (state.ApplyPropertyToRegularStyle())
state.Style()->SetTextDecorationColor(color);
if (state.ApplyPropertyToVisitedLinkStyle())
state.Style()->SetVisitedLinkTextDecorationColor(color);
}
void StyleBuilderFunctions::applyInheritCSSPropertyTextDecorationColor(StyleResolverState& state) {
// Visited link style can never explicitly inherit from parent visited link
// style so no separate getters are needed.
StyleColor color = state.ParentStyle()->TextDecorationColor();
if (state.ApplyPropertyToRegularStyle())
state.Style()->SetTextDecorationColor(color);
if (state.ApplyPropertyToVisitedLinkStyle())
state.Style()->SetVisitedLinkTextDecorationColor(color);
}
void StyleBuilderFunctions::applyValueCSSPropertyTextDecorationColor(StyleResolverState& state, const CSSValue& value)
{
if (state.ApplyPropertyToRegularStyle())
state.Style()->SetTextDecorationColor(StyleBuilderConverter::ConvertStyleColor(state, value));
if (state.ApplyPropertyToVisitedLinkStyle()) {
state.Style()->SetVisitedLinkTextDecorationColor(
StyleBuilderConverter::ConvertStyleColor(state, value, true));
}
}
void StyleBuilderFunctions::applyInitialCSSPropertyColumnRuleColor(StyleResolverState& state) {
StyleColor color = StyleColor::CurrentColor();
if (state.ApplyPropertyToRegularStyle())
state.Style()->SetColumnRuleColor(color);
if (state.ApplyPropertyToVisitedLinkStyle())
state.Style()->SetVisitedLinkColumnRuleColor(color);
}
void StyleBuilderFunctions::applyInheritCSSPropertyColumnRuleColor(StyleResolverState& state) {
// Visited link style can never explicitly inherit from parent visited link
// style so no separate getters are needed.
StyleColor color = state.ParentStyle()->ColumnRuleColor();
if (state.ApplyPropertyToRegularStyle())
state.Style()->SetColumnRuleColor(color);
if (state.ApplyPropertyToVisitedLinkStyle())
state.Style()->SetVisitedLinkColumnRuleColor(color);
}
void StyleBuilderFunctions::applyValueCSSPropertyColumnRuleColor(StyleResolverState& state, const CSSValue& value)
{
if (state.ApplyPropertyToRegularStyle())
state.Style()->SetColumnRuleColor(StyleBuilderConverter::ConvertStyleColor(state, value));
if (state.ApplyPropertyToVisitedLinkStyle()) {
state.Style()->SetVisitedLinkColumnRuleColor(
StyleBuilderConverter::ConvertStyleColor(state, value, true));
}
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitTextEmphasisColor(StyleResolverState& state) {
StyleColor color = StyleColor::CurrentColor();
if (state.ApplyPropertyToRegularStyle())
state.Style()->SetTextEmphasisColor(color);
if (state.ApplyPropertyToVisitedLinkStyle())
state.Style()->SetVisitedLinkTextEmphasisColor(color);
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitTextEmphasisColor(StyleResolverState& state) {
// Visited link style can never explicitly inherit from parent visited link
// style so no separate getters are needed.
StyleColor color = state.ParentStyle()->TextEmphasisColor();
if (state.ApplyPropertyToRegularStyle())
state.Style()->SetTextEmphasisColor(color);
if (state.ApplyPropertyToVisitedLinkStyle())
state.Style()->SetVisitedLinkTextEmphasisColor(color);
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitTextEmphasisColor(StyleResolverState& state, const CSSValue& value)
{
if (state.ApplyPropertyToRegularStyle())
state.Style()->SetTextEmphasisColor(StyleBuilderConverter::ConvertStyleColor(state, value));
if (state.ApplyPropertyToVisitedLinkStyle()) {
state.Style()->SetVisitedLinkTextEmphasisColor(
StyleBuilderConverter::ConvertStyleColor(state, value, true));
}
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitTextFillColor(StyleResolverState& state) {
StyleColor color = StyleColor::CurrentColor();
if (state.ApplyPropertyToRegularStyle())
state.Style()->SetTextFillColor(color);
if (state.ApplyPropertyToVisitedLinkStyle())
state.Style()->SetVisitedLinkTextFillColor(color);
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitTextFillColor(StyleResolverState& state) {
// Visited link style can never explicitly inherit from parent visited link
// style so no separate getters are needed.
StyleColor color = state.ParentStyle()->TextFillColor();
if (state.ApplyPropertyToRegularStyle())
state.Style()->SetTextFillColor(color);
if (state.ApplyPropertyToVisitedLinkStyle())
state.Style()->SetVisitedLinkTextFillColor(color);
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitTextFillColor(StyleResolverState& state, const CSSValue& value)
{
if (state.ApplyPropertyToRegularStyle())
state.Style()->SetTextFillColor(StyleBuilderConverter::ConvertStyleColor(state, value));
if (state.ApplyPropertyToVisitedLinkStyle()) {
state.Style()->SetVisitedLinkTextFillColor(
StyleBuilderConverter::ConvertStyleColor(state, value, true));
}
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitTextStrokeColor(StyleResolverState& state) {
StyleColor color = StyleColor::CurrentColor();
if (state.ApplyPropertyToRegularStyle())
state.Style()->SetTextStrokeColor(color);
if (state.ApplyPropertyToVisitedLinkStyle())
state.Style()->SetVisitedLinkTextStrokeColor(color);
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitTextStrokeColor(StyleResolverState& state) {
// Visited link style can never explicitly inherit from parent visited link
// style so no separate getters are needed.
StyleColor color = state.ParentStyle()->TextStrokeColor();
if (state.ApplyPropertyToRegularStyle())
state.Style()->SetTextStrokeColor(color);
if (state.ApplyPropertyToVisitedLinkStyle())
state.Style()->SetVisitedLinkTextStrokeColor(color);
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitTextStrokeColor(StyleResolverState& state, const CSSValue& value)
{
if (state.ApplyPropertyToRegularStyle())
state.Style()->SetTextStrokeColor(StyleBuilderConverter::ConvertStyleColor(state, value));
if (state.ApplyPropertyToVisitedLinkStyle()) {
state.Style()->SetVisitedLinkTextStrokeColor(
StyleBuilderConverter::ConvertStyleColor(state, value, true));
}
}
void StyleBuilderFunctions::applyInitialCSSPropertyCounterIncrement(StyleResolverState& state) {
state.Style()->ClearIncrementDirectives();
}
void StyleBuilderFunctions::applyInheritCSSPropertyCounterIncrement(StyleResolverState& state) {
const CounterDirectiveMap* parentMap = state.ParentStyle()->GetCounterDirectives();
if (!parentMap)
return;
CounterDirectiveMap& map = state.Style()->AccessCounterDirectives();
DCHECK(!parentMap->IsEmpty());
typedef CounterDirectiveMap::const_iterator Iterator;
Iterator end = parentMap->end();
for (Iterator it = parentMap->begin(); it != end; ++it) {
CounterDirectives& directives = map.insert(it->key, CounterDirectives()).stored_value->value;
directives.InheritIncrement(it->value);
}
}
void StyleBuilderFunctions::applyValueCSSPropertyCounterIncrement(StyleResolverState& state, const CSSValue& value) {
state.Style()->ClearIncrementDirectives();
if (!value.IsValueList()) {
DCHECK(value.IsIdentifierValue());
DCHECK_EQ(ToCSSIdentifierValue(value).GetValueID(), CSSValueNone);
return;
}
CounterDirectiveMap& map = state.Style()->AccessCounterDirectives();
const CSSValueList& list = ToCSSValueList(value);
for (size_t i = 0; i < list.length(); ++i) {
const CSSValuePair& pair = ToCSSValuePair(list.Item(i));
AtomicString identifier(ToCSSCustomIdentValue(pair.First()).Value());
int value = ToCSSPrimitiveValue(pair.Second()).GetIntValue();
CounterDirectives& directives =
map.insert(identifier, CounterDirectives()).stored_value->value;
directives.AddIncrementValue(value);
}
DCHECK(!map.IsEmpty());
}
void StyleBuilderFunctions::applyInitialCSSPropertyCounterReset(StyleResolverState& state) {
state.Style()->ClearResetDirectives();
}
void StyleBuilderFunctions::applyInheritCSSPropertyCounterReset(StyleResolverState& state) {
const CounterDirectiveMap* parentMap = state.ParentStyle()->GetCounterDirectives();
if (!parentMap)
return;
CounterDirectiveMap& map = state.Style()->AccessCounterDirectives();
DCHECK(!parentMap->IsEmpty());
typedef CounterDirectiveMap::const_iterator Iterator;
Iterator end = parentMap->end();
for (Iterator it = parentMap->begin(); it != end; ++it) {
CounterDirectives& directives = map.insert(it->key, CounterDirectives()).stored_value->value;
directives.InheritReset(it->value);
}
}
void StyleBuilderFunctions::applyValueCSSPropertyCounterReset(StyleResolverState& state, const CSSValue& value) {
state.Style()->ClearResetDirectives();
if (!value.IsValueList()) {
DCHECK(value.IsIdentifierValue());
DCHECK_EQ(ToCSSIdentifierValue(value).GetValueID(), CSSValueNone);
return;
}
CounterDirectiveMap& map = state.Style()->AccessCounterDirectives();
const CSSValueList& list = ToCSSValueList(value);
for (size_t i = 0; i < list.length(); ++i) {
const CSSValuePair& pair = ToCSSValuePair(list.Item(i));
AtomicString identifier(ToCSSCustomIdentValue(pair.First()).Value());
int value = ToCSSPrimitiveValue(pair.Second()).GetIntValue();
CounterDirectives& directives =
map.insert(identifier, CounterDirectives()).stored_value->value;
directives.SetResetValue(value);
}
DCHECK(!map.IsEmpty());
}
void StyleBuilderFunctions::applyInitialCSSPropertyBackgroundAttachment(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessBackgroundLayers();
currChild->SetAttachment(FillLayer::InitialFillAttachment(kBackgroundFillLayer));
for (currChild = currChild->Next(); currChild; currChild = currChild->Next())
currChild->ClearAttachment();
}
void StyleBuilderFunctions::applyInheritCSSPropertyBackgroundAttachment(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessBackgroundLayers();
FillLayer* prevChild = 0;
const FillLayer* currParent = &state.ParentStyle()->BackgroundLayers();
while (currParent && currParent->IsAttachmentSet()) {
if (!currChild)
currChild = prevChild->EnsureNext();
currChild->SetAttachment(currParent->Attachment());
prevChild = currChild;
currChild = prevChild->Next();
currParent = currParent->Next();
}
while (currChild) {
// Reset any remaining layers to not have the property set.
currChild->ClearAttachment();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyValueCSSPropertyBackgroundAttachment(StyleResolverState& state, const CSSValue& value) {
FillLayer* currChild = &state.Style()->AccessBackgroundLayers();
FillLayer* prevChild = 0;
if (value.IsValueList() && !value.IsImageSetValue()) {
// Walk each value and put it into a layer, creating new layers as needed.
const CSSValueList& valueList = ToCSSValueList(value);
for (unsigned int i = 0; i < valueList.length(); i++) {
if (!currChild)
currChild = prevChild->EnsureNext();
CSSToStyleMap::MapFillAttachment(state, currChild, valueList.Item(i));
prevChild = currChild;
currChild = currChild->Next();
}
} else {
CSSToStyleMap::MapFillAttachment(state, currChild, value);
currChild = currChild->Next();
}
while (currChild) {
// Reset all remaining layers to not have the property set.
currChild->ClearAttachment();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyInitialCSSPropertyBackgroundBlendMode(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessBackgroundLayers();
currChild->SetBlendMode(FillLayer::InitialFillBlendMode(kBackgroundFillLayer));
for (currChild = currChild->Next(); currChild; currChild = currChild->Next())
currChild->ClearBlendMode();
}
void StyleBuilderFunctions::applyInheritCSSPropertyBackgroundBlendMode(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessBackgroundLayers();
FillLayer* prevChild = 0;
const FillLayer* currParent = &state.ParentStyle()->BackgroundLayers();
while (currParent && currParent->IsBlendModeSet()) {
if (!currChild)
currChild = prevChild->EnsureNext();
currChild->SetBlendMode(currParent->BlendMode());
prevChild = currChild;
currChild = prevChild->Next();
currParent = currParent->Next();
}
while (currChild) {
// Reset any remaining layers to not have the property set.
currChild->ClearBlendMode();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyValueCSSPropertyBackgroundBlendMode(StyleResolverState& state, const CSSValue& value) {
FillLayer* currChild = &state.Style()->AccessBackgroundLayers();
FillLayer* prevChild = 0;
if (value.IsValueList() && !value.IsImageSetValue()) {
// Walk each value and put it into a layer, creating new layers as needed.
const CSSValueList& valueList = ToCSSValueList(value);
for (unsigned int i = 0; i < valueList.length(); i++) {
if (!currChild)
currChild = prevChild->EnsureNext();
CSSToStyleMap::MapFillBlendMode(state, currChild, valueList.Item(i));
prevChild = currChild;
currChild = currChild->Next();
}
} else {
CSSToStyleMap::MapFillBlendMode(state, currChild, value);
currChild = currChild->Next();
}
while (currChild) {
// Reset all remaining layers to not have the property set.
currChild->ClearBlendMode();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyInitialCSSPropertyBackgroundClip(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessBackgroundLayers();
currChild->SetClip(FillLayer::InitialFillClip(kBackgroundFillLayer));
for (currChild = currChild->Next(); currChild; currChild = currChild->Next())
currChild->ClearClip();
}
void StyleBuilderFunctions::applyInheritCSSPropertyBackgroundClip(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessBackgroundLayers();
FillLayer* prevChild = 0;
const FillLayer* currParent = &state.ParentStyle()->BackgroundLayers();
while (currParent && currParent->IsClipSet()) {
if (!currChild)
currChild = prevChild->EnsureNext();
currChild->SetClip(currParent->Clip());
prevChild = currChild;
currChild = prevChild->Next();
currParent = currParent->Next();
}
while (currChild) {
// Reset any remaining layers to not have the property set.
currChild->ClearClip();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyValueCSSPropertyBackgroundClip(StyleResolverState& state, const CSSValue& value) {
FillLayer* currChild = &state.Style()->AccessBackgroundLayers();
FillLayer* prevChild = 0;
if (value.IsValueList() && !value.IsImageSetValue()) {
// Walk each value and put it into a layer, creating new layers as needed.
const CSSValueList& valueList = ToCSSValueList(value);
for (unsigned int i = 0; i < valueList.length(); i++) {
if (!currChild)
currChild = prevChild->EnsureNext();
CSSToStyleMap::MapFillClip(state, currChild, valueList.Item(i));
prevChild = currChild;
currChild = currChild->Next();
}
} else {
CSSToStyleMap::MapFillClip(state, currChild, value);
currChild = currChild->Next();
}
while (currChild) {
// Reset all remaining layers to not have the property set.
currChild->ClearClip();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyInitialCSSPropertyBackgroundImage(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessBackgroundLayers();
currChild->SetImage(FillLayer::InitialFillImage(kBackgroundFillLayer));
for (currChild = currChild->Next(); currChild; currChild = currChild->Next())
currChild->ClearImage();
}
void StyleBuilderFunctions::applyInheritCSSPropertyBackgroundImage(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessBackgroundLayers();
FillLayer* prevChild = 0;
const FillLayer* currParent = &state.ParentStyle()->BackgroundLayers();
while (currParent && currParent->IsImageSet()) {
if (!currChild)
currChild = prevChild->EnsureNext();
currChild->SetImage(currParent->GetImage());
prevChild = currChild;
currChild = prevChild->Next();
currParent = currParent->Next();
}
while (currChild) {
// Reset any remaining layers to not have the property set.
currChild->ClearImage();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyValueCSSPropertyBackgroundImage(StyleResolverState& state, const CSSValue& value) {
FillLayer* currChild = &state.Style()->AccessBackgroundLayers();
FillLayer* prevChild = 0;
if (value.IsValueList() && !value.IsImageSetValue()) {
// Walk each value and put it into a layer, creating new layers as needed.
const CSSValueList& valueList = ToCSSValueList(value);
for (unsigned int i = 0; i < valueList.length(); i++) {
if (!currChild)
currChild = prevChild->EnsureNext();
CSSToStyleMap::MapFillImage(state, currChild, valueList.Item(i));
prevChild = currChild;
currChild = currChild->Next();
}
} else {
CSSToStyleMap::MapFillImage(state, currChild, value);
currChild = currChild->Next();
}
while (currChild) {
// Reset all remaining layers to not have the property set.
currChild->ClearImage();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyInitialCSSPropertyBackgroundOrigin(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessBackgroundLayers();
currChild->SetOrigin(FillLayer::InitialFillOrigin(kBackgroundFillLayer));
for (currChild = currChild->Next(); currChild; currChild = currChild->Next())
currChild->ClearOrigin();
}
void StyleBuilderFunctions::applyInheritCSSPropertyBackgroundOrigin(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessBackgroundLayers();
FillLayer* prevChild = 0;
const FillLayer* currParent = &state.ParentStyle()->BackgroundLayers();
while (currParent && currParent->IsOriginSet()) {
if (!currChild)
currChild = prevChild->EnsureNext();
currChild->SetOrigin(currParent->Origin());
prevChild = currChild;
currChild = prevChild->Next();
currParent = currParent->Next();
}
while (currChild) {
// Reset any remaining layers to not have the property set.
currChild->ClearOrigin();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyValueCSSPropertyBackgroundOrigin(StyleResolverState& state, const CSSValue& value) {
FillLayer* currChild = &state.Style()->AccessBackgroundLayers();
FillLayer* prevChild = 0;
if (value.IsValueList() && !value.IsImageSetValue()) {
// Walk each value and put it into a layer, creating new layers as needed.
const CSSValueList& valueList = ToCSSValueList(value);
for (unsigned int i = 0; i < valueList.length(); i++) {
if (!currChild)
currChild = prevChild->EnsureNext();
CSSToStyleMap::MapFillOrigin(state, currChild, valueList.Item(i));
prevChild = currChild;
currChild = currChild->Next();
}
} else {
CSSToStyleMap::MapFillOrigin(state, currChild, value);
currChild = currChild->Next();
}
while (currChild) {
// Reset all remaining layers to not have the property set.
currChild->ClearOrigin();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyInitialCSSPropertyBackgroundPositionX(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessBackgroundLayers();
currChild->SetXPosition(FillLayer::InitialFillXPosition(kBackgroundFillLayer));
for (currChild = currChild->Next(); currChild; currChild = currChild->Next())
currChild->ClearXPosition();
}
void StyleBuilderFunctions::applyInheritCSSPropertyBackgroundPositionX(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessBackgroundLayers();
FillLayer* prevChild = 0;
const FillLayer* currParent = &state.ParentStyle()->BackgroundLayers();
while (currParent && currParent->IsXPositionSet()) {
if (!currChild)
currChild = prevChild->EnsureNext();
currChild->SetXPosition(currParent->XPosition());
prevChild = currChild;
currChild = prevChild->Next();
currParent = currParent->Next();
}
while (currChild) {
// Reset any remaining layers to not have the property set.
currChild->ClearXPosition();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyValueCSSPropertyBackgroundPositionX(StyleResolverState& state, const CSSValue& value) {
FillLayer* currChild = &state.Style()->AccessBackgroundLayers();
FillLayer* prevChild = 0;
if (value.IsValueList() && !value.IsImageSetValue()) {
// Walk each value and put it into a layer, creating new layers as needed.
const CSSValueList& valueList = ToCSSValueList(value);
for (unsigned int i = 0; i < valueList.length(); i++) {
if (!currChild)
currChild = prevChild->EnsureNext();
CSSToStyleMap::MapFillXPosition(state, currChild, valueList.Item(i));
prevChild = currChild;
currChild = currChild->Next();
}
} else {
CSSToStyleMap::MapFillXPosition(state, currChild, value);
currChild = currChild->Next();
}
while (currChild) {
// Reset all remaining layers to not have the property set.
currChild->ClearXPosition();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyInitialCSSPropertyBackgroundPositionY(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessBackgroundLayers();
currChild->SetYPosition(FillLayer::InitialFillYPosition(kBackgroundFillLayer));
for (currChild = currChild->Next(); currChild; currChild = currChild->Next())
currChild->ClearYPosition();
}
void StyleBuilderFunctions::applyInheritCSSPropertyBackgroundPositionY(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessBackgroundLayers();
FillLayer* prevChild = 0;
const FillLayer* currParent = &state.ParentStyle()->BackgroundLayers();
while (currParent && currParent->IsYPositionSet()) {
if (!currChild)
currChild = prevChild->EnsureNext();
currChild->SetYPosition(currParent->YPosition());
prevChild = currChild;
currChild = prevChild->Next();
currParent = currParent->Next();
}
while (currChild) {
// Reset any remaining layers to not have the property set.
currChild->ClearYPosition();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyValueCSSPropertyBackgroundPositionY(StyleResolverState& state, const CSSValue& value) {
FillLayer* currChild = &state.Style()->AccessBackgroundLayers();
FillLayer* prevChild = 0;
if (value.IsValueList() && !value.IsImageSetValue()) {
// Walk each value and put it into a layer, creating new layers as needed.
const CSSValueList& valueList = ToCSSValueList(value);
for (unsigned int i = 0; i < valueList.length(); i++) {
if (!currChild)
currChild = prevChild->EnsureNext();
CSSToStyleMap::MapFillYPosition(state, currChild, valueList.Item(i));
prevChild = currChild;
currChild = currChild->Next();
}
} else {
CSSToStyleMap::MapFillYPosition(state, currChild, value);
currChild = currChild->Next();
}
while (currChild) {
// Reset all remaining layers to not have the property set.
currChild->ClearYPosition();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyInitialCSSPropertyBackgroundRepeatX(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessBackgroundLayers();
currChild->SetRepeatX(FillLayer::InitialFillRepeatX(kBackgroundFillLayer));
for (currChild = currChild->Next(); currChild; currChild = currChild->Next())
currChild->ClearRepeatX();
}
void StyleBuilderFunctions::applyInheritCSSPropertyBackgroundRepeatX(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessBackgroundLayers();
FillLayer* prevChild = 0;
const FillLayer* currParent = &state.ParentStyle()->BackgroundLayers();
while (currParent && currParent->IsRepeatXSet()) {
if (!currChild)
currChild = prevChild->EnsureNext();
currChild->SetRepeatX(currParent->RepeatX());
prevChild = currChild;
currChild = prevChild->Next();
currParent = currParent->Next();
}
while (currChild) {
// Reset any remaining layers to not have the property set.
currChild->ClearRepeatX();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyValueCSSPropertyBackgroundRepeatX(StyleResolverState& state, const CSSValue& value) {
FillLayer* currChild = &state.Style()->AccessBackgroundLayers();
FillLayer* prevChild = 0;
if (value.IsValueList() && !value.IsImageSetValue()) {
// Walk each value and put it into a layer, creating new layers as needed.
const CSSValueList& valueList = ToCSSValueList(value);
for (unsigned int i = 0; i < valueList.length(); i++) {
if (!currChild)
currChild = prevChild->EnsureNext();
CSSToStyleMap::MapFillRepeatX(state, currChild, valueList.Item(i));
prevChild = currChild;
currChild = currChild->Next();
}
} else {
CSSToStyleMap::MapFillRepeatX(state, currChild, value);
currChild = currChild->Next();
}
while (currChild) {
// Reset all remaining layers to not have the property set.
currChild->ClearRepeatX();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyInitialCSSPropertyBackgroundRepeatY(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessBackgroundLayers();
currChild->SetRepeatY(FillLayer::InitialFillRepeatY(kBackgroundFillLayer));
for (currChild = currChild->Next(); currChild; currChild = currChild->Next())
currChild->ClearRepeatY();
}
void StyleBuilderFunctions::applyInheritCSSPropertyBackgroundRepeatY(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessBackgroundLayers();
FillLayer* prevChild = 0;
const FillLayer* currParent = &state.ParentStyle()->BackgroundLayers();
while (currParent && currParent->IsRepeatYSet()) {
if (!currChild)
currChild = prevChild->EnsureNext();
currChild->SetRepeatY(currParent->RepeatY());
prevChild = currChild;
currChild = prevChild->Next();
currParent = currParent->Next();
}
while (currChild) {
// Reset any remaining layers to not have the property set.
currChild->ClearRepeatY();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyValueCSSPropertyBackgroundRepeatY(StyleResolverState& state, const CSSValue& value) {
FillLayer* currChild = &state.Style()->AccessBackgroundLayers();
FillLayer* prevChild = 0;
if (value.IsValueList() && !value.IsImageSetValue()) {
// Walk each value and put it into a layer, creating new layers as needed.
const CSSValueList& valueList = ToCSSValueList(value);
for (unsigned int i = 0; i < valueList.length(); i++) {
if (!currChild)
currChild = prevChild->EnsureNext();
CSSToStyleMap::MapFillRepeatY(state, currChild, valueList.Item(i));
prevChild = currChild;
currChild = currChild->Next();
}
} else {
CSSToStyleMap::MapFillRepeatY(state, currChild, value);
currChild = currChild->Next();
}
while (currChild) {
// Reset all remaining layers to not have the property set.
currChild->ClearRepeatY();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyInitialCSSPropertyBackgroundSize(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessBackgroundLayers();
currChild->SetSize(FillLayer::InitialFillSize(kBackgroundFillLayer));
for (currChild = currChild->Next(); currChild; currChild = currChild->Next())
currChild->ClearSize();
}
void StyleBuilderFunctions::applyInheritCSSPropertyBackgroundSize(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessBackgroundLayers();
FillLayer* prevChild = 0;
const FillLayer* currParent = &state.ParentStyle()->BackgroundLayers();
while (currParent && currParent->IsSizeSet()) {
if (!currChild)
currChild = prevChild->EnsureNext();
currChild->SetSize(currParent->size());
prevChild = currChild;
currChild = prevChild->Next();
currParent = currParent->Next();
}
while (currChild) {
// Reset any remaining layers to not have the property set.
currChild->ClearSize();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyValueCSSPropertyBackgroundSize(StyleResolverState& state, const CSSValue& value) {
FillLayer* currChild = &state.Style()->AccessBackgroundLayers();
FillLayer* prevChild = 0;
if (value.IsValueList() && !value.IsImageSetValue()) {
// Walk each value and put it into a layer, creating new layers as needed.
const CSSValueList& valueList = ToCSSValueList(value);
for (unsigned int i = 0; i < valueList.length(); i++) {
if (!currChild)
currChild = prevChild->EnsureNext();
CSSToStyleMap::MapFillSize(state, currChild, valueList.Item(i));
prevChild = currChild;
currChild = currChild->Next();
}
} else {
CSSToStyleMap::MapFillSize(state, currChild, value);
currChild = currChild->Next();
}
while (currChild) {
// Reset all remaining layers to not have the property set.
currChild->ClearSize();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyInitialCSSPropertyMaskSourceType(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessMaskLayers();
currChild->SetMaskSourceType(FillLayer::InitialFillMaskSourceType(kMaskFillLayer));
for (currChild = currChild->Next(); currChild; currChild = currChild->Next())
currChild->ClearMaskSourceType();
}
void StyleBuilderFunctions::applyInheritCSSPropertyMaskSourceType(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessMaskLayers();
FillLayer* prevChild = 0;
const FillLayer* currParent = &state.ParentStyle()->MaskLayers();
while (currParent && currParent->IsMaskSourceTypeSet()) {
if (!currChild)
currChild = prevChild->EnsureNext();
currChild->SetMaskSourceType(currParent->MaskSourceType());
prevChild = currChild;
currChild = prevChild->Next();
currParent = currParent->Next();
}
while (currChild) {
// Reset any remaining layers to not have the property set.
currChild->ClearMaskSourceType();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyValueCSSPropertyMaskSourceType(StyleResolverState& state, const CSSValue& value) {
FillLayer* currChild = &state.Style()->AccessMaskLayers();
FillLayer* prevChild = 0;
if (value.IsValueList() && !value.IsImageSetValue()) {
// Walk each value and put it into a layer, creating new layers as needed.
const CSSValueList& valueList = ToCSSValueList(value);
for (unsigned int i = 0; i < valueList.length(); i++) {
if (!currChild)
currChild = prevChild->EnsureNext();
CSSToStyleMap::MapFillMaskSourceType(state, currChild, valueList.Item(i));
prevChild = currChild;
currChild = currChild->Next();
}
} else {
CSSToStyleMap::MapFillMaskSourceType(state, currChild, value);
currChild = currChild->Next();
}
while (currChild) {
// Reset all remaining layers to not have the property set.
currChild->ClearMaskSourceType();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitMaskClip(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessMaskLayers();
currChild->SetClip(FillLayer::InitialFillClip(kMaskFillLayer));
for (currChild = currChild->Next(); currChild; currChild = currChild->Next())
currChild->ClearClip();
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitMaskClip(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessMaskLayers();
FillLayer* prevChild = 0;
const FillLayer* currParent = &state.ParentStyle()->MaskLayers();
while (currParent && currParent->IsClipSet()) {
if (!currChild)
currChild = prevChild->EnsureNext();
currChild->SetClip(currParent->Clip());
prevChild = currChild;
currChild = prevChild->Next();
currParent = currParent->Next();
}
while (currChild) {
// Reset any remaining layers to not have the property set.
currChild->ClearClip();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitMaskClip(StyleResolverState& state, const CSSValue& value) {
FillLayer* currChild = &state.Style()->AccessMaskLayers();
FillLayer* prevChild = 0;
if (value.IsValueList() && !value.IsImageSetValue()) {
// Walk each value and put it into a layer, creating new layers as needed.
const CSSValueList& valueList = ToCSSValueList(value);
for (unsigned int i = 0; i < valueList.length(); i++) {
if (!currChild)
currChild = prevChild->EnsureNext();
CSSToStyleMap::MapFillClip(state, currChild, valueList.Item(i));
prevChild = currChild;
currChild = currChild->Next();
}
} else {
CSSToStyleMap::MapFillClip(state, currChild, value);
currChild = currChild->Next();
}
while (currChild) {
// Reset all remaining layers to not have the property set.
currChild->ClearClip();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitMaskComposite(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessMaskLayers();
currChild->SetComposite(FillLayer::InitialFillComposite(kMaskFillLayer));
for (currChild = currChild->Next(); currChild; currChild = currChild->Next())
currChild->ClearComposite();
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitMaskComposite(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessMaskLayers();
FillLayer* prevChild = 0;
const FillLayer* currParent = &state.ParentStyle()->MaskLayers();
while (currParent && currParent->IsCompositeSet()) {
if (!currChild)
currChild = prevChild->EnsureNext();
currChild->SetComposite(currParent->Composite());
prevChild = currChild;
currChild = prevChild->Next();
currParent = currParent->Next();
}
while (currChild) {
// Reset any remaining layers to not have the property set.
currChild->ClearComposite();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitMaskComposite(StyleResolverState& state, const CSSValue& value) {
FillLayer* currChild = &state.Style()->AccessMaskLayers();
FillLayer* prevChild = 0;
if (value.IsValueList() && !value.IsImageSetValue()) {
// Walk each value and put it into a layer, creating new layers as needed.
const CSSValueList& valueList = ToCSSValueList(value);
for (unsigned int i = 0; i < valueList.length(); i++) {
if (!currChild)
currChild = prevChild->EnsureNext();
CSSToStyleMap::MapFillComposite(state, currChild, valueList.Item(i));
prevChild = currChild;
currChild = currChild->Next();
}
} else {
CSSToStyleMap::MapFillComposite(state, currChild, value);
currChild = currChild->Next();
}
while (currChild) {
// Reset all remaining layers to not have the property set.
currChild->ClearComposite();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitMaskImage(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessMaskLayers();
currChild->SetImage(FillLayer::InitialFillImage(kMaskFillLayer));
for (currChild = currChild->Next(); currChild; currChild = currChild->Next())
currChild->ClearImage();
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitMaskImage(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessMaskLayers();
FillLayer* prevChild = 0;
const FillLayer* currParent = &state.ParentStyle()->MaskLayers();
while (currParent && currParent->IsImageSet()) {
if (!currChild)
currChild = prevChild->EnsureNext();
currChild->SetImage(currParent->GetImage());
prevChild = currChild;
currChild = prevChild->Next();
currParent = currParent->Next();
}
while (currChild) {
// Reset any remaining layers to not have the property set.
currChild->ClearImage();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitMaskImage(StyleResolverState& state, const CSSValue& value) {
FillLayer* currChild = &state.Style()->AccessMaskLayers();
FillLayer* prevChild = 0;
if (value.IsValueList() && !value.IsImageSetValue()) {
// Walk each value and put it into a layer, creating new layers as needed.
const CSSValueList& valueList = ToCSSValueList(value);
for (unsigned int i = 0; i < valueList.length(); i++) {
if (!currChild)
currChild = prevChild->EnsureNext();
CSSToStyleMap::MapFillImage(state, currChild, valueList.Item(i));
prevChild = currChild;
currChild = currChild->Next();
}
} else {
CSSToStyleMap::MapFillImage(state, currChild, value);
currChild = currChild->Next();
}
while (currChild) {
// Reset all remaining layers to not have the property set.
currChild->ClearImage();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitMaskOrigin(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessMaskLayers();
currChild->SetOrigin(FillLayer::InitialFillOrigin(kMaskFillLayer));
for (currChild = currChild->Next(); currChild; currChild = currChild->Next())
currChild->ClearOrigin();
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitMaskOrigin(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessMaskLayers();
FillLayer* prevChild = 0;
const FillLayer* currParent = &state.ParentStyle()->MaskLayers();
while (currParent && currParent->IsOriginSet()) {
if (!currChild)
currChild = prevChild->EnsureNext();
currChild->SetOrigin(currParent->Origin());
prevChild = currChild;
currChild = prevChild->Next();
currParent = currParent->Next();
}
while (currChild) {
// Reset any remaining layers to not have the property set.
currChild->ClearOrigin();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitMaskOrigin(StyleResolverState& state, const CSSValue& value) {
FillLayer* currChild = &state.Style()->AccessMaskLayers();
FillLayer* prevChild = 0;
if (value.IsValueList() && !value.IsImageSetValue()) {
// Walk each value and put it into a layer, creating new layers as needed.
const CSSValueList& valueList = ToCSSValueList(value);
for (unsigned int i = 0; i < valueList.length(); i++) {
if (!currChild)
currChild = prevChild->EnsureNext();
CSSToStyleMap::MapFillOrigin(state, currChild, valueList.Item(i));
prevChild = currChild;
currChild = currChild->Next();
}
} else {
CSSToStyleMap::MapFillOrigin(state, currChild, value);
currChild = currChild->Next();
}
while (currChild) {
// Reset all remaining layers to not have the property set.
currChild->ClearOrigin();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitMaskPositionX(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessMaskLayers();
currChild->SetXPosition(FillLayer::InitialFillXPosition(kMaskFillLayer));
for (currChild = currChild->Next(); currChild; currChild = currChild->Next())
currChild->ClearXPosition();
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitMaskPositionX(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessMaskLayers();
FillLayer* prevChild = 0;
const FillLayer* currParent = &state.ParentStyle()->MaskLayers();
while (currParent && currParent->IsXPositionSet()) {
if (!currChild)
currChild = prevChild->EnsureNext();
currChild->SetXPosition(currParent->XPosition());
prevChild = currChild;
currChild = prevChild->Next();
currParent = currParent->Next();
}
while (currChild) {
// Reset any remaining layers to not have the property set.
currChild->ClearXPosition();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitMaskPositionX(StyleResolverState& state, const CSSValue& value) {
FillLayer* currChild = &state.Style()->AccessMaskLayers();
FillLayer* prevChild = 0;
if (value.IsValueList() && !value.IsImageSetValue()) {
// Walk each value and put it into a layer, creating new layers as needed.
const CSSValueList& valueList = ToCSSValueList(value);
for (unsigned int i = 0; i < valueList.length(); i++) {
if (!currChild)
currChild = prevChild->EnsureNext();
CSSToStyleMap::MapFillXPosition(state, currChild, valueList.Item(i));
prevChild = currChild;
currChild = currChild->Next();
}
} else {
CSSToStyleMap::MapFillXPosition(state, currChild, value);
currChild = currChild->Next();
}
while (currChild) {
// Reset all remaining layers to not have the property set.
currChild->ClearXPosition();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitMaskPositionY(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessMaskLayers();
currChild->SetYPosition(FillLayer::InitialFillYPosition(kMaskFillLayer));
for (currChild = currChild->Next(); currChild; currChild = currChild->Next())
currChild->ClearYPosition();
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitMaskPositionY(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessMaskLayers();
FillLayer* prevChild = 0;
const FillLayer* currParent = &state.ParentStyle()->MaskLayers();
while (currParent && currParent->IsYPositionSet()) {
if (!currChild)
currChild = prevChild->EnsureNext();
currChild->SetYPosition(currParent->YPosition());
prevChild = currChild;
currChild = prevChild->Next();
currParent = currParent->Next();
}
while (currChild) {
// Reset any remaining layers to not have the property set.
currChild->ClearYPosition();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitMaskPositionY(StyleResolverState& state, const CSSValue& value) {
FillLayer* currChild = &state.Style()->AccessMaskLayers();
FillLayer* prevChild = 0;
if (value.IsValueList() && !value.IsImageSetValue()) {
// Walk each value and put it into a layer, creating new layers as needed.
const CSSValueList& valueList = ToCSSValueList(value);
for (unsigned int i = 0; i < valueList.length(); i++) {
if (!currChild)
currChild = prevChild->EnsureNext();
CSSToStyleMap::MapFillYPosition(state, currChild, valueList.Item(i));
prevChild = currChild;
currChild = currChild->Next();
}
} else {
CSSToStyleMap::MapFillYPosition(state, currChild, value);
currChild = currChild->Next();
}
while (currChild) {
// Reset all remaining layers to not have the property set.
currChild->ClearYPosition();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitMaskRepeatX(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessMaskLayers();
currChild->SetRepeatX(FillLayer::InitialFillRepeatX(kMaskFillLayer));
for (currChild = currChild->Next(); currChild; currChild = currChild->Next())
currChild->ClearRepeatX();
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitMaskRepeatX(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessMaskLayers();
FillLayer* prevChild = 0;
const FillLayer* currParent = &state.ParentStyle()->MaskLayers();
while (currParent && currParent->IsRepeatXSet()) {
if (!currChild)
currChild = prevChild->EnsureNext();
currChild->SetRepeatX(currParent->RepeatX());
prevChild = currChild;
currChild = prevChild->Next();
currParent = currParent->Next();
}
while (currChild) {
// Reset any remaining layers to not have the property set.
currChild->ClearRepeatX();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitMaskRepeatX(StyleResolverState& state, const CSSValue& value) {
FillLayer* currChild = &state.Style()->AccessMaskLayers();
FillLayer* prevChild = 0;
if (value.IsValueList() && !value.IsImageSetValue()) {
// Walk each value and put it into a layer, creating new layers as needed.
const CSSValueList& valueList = ToCSSValueList(value);
for (unsigned int i = 0; i < valueList.length(); i++) {
if (!currChild)
currChild = prevChild->EnsureNext();
CSSToStyleMap::MapFillRepeatX(state, currChild, valueList.Item(i));
prevChild = currChild;
currChild = currChild->Next();
}
} else {
CSSToStyleMap::MapFillRepeatX(state, currChild, value);
currChild = currChild->Next();
}
while (currChild) {
// Reset all remaining layers to not have the property set.
currChild->ClearRepeatX();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitMaskRepeatY(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessMaskLayers();
currChild->SetRepeatY(FillLayer::InitialFillRepeatY(kMaskFillLayer));
for (currChild = currChild->Next(); currChild; currChild = currChild->Next())
currChild->ClearRepeatY();
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitMaskRepeatY(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessMaskLayers();
FillLayer* prevChild = 0;
const FillLayer* currParent = &state.ParentStyle()->MaskLayers();
while (currParent && currParent->IsRepeatYSet()) {
if (!currChild)
currChild = prevChild->EnsureNext();
currChild->SetRepeatY(currParent->RepeatY());
prevChild = currChild;
currChild = prevChild->Next();
currParent = currParent->Next();
}
while (currChild) {
// Reset any remaining layers to not have the property set.
currChild->ClearRepeatY();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitMaskRepeatY(StyleResolverState& state, const CSSValue& value) {
FillLayer* currChild = &state.Style()->AccessMaskLayers();
FillLayer* prevChild = 0;
if (value.IsValueList() && !value.IsImageSetValue()) {
// Walk each value and put it into a layer, creating new layers as needed.
const CSSValueList& valueList = ToCSSValueList(value);
for (unsigned int i = 0; i < valueList.length(); i++) {
if (!currChild)
currChild = prevChild->EnsureNext();
CSSToStyleMap::MapFillRepeatY(state, currChild, valueList.Item(i));
prevChild = currChild;
currChild = currChild->Next();
}
} else {
CSSToStyleMap::MapFillRepeatY(state, currChild, value);
currChild = currChild->Next();
}
while (currChild) {
// Reset all remaining layers to not have the property set.
currChild->ClearRepeatY();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyInitialCSSPropertyWebkitMaskSize(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessMaskLayers();
currChild->SetSize(FillLayer::InitialFillSize(kMaskFillLayer));
for (currChild = currChild->Next(); currChild; currChild = currChild->Next())
currChild->ClearSize();
}
void StyleBuilderFunctions::applyInheritCSSPropertyWebkitMaskSize(StyleResolverState& state) {
FillLayer* currChild = &state.Style()->AccessMaskLayers();
FillLayer* prevChild = 0;
const FillLayer* currParent = &state.ParentStyle()->MaskLayers();
while (currParent && currParent->IsSizeSet()) {
if (!currChild)
currChild = prevChild->EnsureNext();
currChild->SetSize(currParent->size());
prevChild = currChild;
currChild = prevChild->Next();
currParent = currParent->Next();
}
while (currChild) {
// Reset any remaining layers to not have the property set.
currChild->ClearSize();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyValueCSSPropertyWebkitMaskSize(StyleResolverState& state, const CSSValue& value) {
FillLayer* currChild = &state.Style()->AccessMaskLayers();
FillLayer* prevChild = 0;
if (value.IsValueList() && !value.IsImageSetValue()) {
// Walk each value and put it into a layer, creating new layers as needed.
const CSSValueList& valueList = ToCSSValueList(value);
for (unsigned int i = 0; i < valueList.length(); i++) {
if (!currChild)
currChild = prevChild->EnsureNext();
CSSToStyleMap::MapFillSize(state, currChild, valueList.Item(i));
prevChild = currChild;
currChild = currChild->Next();
}
} else {
CSSToStyleMap::MapFillSize(state, currChild, value);
currChild = currChild->Next();
}
while (currChild) {
// Reset all remaining layers to not have the property set.
currChild->ClearSize();
currChild = currChild->Next();
}
}
void StyleBuilderFunctions::applyInitialCSSPropertyGridTemplateColumns(StyleResolverState& state) {
state.Style()->SetGridTemplateColumns(ComputedStyle::InitialGridTemplateColumns());
state.Style()->SetNamedGridColumnLines(ComputedStyle::InitialNamedGridColumnLines());
state.Style()->SetOrderedNamedGridColumnLines(ComputedStyle::InitialOrderedNamedGridColumnLines());
}
void StyleBuilderFunctions::applyInheritCSSPropertyGridTemplateColumns(StyleResolverState& state) {
state.Style()->SetGridTemplateColumns(state.ParentStyle()->GridTemplateColumns());
state.Style()->SetNamedGridColumnLines(state.ParentStyle()->NamedGridColumnLines());
state.Style()->SetOrderedNamedGridColumnLines(state.ParentStyle()->OrderedNamedGridColumnLines());
}
void StyleBuilderFunctions::applyValueCSSPropertyGridTemplateColumns(StyleResolverState& state, const CSSValue& value) {
Vector<GridTrackSize> trackSizes;
Vector<GridTrackSize> autoRepeatTrackSizes;
NamedGridLinesMap namedGridLines;
OrderedNamedGridLines orderedNamedGridLines;
NamedGridLinesMap autoRepeatNamedGridLines;
OrderedNamedGridLines autoRepeatOrderedNamedGridLines;
AutoRepeatType autoRepeatType = ComputedStyle::InitialGridAutoRepeatType();
size_t autoRepeatInsertionPoint =
ComputedStyle::InitialGridAutoRepeatInsertionPoint();
StyleBuilderConverter::ConvertGridTrackList(
value, trackSizes, namedGridLines, orderedNamedGridLines,
autoRepeatTrackSizes, autoRepeatNamedGridLines,
autoRepeatOrderedNamedGridLines, autoRepeatInsertionPoint,
autoRepeatType, state);
const NamedGridAreaMap& namedGridAreas = state.Style()->NamedGridArea();
if (!namedGridAreas.IsEmpty()) {
StyleBuilderConverter::CreateImplicitNamedGridLinesFromGridArea(
namedGridAreas, namedGridLines, kForColumns);
}
state.Style()->SetGridTemplateColumns(trackSizes);
state.Style()->SetNamedGridColumnLines(namedGridLines);
state.Style()->SetOrderedNamedGridColumnLines(orderedNamedGridLines);
state.Style()->SetGridAutoRepeatColumns(autoRepeatTrackSizes);
state.Style()->SetGridAutoRepeatColumnsInsertionPoint(
autoRepeatInsertionPoint);
state.Style()->SetAutoRepeatNamedGridColumnLines(autoRepeatNamedGridLines);
state.Style()->SetAutoRepeatOrderedNamedGridColumnLines(
autoRepeatOrderedNamedGridLines);
state.Style()->SetGridAutoRepeatColumnsType(autoRepeatType);
}
void StyleBuilderFunctions::applyInitialCSSPropertyGridTemplateRows(StyleResolverState& state) {
state.Style()->SetGridTemplateRows(ComputedStyle::InitialGridTemplateRows());
state.Style()->SetNamedGridRowLines(ComputedStyle::InitialNamedGridRowLines());
state.Style()->SetOrderedNamedGridRowLines(ComputedStyle::InitialOrderedNamedGridRowLines());
}
void StyleBuilderFunctions::applyInheritCSSPropertyGridTemplateRows(StyleResolverState& state) {
state.Style()->SetGridTemplateRows(state.ParentStyle()->GridTemplateRows());
state.Style()->SetNamedGridRowLines(state.ParentStyle()->NamedGridRowLines());
state.Style()->SetOrderedNamedGridRowLines(state.ParentStyle()->OrderedNamedGridRowLines());
}
void StyleBuilderFunctions::applyValueCSSPropertyGridTemplateRows(StyleResolverState& state, const CSSValue& value) {
Vector<GridTrackSize> trackSizes;
Vector<GridTrackSize> autoRepeatTrackSizes;
NamedGridLinesMap namedGridLines;
OrderedNamedGridLines orderedNamedGridLines;
NamedGridLinesMap autoRepeatNamedGridLines;
OrderedNamedGridLines autoRepeatOrderedNamedGridLines;
AutoRepeatType autoRepeatType = ComputedStyle::InitialGridAutoRepeatType();
size_t autoRepeatInsertionPoint =
ComputedStyle::InitialGridAutoRepeatInsertionPoint();
StyleBuilderConverter::ConvertGridTrackList(
value, trackSizes, namedGridLines, orderedNamedGridLines,
autoRepeatTrackSizes, autoRepeatNamedGridLines,
autoRepeatOrderedNamedGridLines, autoRepeatInsertionPoint,
autoRepeatType, state);
const NamedGridAreaMap& namedGridAreas = state.Style()->NamedGridArea();
if (!namedGridAreas.IsEmpty()) {
StyleBuilderConverter::CreateImplicitNamedGridLinesFromGridArea(
namedGridAreas, namedGridLines, kForRows);
}
state.Style()->SetGridTemplateRows(trackSizes);
state.Style()->SetNamedGridRowLines(namedGridLines);
state.Style()->SetOrderedNamedGridRowLines(orderedNamedGridLines);
state.Style()->SetGridAutoRepeatRows(autoRepeatTrackSizes);
state.Style()->SetGridAutoRepeatRowsInsertionPoint(
autoRepeatInsertionPoint);
state.Style()->SetAutoRepeatNamedGridRowLines(autoRepeatNamedGridLines);
state.Style()->SetAutoRepeatOrderedNamedGridRowLines(
autoRepeatOrderedNamedGridLines);
state.Style()->SetGridAutoRepeatRowsType(autoRepeatType);
}
void StyleBuilderFunctions::applyInitialCSSPropertyFill(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetFillPaint(
SVGComputedStyle::InitialFillPaintType(),
SVGComputedStyle::InitialFillPaintColor(),
SVGComputedStyle::InitialFillPaintUri(),
state.ApplyPropertyToRegularStyle(),
state.ApplyPropertyToVisitedLinkStyle());
}
void StyleBuilderFunctions::applyInheritCSSPropertyFill(StyleResolverState& state) {
const SVGComputedStyle& svgParentStyle = state.ParentStyle()->SvgStyle();
state.Style()->AccessSVGStyle().SetFillPaint(
svgParentStyle.FillPaintType(),
svgParentStyle.FillPaintColor(),
svgParentStyle.FillPaintUri(),
state.ApplyPropertyToRegularStyle(),
state.ApplyPropertyToVisitedLinkStyle());
}
void StyleBuilderFunctions::applyValueCSSPropertyFill(StyleResolverState& state, const CSSValue& value) {
const CSSValue* localValue = &value;
String url;
if (value.IsValueList()) {
const CSSValueList& list = ToCSSValueList(value);
DCHECK_EQ(list.length(), 2U);
url = ToCSSURIValue(list.Item(0)).Value();
localValue = &list.Item(1);
}
Color color;
SVGPaintType paintType = SVG_PAINTTYPE_RGBCOLOR;
if (localValue->IsURIValue()) {
paintType = SVG_PAINTTYPE_URI;
url = ToCSSURIValue(localValue)->Value();
} else if (localValue->IsIdentifierValue() &&
ToCSSIdentifierValue(localValue)->GetValueID() == CSSValueNone) {
paintType = url.IsEmpty() ? SVG_PAINTTYPE_NONE : SVG_PAINTTYPE_URI_NONE;
} else if (localValue->IsIdentifierValue() &&
ToCSSIdentifierValue(localValue)->GetValueID() == CSSValueCurrentcolor) {
color = state.Style()->GetColor();
paintType = url.IsEmpty() ? SVG_PAINTTYPE_CURRENTCOLOR
: SVG_PAINTTYPE_URI_CURRENTCOLOR;
} else {
color = StyleBuilderConverter::ConvertColor(state, *localValue);
paintType = url.IsEmpty() ? SVG_PAINTTYPE_RGBCOLOR
: SVG_PAINTTYPE_URI_RGBCOLOR;
}
state.Style()->AccessSVGStyle().SetFillPaint(paintType, color, url,
state.ApplyPropertyToRegularStyle(),
state.ApplyPropertyToVisitedLinkStyle());
}
void StyleBuilderFunctions::applyInitialCSSPropertyStroke(StyleResolverState& state) {
state.Style()->AccessSVGStyle().SetStrokePaint(
SVGComputedStyle::InitialStrokePaintType(),
SVGComputedStyle::InitialStrokePaintColor(),
SVGComputedStyle::InitialStrokePaintUri(),
state.ApplyPropertyToRegularStyle(),
state.ApplyPropertyToVisitedLinkStyle());
}
void StyleBuilderFunctions::applyInheritCSSPropertyStroke(StyleResolverState& state) {
const SVGComputedStyle& svgParentStyle = state.ParentStyle()->SvgStyle();
state.Style()->AccessSVGStyle().SetStrokePaint(
svgParentStyle.StrokePaintType(),
svgParentStyle.StrokePaintColor(),
svgParentStyle.StrokePaintUri(),
state.ApplyPropertyToRegularStyle(),
state.ApplyPropertyToVisitedLinkStyle());
}
void StyleBuilderFunctions::applyValueCSSPropertyStroke(StyleResolverState& state, const CSSValue& value) {
const CSSValue* localValue = &value;
String url;
if (value.IsValueList()) {
const CSSValueList& list = ToCSSValueList(value);
DCHECK_EQ(list.length(), 2U);
url = ToCSSURIValue(list.Item(0)).Value();
localValue = &list.Item(1);
}
Color color;
SVGPaintType paintType = SVG_PAINTTYPE_RGBCOLOR;
if (localValue->IsURIValue()) {
paintType = SVG_PAINTTYPE_URI;
url = ToCSSURIValue(localValue)->Value();
} else if (localValue->IsIdentifierValue() &&
ToCSSIdentifierValue(localValue)->GetValueID() == CSSValueNone) {
paintType = url.IsEmpty() ? SVG_PAINTTYPE_NONE : SVG_PAINTTYPE_URI_NONE;
} else if (localValue->IsIdentifierValue() &&
ToCSSIdentifierValue(localValue)->GetValueID() == CSSValueCurrentcolor) {
color = state.Style()->GetColor();
paintType = url.IsEmpty() ? SVG_PAINTTYPE_CURRENTCOLOR
: SVG_PAINTTYPE_URI_CURRENTCOLOR;
} else {
color = StyleBuilderConverter::ConvertColor(state, *localValue);
paintType = url.IsEmpty() ? SVG_PAINTTYPE_RGBCOLOR
: SVG_PAINTTYPE_URI_RGBCOLOR;
}
state.Style()->AccessSVGStyle().SetStrokePaint(paintType, color, url,
state.ApplyPropertyToRegularStyle(),
state.ApplyPropertyToVisitedLinkStyle());
}
} // namespace blink
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment