diff --git a/Libraries/LibWeb/CMakeLists.txt b/Libraries/LibWeb/CMakeLists.txt index 9f8b303f16c..62f8c2c9985 100644 --- a/Libraries/LibWeb/CMakeLists.txt +++ b/Libraries/LibWeb/CMakeLists.txt @@ -153,7 +153,7 @@ set(SOURCES CSS/StyleValues/ContentStyleValue.cpp CSS/StyleValues/CounterDefinitionsStyleValue.cpp CSS/StyleValues/CounterStyleValue.cpp - CSS/StyleValues/CSSColor.cpp + CSS/StyleValues/ColorFunctionStyleValue.cpp CSS/StyleValues/CSSColorValue.cpp CSS/StyleValues/CSSHSL.cpp CSS/StyleValues/CSSHWB.cpp diff --git a/Libraries/LibWeb/CSS/Parser/ValueParsing.cpp b/Libraries/LibWeb/CSS/Parser/ValueParsing.cpp index 4480460f8f5..7fa84481199 100644 --- a/Libraries/LibWeb/CSS/Parser/ValueParsing.cpp +++ b/Libraries/LibWeb/CSS/Parser/ValueParsing.cpp @@ -23,7 +23,6 @@ #include #include #include -#include #include #include #include @@ -32,6 +31,7 @@ #include #include #include +#include #include #include #include @@ -1654,7 +1654,7 @@ RefPtr Parser::parse_color_function(TokenStream& auto const& maybe_color_space = inner_tokens.consume_a_token(); inner_tokens.discard_whitespace(); - if (!any_of(CSSColor::s_supported_color_space, [&](auto supported) { return maybe_color_space.is_ident(supported); })) + if (!any_of(ColorFunctionStyleValue::s_supported_color_space, [&](auto supported) { return maybe_color_space.is_ident(supported); })) return {}; auto const& color_space = maybe_color_space.token().ident(); @@ -1685,7 +1685,7 @@ RefPtr Parser::parse_color_function(TokenStream& alpha = NumberStyleValue::create(1); transaction.commit(); - return CSSColor::create(color_space.to_ascii_lowercase(), + return ColorFunctionStyleValue::create(color_space.to_ascii_lowercase(), c1.release_nonnull(), c2.release_nonnull(), c3.release_nonnull(), diff --git a/Libraries/LibWeb/CSS/StyleValues/CSSColor.cpp b/Libraries/LibWeb/CSS/StyleValues/ColorFunctionStyleValue.cpp similarity index 87% rename from Libraries/LibWeb/CSS/StyleValues/CSSColor.cpp rename to Libraries/LibWeb/CSS/StyleValues/ColorFunctionStyleValue.cpp index ebcf252765b..3a5e03075b9 100644 --- a/Libraries/LibWeb/CSS/StyleValues/CSSColor.cpp +++ b/Libraries/LibWeb/CSS/StyleValues/ColorFunctionStyleValue.cpp @@ -4,7 +4,7 @@ * SPDX-License-Identifier: BSD-2-Clause */ -#include "CSSColor.h" +#include "ColorFunctionStyleValue.h" #include #include #include @@ -58,30 +58,30 @@ StringView string_view_from_color_type(CSSColorValue::ColorType color_type) } -ValueComparingNonnullRefPtr CSSColor::create(StringView color_space, ValueComparingNonnullRefPtr c1, ValueComparingNonnullRefPtr c2, ValueComparingNonnullRefPtr c3, ValueComparingRefPtr alpha) +ValueComparingNonnullRefPtr ColorFunctionStyleValue::create(StringView color_space, ValueComparingNonnullRefPtr c1, ValueComparingNonnullRefPtr c2, ValueComparingNonnullRefPtr c3, ValueComparingRefPtr alpha) { VERIFY(any_of(s_supported_color_space, [=](auto supported) { return color_space == supported; })); if (!alpha) alpha = NumberStyleValue::create(1); - return adopt_ref(*new (nothrow) CSSColor(color_type_from_string_view(color_space), move(c1), move(c2), move(c3), alpha.release_nonnull())); + return adopt_ref(*new (nothrow) ColorFunctionStyleValue(color_type_from_string_view(color_space), move(c1), move(c2), move(c3), alpha.release_nonnull())); VERIFY_NOT_REACHED(); } -bool CSSColor::equals(CSSStyleValue const& other) const +bool ColorFunctionStyleValue::equals(CSSStyleValue const& other) const { if (type() != other.type()) return false; auto const& other_color = other.as_color(); if (color_type() != other_color.color_type()) return false; - auto const& other_lab_like = as(other_color); + auto const& other_lab_like = as(other_color); return m_properties == other_lab_like.m_properties; } -CSSColor::Resolved CSSColor::resolve_properties() const +ColorFunctionStyleValue::Resolved ColorFunctionStyleValue::resolve_properties() const { float const c1 = resolve_with_reference_value(m_properties.channels[0], 1).value_or(0); float const c2 = resolve_with_reference_value(m_properties.channels[1], 1).value_or(0); @@ -91,7 +91,7 @@ CSSColor::Resolved CSSColor::resolve_properties() const } // https://www.w3.org/TR/css-color-4/#serializing-color-function-values -String CSSColor::to_string(SerializationMode mode) const +String ColorFunctionStyleValue::to_string(SerializationMode mode) const { if (mode == SerializationMode::Normal) { auto convert_percentage = [](ValueComparingNonnullRefPtr const& value) -> RemoveReference { @@ -144,7 +144,7 @@ String CSSColor::to_string(SerializationMode mode) const resolved.alpha)); } -Color CSSColor::to_color(Optional) const +Color ColorFunctionStyleValue::to_color(Optional) const { auto [channels, alpha_val] = resolve_properties(); auto c1 = channels[0]; diff --git a/Libraries/LibWeb/CSS/StyleValues/CSSColor.h b/Libraries/LibWeb/CSS/StyleValues/ColorFunctionStyleValue.h similarity index 65% rename from Libraries/LibWeb/CSS/StyleValues/CSSColor.h rename to Libraries/LibWeb/CSS/StyleValues/ColorFunctionStyleValue.h index e2b1d090468..0ff58ca9d5a 100644 --- a/Libraries/LibWeb/CSS/StyleValues/CSSColor.h +++ b/Libraries/LibWeb/CSS/StyleValues/ColorFunctionStyleValue.h @@ -11,11 +11,11 @@ namespace Web::CSS { // https://drafts.css-houdini.org/css-typed-om-1/#csscolor -class CSSColor final : public CSSColorValue { +class ColorFunctionStyleValue final : public CSSColorValue { public: - virtual ~CSSColor() override = default; + virtual ~ColorFunctionStyleValue() override = default; - static ValueComparingNonnullRefPtr create(StringView color_space, ValueComparingNonnullRefPtr c1, ValueComparingNonnullRefPtr c2, ValueComparingNonnullRefPtr c3, ValueComparingRefPtr alpha = {}); + static ValueComparingNonnullRefPtr create(StringView color_space, ValueComparingNonnullRefPtr c1, ValueComparingNonnullRefPtr c2, ValueComparingNonnullRefPtr c3, ValueComparingRefPtr alpha = {}); virtual bool equals(CSSStyleValue const&) const override; virtual Color to_color(Optional) const override; @@ -24,7 +24,7 @@ public: static constexpr Array s_supported_color_space = { "a98-rgb"sv, "display-p3"sv, "srgb"sv, "srgb-linear"sv, "prophoto-rgb"sv, "rec2020"sv, "xyz"sv, "xyz-d50"sv, "xyz-d65"sv }; private: - CSSColor(ColorType color_type, ValueComparingNonnullRefPtr c1, ValueComparingNonnullRefPtr c2, ValueComparingNonnullRefPtr c3, ValueComparingNonnullRefPtr alpha) + ColorFunctionStyleValue(ColorType color_type, ValueComparingNonnullRefPtr c1, ValueComparingNonnullRefPtr c2, ValueComparingNonnullRefPtr c3, ValueComparingNonnullRefPtr alpha) : CSSColorValue(color_type, ColorSyntax::Modern) , m_properties { .channels = { move(c1), move(c2), move(c3) }, .alpha = move(alpha) } { diff --git a/Meta/gn/secondary/Userland/Libraries/LibWeb/CSS/StyleValues/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWeb/CSS/StyleValues/BUILD.gn index 83befee9660..85fd2d3d261 100644 --- a/Meta/gn/secondary/Userland/Libraries/LibWeb/CSS/StyleValues/BUILD.gn +++ b/Meta/gn/secondary/Userland/Libraries/LibWeb/CSS/StyleValues/BUILD.gn @@ -7,7 +7,6 @@ source_set("StyleValues") { "BackgroundSizeStyleValue.cpp", "BasicShapeStyleValue.cpp", "BorderRadiusStyleValue.cpp", - "CSSColor.cpp", "CSSColorValue.cpp", "CSSHSL.cpp", "CSSHWB.cpp", @@ -16,6 +15,7 @@ source_set("StyleValues") { "CSSLabLike.cpp", "CSSRGB.cpp", "CalculatedStyleValue.cpp", + "ColorFunctionStyleValue.cpp", "ConicGradientStyleValue.cpp", "ContentStyleValue.cpp", "CounterDefinitionsStyleValue.cpp",