diff options
author | Sam Atkins <atkinssj@serenityos.org> | 2021-09-22 21:14:57 +0100 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2021-09-23 17:47:40 +0200 |
commit | 5213760e4bfdf3ec2c3016a2f9aede08c9fd7ad6 (patch) | |
tree | 9568d0ccbf0dceb28c6a1d41b14bb5eb4f6c4d01 /Userland/Libraries | |
parent | 35eb8b0dc2856232c63f0daefddddeb4d30a9d7b (diff) | |
download | serenity-5213760e4bfdf3ec2c3016a2f9aede08c9fd7ad6.zip |
LibWeb: Use property_accepts_value() for background parsing
We also get rid of `is_background_{image,repeat}()` since they're no
longer needed. :^)
Diffstat (limited to 'Userland/Libraries')
-rw-r--r-- | Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp | 38 |
1 files changed, 7 insertions, 31 deletions
diff --git a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp index 7e476234dc..0d8ab819d2 100644 --- a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp +++ b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp @@ -1733,30 +1733,6 @@ RefPtr<StyleValue> Parser::parse_image_value(ParsingContext const& context, Styl return {}; } -static inline bool is_background_repeat(StyleValue const& value) -{ - switch (value.to_identifier()) { - case ValueID::NoRepeat: - case ValueID::Repeat: - case ValueID::RepeatX: - case ValueID::RepeatY: - case ValueID::Round: - case ValueID::Space: - return true; - default: - return false; - } -} - -static inline bool is_background_image(StyleValue const& value) -{ - if (value.is_image()) - return true; - if (value.to_identifier() == ValueID::None) - return true; - return false; -} - RefPtr<StyleValue> Parser::parse_background_value(ParsingContext const& context, Vector<StyleComponentValueRule> const& component_values) { RefPtr<StyleValue> background_color; @@ -1783,19 +1759,19 @@ RefPtr<StyleValue> Parser::parse_background_value(ParsingContext const& context, return nullptr; } - if (value->is_color()) { + if (property_accepts_value(PropertyID::BackgroundColor, *value)) { if (background_color) return nullptr; background_color = value.release_nonnull(); continue; } - if (is_background_image(*value)) { + if (property_accepts_value(PropertyID::BackgroundImage, *value)) { if (background_image) return nullptr; background_image = value.release_nonnull(); continue; } - if (is_background_repeat(*value)) { + if (property_accepts_value(PropertyID::BackgroundRepeat, *value)) { if (repeat_x) return nullptr; @@ -1809,7 +1785,7 @@ RefPtr<StyleValue> Parser::parse_background_value(ParsingContext const& context, // Check following value, if it's also a repeat, set both. if (i + 1 < component_values.size()) { auto next_value = parse_css_value(context, component_values[i + 1]); - if (next_value && is_background_repeat(*next_value)) { + if (next_value && property_accepts_value(PropertyID::BackgroundRepeat, *next_value)) { ++i; repeat_x = value.release_nonnull(); repeat_y = next_value.release_nonnull(); @@ -1844,7 +1820,7 @@ RefPtr<StyleValue> Parser::parse_background_image_value(ParsingContext const& co if (!maybe_value) return nullptr; auto value = maybe_value.release_nonnull(); - if (is_background_image(*value)) + if (property_accepts_value(PropertyID::BackgroundImage, *value)) return value; return nullptr; } @@ -1866,7 +1842,7 @@ RefPtr<StyleValue> Parser::parse_background_repeat_value(ParsingContext const& c if (!maybe_value) return nullptr; auto value = maybe_value.release_nonnull(); - if (!is_background_repeat(*value)) + if (!property_accepts_value(PropertyID::BackgroundRepeat, *value)) return nullptr; if (is_directional_repeat(value)) { @@ -1886,7 +1862,7 @@ RefPtr<StyleValue> Parser::parse_background_repeat_value(ParsingContext const& c auto x_value = maybe_x_value.release_nonnull(); auto y_value = maybe_y_value.release_nonnull(); - if (!is_background_repeat(x_value) || !is_background_repeat(y_value)) + if (!property_accepts_value(PropertyID::BackgroundRepeat, x_value) || !property_accepts_value(PropertyID::BackgroundRepeat, y_value)) return nullptr; if (is_directional_repeat(x_value) || is_directional_repeat(y_value)) return nullptr; |