From 4ecf56cadf263406775f2a689dd1641fd14e4b5e Mon Sep 17 00:00:00 2001 From: Gingeh <39150378+Gingeh@users.noreply.github.com> Date: Thu, 31 Oct 2024 12:29:03 +1100 Subject: [PATCH] LibWeb: Allow calculated values in css filters --- .../Screenshot/css-filter-drop-shadow.html | 1 + Tests/LibWeb/Screenshot/css-filter.html | 74 ++++++++++++++++++ .../images/css-filter-drop-shadow-ref.png | Bin 6700 -> 6701 bytes .../Screenshot/images/css-filter-ref.png | Bin 0 -> 115603 bytes .../Screenshot/reference/css-filter-ref.html | 10 +++ .../Text/expected/css/calc-coverage.txt | 16 ++-- .../Libraries/LibWeb/CSS/Parser/Parser.cpp | 63 ++++++++------- Userland/Libraries/LibWeb/CSS/Parser/Parser.h | 1 + .../StyleValues/FilterValueListStyleValue.cpp | 34 +++++--- .../StyleValues/FilterValueListStyleValue.h | 17 ++-- Userland/Libraries/LibWeb/Layout/Node.cpp | 9 ++- 11 files changed, 166 insertions(+), 59 deletions(-) create mode 100644 Tests/LibWeb/Screenshot/css-filter.html create mode 100644 Tests/LibWeb/Screenshot/images/css-filter-ref.png create mode 100644 Tests/LibWeb/Screenshot/reference/css-filter-ref.html diff --git a/Tests/LibWeb/Screenshot/css-filter-drop-shadow.html b/Tests/LibWeb/Screenshot/css-filter-drop-shadow.html index 84a285d8eb7..ef380851ac9 100644 --- a/Tests/LibWeb/Screenshot/css-filter-drop-shadow.html +++ b/Tests/LibWeb/Screenshot/css-filter-drop-shadow.html @@ -20,3 +20,4 @@
+
diff --git a/Tests/LibWeb/Screenshot/css-filter.html b/Tests/LibWeb/Screenshot/css-filter.html new file mode 100644 index 00000000000..4344a29075b --- /dev/null +++ b/Tests/LibWeb/Screenshot/css-filter.html @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Tests/LibWeb/Screenshot/images/css-filter-drop-shadow-ref.png b/Tests/LibWeb/Screenshot/images/css-filter-drop-shadow-ref.png index 991ddf9c9cbbfd29047fe8edcf29b9018efa8a82..c73f22b9f35bf308f8d34f3a414fdca9b62edf01 100644 GIT binary patch literal 6701 zcmeHLX;hO*y8hyZbSn^X5ZOX-L~)cwBOpt{Kok@M7Z8PJ6BHC%_8mgVv^E3G1!n{__~qURX!hlOy;Z}L4Ng)n|N4lGo2dBNz1Zfv*`Fz~K4UYiAj-j^;s=y!oz zcz^;{{X>Ou_{1pEH@?vXsp+A>Z{>^~p$KjevbvA)xEMLFI3se7#w1Q8Z5yoID5 z!>JOBJZjHFMKtky|B;i=^xS>3dt^0PrnMoT!wpmCok= zW$;lgNJq)|!n+XG0N7Uyo0l$zp!S8CS(w&edo`?;ADpl1x^3`C5yGVP!o+>czQ1y8 ztTX4RW_n5ZQV?3{!lC`96uzvA!jt}cyhr!L`xIp{tNXv2@&5|2`jT+e3WmFa5`xFV z+4C=Qlk(Wb-UMjEO;ThPD0)fGw@3a32;b7=xLatY2bTGOVx$|X|E4fg?1t_<(7kqk ztQP@_E@!F56?r#Zew+1XL@C-V zx;heqD#A~Hgk4r*O1dY=0UbZLzPmqpltQYpC4^A~5yO84P~YM{cCI*vKW^T(|6zuz zLv@&rpI?Gx;)aXENg(aFdh!v}*cDw{jI840G2RliwsIMmhk z(DCEu<>f5qWVak(P}^6G8(|j^ZO}QDm7E+lhf|k#t%b>376(_%Ne~!L{fM(e6LhZj zj~fTo=9^bJ?(K6E{ZxR4e-A>U1*qi4%wuNe2f1(h`!x|F5!}SY1K%|{QZJa_Zl{vb z@9`364?zc0_uInm)5(bhf-XXc<4t!q0ih7zPF8Id3Q>Nclu!?GymeENbpU|atK1W_ z^k#3Zi>-Nnl=th}i2hGEwe&xL!VYKL=zwKvZa}1B(wXdXra*92{WV_>PKvl6_)7+a z!%8beUG3Z(%xc2`emwuPWtH%HTr8Mxt11&l1KtQb+&7i z0Ok+raZyCyu`{)}82p7#;`*5s2!bxgxeFa@c<0NL!@> zoMaDTdmj4L^6MU%ceEV>8*~|cGJ?(Ciu7GQF0_1l<6iQMErYWW6BFxt0Y{>6NwOZ2 z=8?-x>PbWXVyZ^Y*KHP75> z4i}{=zxHe9_+{cSvH(Br&YH()MWVp-T{!adU^`;#H|4Tl7=4!Fg-I^J{*Ut-cwSl?CrK zcbMXswm4$2J63c)R?80|Mex-+Qk&c2NqNI&HY)Rd6H=rn3yb1z(DDl?9%Gj5&kxId zR)eJ*Rq~vV*RM)FP#k7J36V%wIjp{_$isWJu6F5xr*gM0bEt-~)tuSx>GkzEb!iBmFE$k4!LrQ{5zj}> zxb0aRVW=q3d%buSCqF?KN+3NUM;fTW2h~b;VA;AKg6ZTY>*l~WOtebW#th5z$n=>M zqE34My!qh7%}{5QpL!S<%evQDgNyak#<8$Il%t18HK@+>hLqAb3W>3JUljvzB_S!6 z%|p_VE43&wSB@u@R=X8v56!>Yl`u77Xh0!t?0lmHB*)@?7|fmRveKcsPc7I|BIHVn zIc+r3mF%stZhH_VysK|TZWQCEFUWmnSqF3sicwsykLC%GrhELVl~XNO^sgTH4)!vQ zaOx#U16*@O=Bj*>W`OfHY$$VRBSSQOkfBxr2llNZBrnXKj7(=B{cWEggK=m~I@!}? zKCC%%4Sb$7A%KTvzPw0cBtlN1$L)bHzUMQbll$XdI|>G!vjN`A+1dE9<{NHr|negJh-|dVFHtjLD&a^Q5EsW>(^GiL6N% z@i@*BAF#$e<&Fv1%%(N2b~2SSKVM*y58)ea5RV-}_Lh=I=mEn1E^x4THXK!L?Oc60 zluU+qbg*JeLJjK2CsL7>Z?iBr<#NeBa7#FN!8o7TzD}X>tkj=p+!noA-K^TZcRP&)(#le`w1y zLKjiVG=$=8kKAU=J*gK}s47pBZa2PfwUW%@WlREP$rsElMvW@Tf5ai0Qmqks!xw#@ zaY0>I{E%1pKH-_FWV_{%I+?nqVHNm)MRFbjNw}>l+m0fj1Zs*M#TcuC$|I)nK0)_i zuZzeZn%y)w9mf{|4c$Ci1>GM~lHbu*)xT9fZME`jmI&m><_~$qU7B#3fL!>j&*d$ch6V$ zWD5l2e$5O93ce#-?en3vHbONwMm@I)qmnzf>ZVx8GQI3-Hzc~wI+u|Vwd&Jkq>g@S z#99rYwU^oq_2Hn>lZcItd;jK^cOa}5oR`DHq28};>?k3Pj$DLEpOpph6{OFMO^(5~ zrVa3UGO`vjA%Q7y%iEtiw-xC4LX6DV*TrBd~!Jcuv zS2pf9#0|m{ujz^Bg-Y%l5V#mg5#Zf3Ifd9Y=m{^Up4?77-bH0EFH_GITMLz2d8tG5 zdt6+1VK{QPr-Bqf{QhAeBL=0)t)W?6p-$`vIaxKjiwE8)*2FRxf_42Dlyvk}VeUYf# z)su=y^b-BtwYyc4=>t~2;fqFJM^;rcfmn=&OeNvFgm#2#M}-+GX`3Oo)AXHF@H(!z za@K|98Yj-0s<(TUw2JhODNNtXU_k!K&3s;H{e%QN)zCnS;1ck~z*blM&{nWG`Zn$0 z&a89fCIq8@jNLzLX#o@bc{5n}_Oy!~I!!OnH>?&O(6m<|kl<~krr_#E%&+WaPRgd) zbpxX)8y6bl(PwIV$SPE-9U*)9>wQL78>EU)rS|dB57F*reasC5<@mh3t}sVCJ9Or3)7qwo7aC{?jfoGF0LJV3$xb zNe70>SV{*bw9?1bErP-u5CW}}5l-dCAV1w5^iq)gU<)V%>aitVWmtChl?qNyUt}6a z&(O=^Y8Z|6EWp3iapYpOq!w7+39e&fiUq-zoXaw5<(&nf9=xEDPi#E(O=c;p_G`^j zJ78L2mTdG~Xxgb5f_#h((xvKF60wUrHs8PAS5=j@dSHA!j<_6Hg*s)rp1#nr_c;wQ zt?ZfqY;5*=ej6Qsd4}*&Gz{!miErFuad<+b(F5aO#BZ-A0peeI6Bccy9%~oHz2oSb zJh*Wt+6q<%-x~1TlZKpDT#1SK)u6NjFBSK_E6U-=Q}A6pW}hi;_YDMY-*dkiBEavN z_l%L3aDq*`elBaS>ZTTg5vj8olYA?Jv&Ovx+F|=W77s?@66bg5d&UfzPR|i?ny8QZ z9R+6ch8Xx(@)_2|=OVV~|D^1M#j>z(k831apX*DL4O?P|%4vC@RV;GOaEdgBpXKs% zHW&z>v`SKbP14}}7a4uYu!^@jm`|c3Y>BNx4&vrk-D0KcIP>cJp}DtXJhp=7Eio#s z+q-DT3VY>L*-B7H``4xi@6rqws3l5k(itDmJop?;hlJ_{3CdjgJh@w&+heK_q4bRF#Wa9 xkbjK*%J)V-oWy~?g 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�E3AlDd|Twwyz-S3As7H+`8#WwSag=f|JiyCq-P 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 literal 0 HcmV?d00001 diff --git a/Tests/LibWeb/Screenshot/reference/css-filter-ref.html b/Tests/LibWeb/Screenshot/reference/css-filter-ref.html new file mode 100644 index 00000000000..7c27bfd3733 --- /dev/null +++ b/Tests/LibWeb/Screenshot/reference/css-filter-ref.html @@ -0,0 +1,10 @@ + + diff --git a/Tests/LibWeb/Text/expected/css/calc-coverage.txt b/Tests/LibWeb/Text/expected/css/calc-coverage.txt index eb71f2c3a3f..7917a439704 100644 --- a/Tests/LibWeb/Text/expected/css/calc-coverage.txt +++ b/Tests/LibWeb/Text/expected/css/calc-coverage.txt @@ -4,10 +4,10 @@ animation-duration: 'calc(2s)' -> 'calc(2s)' animation-duration: 'calc(2s * var(--n))' -> '4s' animation-iteration-count: 'calc(2)' -> 'calc(2)' animation-iteration-count: 'calc(2 * var(--n))' -> '4' -backdrop-filter: 'grayscale(calc(2%))' -> 'none' -backdrop-filter: 'grayscale(calc(2% * var(--n)))' -> 'none' -backdrop-filter: 'grayscale(calc(0.02))' -> 'none' -backdrop-filter: 'grayscale(calc(0.02 * var(--n)))' -> 'none' +backdrop-filter: 'grayscale(calc(2%))' -> 'grayscale(calc(2%))' +backdrop-filter: 'grayscale(calc(2% * var(--n)))' -> 'grayscale(calc(2% * 2))' +backdrop-filter: 'grayscale(calc(0.02))' -> 'grayscale(calc(0.02))' +backdrop-filter: 'grayscale(calc(0.02 * var(--n)))' -> 'grayscale(calc(0.02 * 2))' background-position-x: 'calc(2px)' -> 'left calc(2px)' background-position-x: 'calc(2px * var(--n))' -> 'left calc(2px * 2)' background-position-y: 'calc(2%)' -> 'top calc(2%)' @@ -56,10 +56,10 @@ cy: 'calc(2%)' -> 'calc(2%)' cy: 'calc(2% * var(--n))' -> '4%' fill-opacity: 'calc(2)' -> 'calc(2)' fill-opacity: 'calc(2 * var(--n))' -> '4' -filter: 'grayscale(calc(2%))' -> 'none' -filter: 'grayscale(calc(2% * var(--n)))' -> 'none' -filter: 'grayscale(calc(0.02))' -> 'none' -filter: 'grayscale(calc(0.02 * var(--n)))' -> 'none' +filter: 'grayscale(calc(2%))' -> 'grayscale(calc(2%))' +filter: 'grayscale(calc(2% * var(--n)))' -> 'grayscale(calc(2% * 2))' +filter: 'grayscale(calc(0.02))' -> 'grayscale(calc(0.02))' +filter: 'grayscale(calc(0.02 * var(--n)))' -> 'grayscale(calc(0.02 * 2))' flex-basis: 'calc(2px)' -> 'calc(2px)' flex-basis: 'calc(2px * var(--n))' -> 'calc(2px * 2)' flex-grow: 'calc(2)' -> 'calc(2)' diff --git a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp index 8af7a1069b8..89c4d543f5f 100644 --- a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp +++ b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp @@ -2246,6 +2246,29 @@ Optional Parser::parse_number(TokenStream& t return {}; } +Optional Parser::parse_number_percentage(TokenStream& tokens) +{ + auto transaction = tokens.begin_transaction(); + auto& token = tokens.consume_a_token(); + + if (token.is(Token::Type::Number)) { + transaction.commit(); + return token.token().number(); + } + + if (token.is(Token::Type::Percentage)) { + transaction.commit(); + return Percentage(token.token().percentage()); + } + + if (auto calc = parse_calculated_value(token); calc && calc->resolves_to_number_percentage()) { + transaction.commit(); + return calc.release_nonnull(); + } + + return {}; +} + Optional Parser::parse_resolution(TokenStream& tokens) { auto transaction = tokens.begin_transaction(); @@ -5395,14 +5418,6 @@ RefPtr Parser::parse_filter_value_list_value(TokenStream(filter); }; - auto parse_number_percentage = [&](auto& token) -> Optional { - if (token.is(Token::Type::Percentage)) - return NumberPercentage(Percentage(token.token().percentage())); - if (token.is(Token::Type::Number)) - return NumberPercentage(Number(Number::Type::Number, token.token().number_value())); - return {}; - }; - auto parse_filter_function_name = [&](auto name) -> Optional { if (name.equals_ignoring_ascii_case("blur"sv)) return FilterToken::Blur; @@ -5446,8 +5461,7 @@ RefPtr Parser::parse_filter_value_list_value(TokenStreamvalue() }); + return if_no_more_tokens_return(FilterOperation::Blur { blur_radius.value() }); } else if (filter_token == FilterToken::DropShadow) { if (!tokens.has_next_token()) return {}; @@ -5481,29 +5495,24 @@ RefPtr Parser::parse_filter_value_list_value(TokenStreamto_color({}); - // FIXME: Support calculated offsets and radius - return if_no_more_tokens_return(FilterOperation::DropShadow { x_offset->value(), y_offset->value(), maybe_radius.map([](auto& it) { return it.value(); }), color }); + return if_no_more_tokens_return(FilterOperation::DropShadow { x_offset.value(), y_offset.value(), maybe_radius, color }); } else if (filter_token == FilterToken::HueRotate) { // hue-rotate( [ | ]? ) if (!tokens.has_next_token()) return FilterOperation::HueRotate {}; - auto& token = tokens.consume_a_token(); - if (token.is(Token::Type::Number)) { + + if (tokens.next_token().is(Token::Type::Number)) { // hue-rotate(0) - auto number = token.token().number(); + auto number = tokens.consume_a_token().token().number(); if (number.is_integer() && number.integer_value() == 0) return if_no_more_tokens_return(FilterOperation::HueRotate { FilterOperation::HueRotate::Zero {} }); return {}; } - if (!token.is(Token::Type::Dimension)) - return {}; - auto angle_value = token.token().dimension_value(); - auto angle_unit_name = token.token().dimension_unit(); - auto angle_unit = Angle::unit_from_name(angle_unit_name); - if (!angle_unit.has_value()) - return {}; - Angle angle { angle_value, angle_unit.release_value() }; - return if_no_more_tokens_return(FilterOperation::HueRotate { angle }); + + if (auto angle = parse_angle(tokens); angle.has_value()) + return if_no_more_tokens_return(FilterOperation::HueRotate { angle.value() }); + + return {}; } else { // Simple filters: // brightness( ? ) @@ -5515,10 +5524,8 @@ RefPtr Parser::parse_filter_value_list_value(TokenStream? ) if (!tokens.has_next_token()) return FilterOperation::Color { filter_token_to_operation(filter_token) }; - auto amount = parse_number_percentage(tokens.consume_a_token()); - if (!amount.has_value()) - return {}; - return if_no_more_tokens_return(FilterOperation::Color { filter_token_to_operation(filter_token), *amount }); + auto amount = parse_number_percentage(tokens); + return if_no_more_tokens_return(FilterOperation::Color { filter_token_to_operation(filter_token), amount }); } }; diff --git a/Userland/Libraries/LibWeb/CSS/Parser/Parser.h b/Userland/Libraries/LibWeb/CSS/Parser/Parser.h index df5a608f3b2..9316341c507 100644 --- a/Userland/Libraries/LibWeb/CSS/Parser/Parser.h +++ b/Userland/Libraries/LibWeb/CSS/Parser/Parser.h @@ -202,6 +202,7 @@ private: Optional parse_length(TokenStream&); Optional parse_length_percentage(TokenStream&); Optional parse_number(TokenStream&); + Optional parse_number_percentage(TokenStream&); Optional parse_resolution(TokenStream&); Optional parse_time(TokenStream&); Optional parse_time_percentage(TokenStream&); diff --git a/Userland/Libraries/LibWeb/CSS/StyleValues/FilterValueListStyleValue.cpp b/Userland/Libraries/LibWeb/CSS/StyleValues/FilterValueListStyleValue.cpp index e6fd46453a8..89704f3c84a 100644 --- a/Userland/Libraries/LibWeb/CSS/StyleValues/FilterValueListStyleValue.cpp +++ b/Userland/Libraries/LibWeb/CSS/StyleValues/FilterValueListStyleValue.cpp @@ -15,30 +15,42 @@ namespace Web::CSS { float FilterOperation::Blur::resolved_radius(Layout::Node const& node) const { - // Default value when omitted is 0px. - auto sigma = 0; if (radius.has_value()) - sigma = radius->to_px(node).to_int(); - return sigma; + return radius->resolved(Length::ResolutionContext::for_layout_node(node)).to_px(node).to_float(); + + // Default value when omitted is 0px. + return 0; } -float FilterOperation::HueRotate::angle_degrees() const +float FilterOperation::HueRotate::angle_degrees(Layout::Node const& node) const { // Default value when omitted is 0deg. if (!angle.has_value()) return 0.0f; - return angle->visit([&](Angle const& a) { return a.to_degrees(); }, [&](auto) { return 0.0; }); + return angle->visit([&](AngleOrCalculated const& a) { return a.resolved(node).to_degrees(); }, [&](Zero) { return 0.0; }); } float FilterOperation::Color::resolved_amount() const { - if (amount.has_value()) { - if (amount->is_percentage()) - return amount->percentage().as_fraction(); + // Default value when omitted is 1. + if (!amount.has_value()) + return 1; + + if (amount->is_number()) return amount->number().value(); + + if (amount->is_percentage()) + return amount->percentage().as_fraction(); + + if (amount->is_calculated()) { + if (amount->calculated()->resolves_to_number()) + return amount->calculated()->resolve_number().value(); + + if (amount->calculated()->resolves_to_percentage()) + return amount->calculated()->resolve_percentage()->as_fraction(); } - // All color filters (brightness, sepia, etc) have a default amount of 1. - return 1.0f; + + VERIFY_NOT_REACHED(); } String FilterValueListStyleValue::to_string() const diff --git a/Userland/Libraries/LibWeb/CSS/StyleValues/FilterValueListStyleValue.h b/Userland/Libraries/LibWeb/CSS/StyleValues/FilterValueListStyleValue.h index 4fd66a801ea..4690ba805f1 100644 --- a/Userland/Libraries/LibWeb/CSS/StyleValues/FilterValueListStyleValue.h +++ b/Userland/Libraries/LibWeb/CSS/StyleValues/FilterValueListStyleValue.h @@ -10,6 +10,7 @@ #pragma once #include +#include #include #include #include @@ -19,16 +20,16 @@ namespace Web::CSS { namespace FilterOperation { struct Blur { - Optional radius {}; + Optional radius; float resolved_radius(Layout::Node const&) const; bool operator==(Blur const&) const = default; }; struct DropShadow { - Length offset_x; - Length offset_y; - Optional radius {}; - Optional color {}; + LengthOrCalculated offset_x; + LengthOrCalculated offset_y; + Optional radius; + Optional color; bool operator==(DropShadow const&) const = default; }; @@ -36,9 +37,9 @@ struct HueRotate { struct Zero { bool operator==(Zero const&) const = default; }; - using AngleOrZero = Variant; - Optional angle {}; - float angle_degrees() const; + using AngleOrZero = Variant; + Optional angle; + float angle_degrees(Layout::Node const&) const; bool operator==(HueRotate const&) const = default; }; diff --git a/Userland/Libraries/LibWeb/Layout/Node.cpp b/Userland/Libraries/LibWeb/Layout/Node.cpp index 49372e5711b..4d4df0068f6 100644 --- a/Userland/Libraries/LibWeb/Layout/Node.cpp +++ b/Userland/Libraries/LibWeb/Layout/Node.cpp @@ -523,12 +523,13 @@ void NodeWithStyle::apply_style(const CSS::StyleProperties& computed_style) .radius = blur.resolved_radius(*this) }); }, [&](CSS::FilterOperation::DropShadow const& drop_shadow) { + auto context = CSS::Length::ResolutionContext::for_layout_node(*this); // The default value for omitted values is missing length values set to 0 // and the missing used color is taken from the color property. resolved_filter.filters.append(CSS::ResolvedFilter::DropShadow { - .offset_x = drop_shadow.offset_x.to_px(*this).to_double(), - .offset_y = drop_shadow.offset_y.to_px(*this).to_double(), - .radius = drop_shadow.radius.has_value() ? drop_shadow.radius->to_px(*this).to_double() : 0.0, + .offset_x = drop_shadow.offset_x.resolved(context).to_px(*this).to_double(), + .offset_y = drop_shadow.offset_y.resolved(context).to_px(*this).to_double(), + .radius = drop_shadow.radius.has_value() ? drop_shadow.radius->resolved(context).to_px(*this).to_double() : 0.0, .color = drop_shadow.color.has_value() ? *drop_shadow.color : this->computed_values().color() }); }, [&](CSS::FilterOperation::Color const& color_operation) { @@ -537,7 +538,7 @@ void NodeWithStyle::apply_style(const CSS::StyleProperties& computed_style) .amount = color_operation.resolved_amount() }); }, [&](CSS::FilterOperation::HueRotate const& hue_rotate) { - resolved_filter.filters.append(CSS::ResolvedFilter::HueRotate { .angle_degrees = hue_rotate.angle_degrees() }); + resolved_filter.filters.append(CSS::ResolvedFilter::HueRotate { .angle_degrees = hue_rotate.angle_degrees(*this) }); }); } return resolved_filter;