mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-10 13:00:29 +03:00
LibGfx: Make Color::from_string() case-insensitive
This function implements CSS color syntax, which is case-insensitive in HTML contexts. Making it insensitive here means not having to remember to do it in every user, (many of the HTML elements do not do this,) and means they don't have to produce a lowercase copy of the input string before passing it.
This commit is contained in:
parent
639c913e58
commit
094dc04695
Notes:
sideshowbarker
2024-07-18 01:55:46 +09:00
Author: https://github.com/AtkinsSJ Commit: https://github.com/SerenityOS/serenity/commit/094dc046956 Pull-request: https://github.com/SerenityOS/serenity/pull/10622
@ -30,7 +30,7 @@ String Color::to_string_without_alpha() const
|
||||
|
||||
static Optional<Color> parse_rgb_color(StringView const& string)
|
||||
{
|
||||
VERIFY(string.starts_with("rgb("));
|
||||
VERIFY(string.starts_with("rgb(", CaseSensitivity::CaseInsensitive));
|
||||
VERIFY(string.ends_with(")"));
|
||||
|
||||
auto substring = string.substring_view(4, string.length() - 5);
|
||||
@ -51,7 +51,7 @@ static Optional<Color> parse_rgb_color(StringView const& string)
|
||||
|
||||
static Optional<Color> parse_rgba_color(StringView const& string)
|
||||
{
|
||||
VERIFY(string.starts_with("rgba("));
|
||||
VERIFY(string.starts_with("rgba(", CaseSensitivity::CaseInsensitive));
|
||||
VERIFY(string.ends_with(")"));
|
||||
|
||||
auto substring = string.substring_view(5, string.length() - 6);
|
||||
@ -245,18 +245,18 @@ Optional<Color> Color::from_string(StringView const& string)
|
||||
{ 0x000000, nullptr }
|
||||
};
|
||||
|
||||
if (string == "transparent")
|
||||
if (string.equals_ignoring_case("transparent"))
|
||||
return Color::from_rgba(0x00000000);
|
||||
|
||||
for (size_t i = 0; !web_colors[i].name.is_null(); ++i) {
|
||||
if (string == web_colors[i].name)
|
||||
if (string.equals_ignoring_case(web_colors[i].name))
|
||||
return Color::from_rgb(web_colors[i].color);
|
||||
}
|
||||
|
||||
if (string.starts_with("rgb(") && string.ends_with(")"))
|
||||
if (string.starts_with("rgb(", CaseSensitivity::CaseInsensitive) && string.ends_with(")"))
|
||||
return parse_rgb_color(string);
|
||||
|
||||
if (string.starts_with("rgba(") && string.ends_with(")"))
|
||||
if (string.starts_with("rgba(", CaseSensitivity::CaseInsensitive) && string.ends_with(")"))
|
||||
return parse_rgba_color(string);
|
||||
|
||||
if (string[0] != '#')
|
||||
|
Loading…
Reference in New Issue
Block a user