1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-24 16:17:34 +00:00

LibWeb: Use initial values from Properties.json inside CSS Parser

This replaces several hard-coded initial values, with use of
`property_initial_value()`.
This commit is contained in:
Sam Atkins 2021-09-17 20:01:21 +01:00 committed by Andreas Kling
parent 4f81cb927a
commit 0053314dd1

View file

@ -1891,13 +1891,13 @@ RefPtr<StyleValue> Parser::parse_background_value(ParsingContext const& context,
} }
if (!background_color) if (!background_color)
background_color = ColorStyleValue::create(Color::Transparent); background_color = property_initial_value(PropertyID::BackgroundColor);
if (!background_image) if (!background_image)
background_image = IdentifierStyleValue::create(ValueID::None); background_image = property_initial_value(PropertyID::BackgroundImage);
if (!repeat_x) if (!repeat_x)
repeat_x = IdentifierStyleValue::create(ValueID::Repeat); repeat_x = property_initial_value(PropertyID::BackgroundRepeatX);
if (!repeat_y) if (!repeat_y)
repeat_y = IdentifierStyleValue::create(ValueID::Repeat); repeat_y = property_initial_value(PropertyID::BackgroundRepeatY);
return BackgroundStyleValue::create(background_color.release_nonnull(), background_image.release_nonnull(), repeat_x.release_nonnull(), repeat_y.release_nonnull()); return BackgroundStyleValue::create(background_color.release_nonnull(), background_image.release_nonnull(), repeat_x.release_nonnull(), repeat_y.release_nonnull());
} }
@ -2031,12 +2031,11 @@ RefPtr<StyleValue> Parser::parse_border_value(ParsingContext const& context, Vec
} }
if (!border_width) if (!border_width)
border_width = IdentifierStyleValue::create(ValueID::Medium); border_width = property_initial_value(PropertyID::BorderWidth);
if (!border_style) if (!border_style)
border_style = IdentifierStyleValue::create(ValueID::None); border_style = property_initial_value(PropertyID::BorderStyle);
// FIXME: Default should be `currentcolor` special value. https://www.w3.org/TR/css-color-4/#currentcolor-color
if (!border_color) if (!border_color)
border_color = ColorStyleValue::create(Gfx::Color::Black); border_color = property_initial_value(PropertyID::BorderColor);
return BorderStyleValue::create(border_width.release_nonnull(), border_style.release_nonnull(), border_color.release_nonnull()); return BorderStyleValue::create(border_width.release_nonnull(), border_style.release_nonnull(), border_color.release_nonnull());
} }
@ -2268,11 +2267,11 @@ RefPtr<StyleValue> Parser::parse_flex_value(ParsingContext const& context, Vecto
} }
if (!flex_grow) if (!flex_grow)
flex_grow = NumericStyleValue::create(0); flex_grow = property_initial_value(PropertyID::FlexGrow);
if (!flex_shrink) if (!flex_shrink)
flex_shrink = NumericStyleValue::create(1); flex_shrink = property_initial_value(PropertyID::FlexShrink);
if (!flex_basis) if (!flex_basis)
flex_basis = IdentifierStyleValue::create(ValueID::Auto); flex_basis = property_initial_value(PropertyID::FlexBasis);
return FlexStyleValue::create(flex_grow.release_nonnull(), flex_shrink.release_nonnull(), flex_basis.release_nonnull()); return FlexStyleValue::create(flex_grow.release_nonnull(), flex_shrink.release_nonnull(), flex_basis.release_nonnull());
} }
@ -2327,9 +2326,9 @@ RefPtr<StyleValue> Parser::parse_flex_flow_value(ParsingContext const& context,
} }
if (!flex_direction) if (!flex_direction)
flex_direction = IdentifierStyleValue::create(ValueID::Row); flex_direction = property_initial_value(PropertyID::FlexDirection);
if (!flex_wrap) if (!flex_wrap)
flex_wrap = IdentifierStyleValue::create(ValueID::Nowrap); flex_wrap = property_initial_value(PropertyID::FlexWrap);
return FlexFlowStyleValue::create(flex_direction.release_nonnull(), flex_wrap.release_nonnull()); return FlexFlowStyleValue::create(flex_direction.release_nonnull(), flex_wrap.release_nonnull());
} }
@ -2466,11 +2465,11 @@ RefPtr<StyleValue> Parser::parse_font_value(ParsingContext const& context, Vecto
return nullptr; return nullptr;
if (!font_style) if (!font_style)
font_style = IdentifierStyleValue::create(ValueID::Normal); font_style = property_initial_value(PropertyID::FontStyle);
if (!font_weight) if (!font_weight)
font_weight = IdentifierStyleValue::create(ValueID::Normal); font_weight = property_initial_value(PropertyID::FontWeight);
if (!line_height) if (!line_height)
line_height = IdentifierStyleValue::create(ValueID::Normal); line_height = property_initial_value(PropertyID::LineHeight);
return FontStyleValue::create(font_style.release_nonnull(), font_weight.release_nonnull(), font_size.release_nonnull(), line_height.release_nonnull(), font_families.release_nonnull()); return FontStyleValue::create(font_style.release_nonnull(), font_weight.release_nonnull(), font_size.release_nonnull(), line_height.release_nonnull(), font_families.release_nonnull());
} }
@ -2666,11 +2665,11 @@ RefPtr<StyleValue> Parser::parse_list_style_value(ParsingContext const& context,
} }
if (!list_position) if (!list_position)
list_position = IdentifierStyleValue::create(ValueID::Outside); list_position = property_initial_value(PropertyID::ListStylePosition);
if (!list_image) if (!list_image)
list_image = IdentifierStyleValue::create(ValueID::None); list_image = property_initial_value(PropertyID::ListStyleImage);
if (!list_type) if (!list_type)
list_type = IdentifierStyleValue::create(ValueID::Disc); list_type = property_initial_value(PropertyID::ListStyleType);
return ListStyleStyleValue::create(list_position.release_nonnull(), list_image.release_nonnull(), list_type.release_nonnull()); return ListStyleStyleValue::create(list_position.release_nonnull(), list_image.release_nonnull(), list_type.release_nonnull());
} }
@ -2780,12 +2779,11 @@ RefPtr<StyleValue> Parser::parse_text_decoration_value(ParsingContext const& con
} }
if (!decoration_line) if (!decoration_line)
decoration_line = IdentifierStyleValue::create(ValueID::None); decoration_line = property_initial_value(PropertyID::TextDecorationLine);
if (!decoration_style) if (!decoration_style)
decoration_style = IdentifierStyleValue::create(ValueID::Solid); decoration_style = property_initial_value(PropertyID::TextDecorationStyle);
// FIXME: Should default to 'currentcolor' special value: https://www.w3.org/TR/css-color-3/#currentcolor
if (!decoration_color) if (!decoration_color)
decoration_color = InitialStyleValue::the(); decoration_color = property_initial_value(PropertyID::TextDecorationColor);
return TextDecorationStyleValue::create(decoration_line.release_nonnull(), decoration_style.release_nonnull(), decoration_color.release_nonnull()); return TextDecorationStyleValue::create(decoration_line.release_nonnull(), decoration_style.release_nonnull(), decoration_color.release_nonnull());
} }