From cc2c8e86154ea9b86c1418cf505949d6fe0cd6d8 Mon Sep 17 00:00:00 2001 From: Callum Law Date: Fri, 17 Oct 2025 17:11:02 +1300 Subject: [PATCH 1/9] LibWeb: Resolve percentages in `` as angles --- Libraries/LibWeb/CSS/Parser/GradientParsing.cpp | 2 ++ Libraries/LibWeb/CSS/Parser/Parser.h | 1 + Libraries/LibWeb/CSS/Parser/ValueParsing.cpp | 5 ++++- .../css/css-images/gradient/color-stops-parsing.txt | 8 ++++---- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/Libraries/LibWeb/CSS/Parser/GradientParsing.cpp b/Libraries/LibWeb/CSS/Parser/GradientParsing.cpp index 86174bb6b03..9ac88f68ef8 100644 --- a/Libraries/LibWeb/CSS/Parser/GradientParsing.cpp +++ b/Libraries/LibWeb/CSS/Parser/GradientParsing.cpp @@ -120,6 +120,8 @@ Optional> Parser::parse_linear_color_stop_lis Optional> Parser::parse_angular_color_stop_list(TokenStream& tokens) { + auto context_guard = push_temporary_value_parsing_context(SpecialContext::AngularColorStopList); + // = // , [ ? , ]# return parse_color_stop_list( diff --git a/Libraries/LibWeb/CSS/Parser/Parser.h b/Libraries/LibWeb/CSS/Parser/Parser.h index 29c3ad96337..bb79d720f6d 100644 --- a/Libraries/LibWeb/CSS/Parser/Parser.h +++ b/Libraries/LibWeb/CSS/Parser/Parser.h @@ -564,6 +564,7 @@ private: DescriptorID descriptor; }; enum SpecialContext : u8 { + AngularColorStopList, ShadowBlurRadius, TranslateZArgument }; diff --git a/Libraries/LibWeb/CSS/Parser/ValueParsing.cpp b/Libraries/LibWeb/CSS/Parser/ValueParsing.cpp index ebd1df6d31c..4b4aa4bf02e 100644 --- a/Libraries/LibWeb/CSS/Parser/ValueParsing.cpp +++ b/Libraries/LibWeb/CSS/Parser/ValueParsing.cpp @@ -4110,7 +4110,8 @@ RefPtr Parser::parse_calculated_value(ComponentValue return CalculationContext::for_property(PropertyNameAndID::from_id(property_id)); }, [](FunctionContext const& function) -> Optional { - // Gradients resolve percentages as lengths relative to the gradient-box. + // Gradients resolve percentages as lengths relative to the gradient-box (except within + // s which are handled by a special context) if (function.name.is_one_of_ignoring_ascii_case( "linear-gradient"sv, "repeating-linear-gradient"sv, "radial-gradient"sv, "repeating-radial-gradient"sv, @@ -4140,6 +4141,8 @@ RefPtr Parser::parse_calculated_value(ComponentValue }, [](SpecialContext special_context) -> Optional { switch (special_context) { + case SpecialContext::AngularColorStopList: + return CalculationContext { .percentages_resolve_as = ValueType::Angle }; case SpecialContext::ShadowBlurRadius: return CalculationContext { .accepted_type_ranges = { { ValueType::Length, { 0, NumericLimits::max() } } } }; case SpecialContext::TranslateZArgument: diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-images/gradient/color-stops-parsing.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-images/gradient/color-stops-parsing.txt index 5726e629057..07dccbff62e 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-images/gradient/color-stops-parsing.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-images/gradient/color-stops-parsing.txt @@ -2,8 +2,8 @@ Harness status: OK Found 162 tests -158 Pass -4 Fail +160 Pass +2 Fail Pass linear-gradient() [ unparsable ] Pass linear-gradient(black, 25%) [ unparsable ] Pass linear-gradient(black, invalid) [ unparsable ] @@ -137,7 +137,7 @@ Pass conic-gradient(black 0%, 15%, green 50%, 60%, white 100%) [ parsable ] Pass conic-gradient(black 0% 50%, white) [ parsable ] Pass conic-gradient(black 0% 50%, white 50% 100%) [ parsable ] Pass conic-gradient(black 0% 50%, green 25% 75%, white 50% 100%) [ parsable ] -Fail conic-gradient(black 0% calc(100% / 5), 25%, green 30% 60%, calc(100% * 3 / 4), white calc(100% - 20%) 100%) [ parsable ] +Pass conic-gradient(black 0% calc(100% / 5), 25%, green 30% 60%, calc(100% * 3 / 4), white calc(100% - 20%) 100%) [ parsable ] Pass conic-gradient(white 0%, 0.001%, white 0.002%, 0.003%, white 0.004%, 0.005%, white 0.006%, 0.007%, white 0.008%, 0.009%, white 0.01%, 0.011%, white 0.012%, 0.013%, white 0.014%, 0.015%, white 0.016%, 0.017%, white 0.018%, 0.019%, white 0.02%, 0.021%, white 0.022%, 0.023%, white 0.024%, 0.025%, white 0.026%, 0.027%, white 0.028%, 0.029%, white 0.03%, 0.031%, white 0.032%, 0.033%, white 0.034%, 0.035%, white 0.036%, 0.037%, white 0.038%, 0.039%, white 0.04%, 0.041%, white 0.042%, 0.043%, white 0.044%, 0.045%, white 0.046%, 0.047%, white 0.048%, 0.049%, white 0.05%, 0.051%, white 0.052%, 0.053%, white 0.054%, 0.055%, white 0.056%, 0.057%, white 0.058%, 0.059%, white 0.06%, 0.061%, white 0.062%, 0.063%, white 0.064%, 0.065%, white 0.066%, 0.067%, white 0.068%, 0.069%, white 0.07%, 0.071%, white 0.072%, 0.073%, white 0.074%, 0.075%, white 0.076%, 0.077%, white 0.078%, 0.079%, white 0.08%, 0.081%, white 0.082%, 0.083%, white 0.084%, 0.085%, white 0.086%, 0.087%, white 0.088%, 0.089%, white 0.09%, 0.091%, white 0.092%, 0.093%, white 0.094%, 0.095%, white 0.096%, 0.097%, white 0.098%, 0.099%, white 0.1%, 0.101%, white 0.102%, 0.103%, white 0.104%, 0.105%, white 0.106%, 0.107%, white 0.108%, 0.109%, white 0.11%, 0.111%, white 0.112%, 0.113%, white 0.114%, 0.115%, white 0.116%, 0.117%, white 0.118%, 0.119%, white 0.12%, 0.121%, white 0.122%, 0.123%, white 0.124%, 0.125%, white 0.126%, 0.127%, white 0.128%, 0.129%, white 0.13%, 0.131%, white 0.132%, 0.133%, white 0.134%, 0.135%, white 0.136%, 0.137%, white 0.138%, 0.139%, white 0.14%, 0.141%, white 0.142%, 0.143%, white 0.144%, 0.145%, white 0.146%, 0.147%, white 0.148%, 0.149%, white 0.15%, 0.151%, white 0.152%, 0.153%, white 0.154%, 0.155%, white 0.156%, 0.157%, white 0.158%, 0.159%, white 0.16%, 0.161%, white 0.162%, 0.163%, white 0.164%, 0.165%, white 0.166%, 0.167%, white 0.168%, 0.169%, white 0.17%, 0.171%, white 0.172%, 0.173%, white 0.174%, 0.175%, white 0.176%, 0.177%, white 0.178%, 0.179%, white 0.18%, 0.181%, white 0.182%, 0.183%, white 0.184%, 0.185%, white 0.186%, 0.187%, white 0.188%, 0.189%, white 0.19%, 0.191%, white 0.192%, 0.193%, white 0.194%, 0.195%, white 0.196%, 0.197%, white 0.198%, 0.199%, white 0.2%, 0.201%, white 0.202%, 0.203%, white 0.204%, 0.205%, white 0.206%, 0.207%, white 0.208%, 0.209%, white 0.21%, 0.211%, white 0.212%, 0.213%, white 0.214%, 0.215%, white 0.216%, 0.217%, white 0.218%, 0.219%, white 0.22%, 0.221%, white 0.222%, 0.223%, white 0.224%, 0.225%, white 0.226%, 0.227%, white 0.228%, 0.229%, white 0.23%, 0.231%, white 0.232%, 0.233%, white 0.234%, 0.235%, white 0.236%, 0.237%, white 0.238%, 0.239%, white 0.24%, 0.241%, white 0.242%, 0.243%, white 0.244%, 0.245%, white 0.246%, 0.247%, white 0.248%, 0.249%, white 0.25%, 0.251%, white 0.252%, 0.253%, white 0.254%, 0.255%, white 0.256%, 0.257%, white 0.258%, 0.259%, white 0.26%, 0.261%, white 0.262%, 0.263%, white 0.264%, 0.265%, white 0.266%, 0.267%, white 0.268%, 0.269%, white 0.27%, 0.271%, white 0.272%, 0.273%, white 0.274%, 0.275%, white 0.276%, 0.277%, white 0.278%, 0.279%, white 0.28%, 0.281%, white 0.282%, 0.283%, white 0.284%, 0.285%, white 0.286%, 0.287%, white 0.288%, 0.289%, white 0.29%, 0.291%, white 0.292%, 0.293%, white 0.294%, 0.295%, white 0.296%, 0.297%, white 0.298%, 0.299%, white 0.3%, 0.301%, white 0.302%, 0.303%, white 0.304%, 0.305%, white 0.306%, 0.307%, white 0.308%, 0.309%, white 0.31%, 0.311%, white 0.312%, 0.313%, white 0.314%, 0.315%, white 0.316%, 0.317%, white 0.318%, 0.319%, white 0.32%, 0.321%, white 0.322%, 0.323%, white 0.324%, 0.325%, white 0.326%, 0.327%, white 0.328%, 0.329%, white 0.33%, 0.331%, white 0.332%, 0.333%, white 0.334%, 0.335%, white 0.336%, 0.337%, white 0.338%, 0.339%, white 0.34%, 0.341%, white 0.342%, 0.343%, white 0.344%, 0.345%, white 0.346%, 0.347%, white 0.348%, 0.349%, white 0.35%, 0.351%, white 0.352%, 0.353%, white 0.354%, 0.355%, white 0.356%, 0.357%, white 0.358%, 0.359%, white 0.36%, 0.361%, white 0.362%, 0.363%, white 0.364%, 0.365%, white 0.366%, 0.367%, white 0.368%, 0.369%, white 0.37%, 0.371%, white 0.372%, 0.373%, white 0.374%, 0.375%, white 0.376%, 0.377%, white 0.378%, 0.379%, white 0.38%, 0.381%, white 0.382%, 0.383%, white 0.384%, 0.385%, white 0.386%, 0.387%, white 0.388%, 0.389%, white 0.39%, 0.391%, white 0.392%, 0.393%, white 0.394%, 0.395%, white 0.396%, 0.397%, white 0.398%, 0.399%, white 0.4%, 0.401%, white 0.402%, 0.403%, white 0.404%, 0.405%, white 0.406%, 0.407%, white 0.408%, 0.409%, white 0.41%, 0.411%, white 0.412%, 0.413%, white 0.414%, 0.415%, white 0.416%, 0.417%, white 0.418%, 0.419%, white 0.42%, 0.421%, white 0.422%, 0.423%, white 0.424%, 0.425%, white 0.426%, 0.427%, white 0.428%, 0.429%, white 0.43%, 0.431%, white 0.432%, 0.433%, white 0.434%, 0.435%, white 0.436%, 0.437%, white 0.438%, 0.439%, white 0.44%, 0.441%, white 0.442%, 0.443%, white 0.444%, 0.445%, white 0.446%, 0.447%, white 0.448%, 0.449%, white 0.45%, 0.451%, white 0.452%, 0.453%, white 0.454%, 0.455%, white 0.456%, 0.457%, white 0.458%, 0.459%, white 0.46%, 0.461%, white 0.462%, 0.463%, white 0.464%, 0.465%, white 0.466%, 0.467%, white 0.468%, 0.469%, white 0.47%, 0.471%, white 0.472%, 0.473%, white 0.474%, 0.475%, white 0.476%, 0.477%, white 0.478%, 0.479%, white 0.48%, 0.481%, white 0.482%, 0.483%, white 0.484%, 0.485%, white 0.486%, 0.487%, white 0.488%, 0.489%, white 0.49%, 0.491%, white 0.492%, 0.493%, white 0.494%, 0.495%, white 0.496%, 0.497%, white 0.498%, 0.499%, white 0.5%, 0.501%, white 0.502%, 0.503%, white 0.504%, 0.505%, white 0.506%, 0.507%, white 0.508%, 0.509%, white 0.51%, 0.511%, white 0.512%, 0.513%, white 0.514%, 0.515%, white 0.516%, 0.517%, white 0.518%, 0.519%, white 0.52%, 0.521%, white 0.522%, 0.523%, white 0.524%, 0.525%, white 0.526%, 0.527%, white 0.528%, 0.529%, white 0.53%, 0.531%, white 0.532%, 0.533%, white 0.534%, 0.535%, white 0.536%, 0.537%, white 0.538%, 0.539%, white 0.54%, 0.541%, white 0.542%, 0.543%, white 0.544%, 0.545%, white 0.546%, 0.547%, white 0.548%, 0.549%, white 0.55%, 0.551%, white 0.552%, 0.553%, white 0.554%, 0.555%, white 0.556%, 0.557%, white 0.558%, 0.559%, white 0.56%, 0.561%, white 0.562%, 0.563%, white 0.564%, 0.565%, white 0.566%, 0.567%, white 0.568%, 0.569%, white 0.57%, 0.571%, white 0.572%, 0.573%, white 0.574%, 0.575%, white 0.576%, 0.577%, white 0.578%, 0.579%, white 0.58%, 0.581%, white 0.582%, 0.583%, white 0.584%, 0.585%, white 0.586%, 0.587%, white 0.588%, 0.589%, white 0.59%, 0.591%, white 0.592%, 0.593%, white 0.594%, 0.595%, white 0.596%, 0.597%, white 0.598%, 0.599%, white 0.6%, 0.601%, white 0.602%, 0.603%, white 0.604%, 0.605%, white 0.606%, 0.607%, white 0.608%, 0.609%, white 0.61%, 0.611%, white 0.612%, 0.613%, white 0.614%, 0.615%, white 0.616%, 0.617%, white 0.618%, 0.619%, white 0.62%, 0.621%, white 0.622%, 0.623%, white 0.624%, 0.625%, white 0.626%, 0.627%, white 0.628%, 0.629%, white 0.63%, 0.631%, white 0.632%, 0.633%, white 0.634%, 0.635%, white 0.636%, 0.637%, white 0.638%, 0.639%, white 0.64%, 0.641%, white 0.642%, 0.643%, white 0.644%, 0.645%, white 0.646%, 0.647%, white 0.648%, 0.649%, white 0.65%, 0.651%, white 0.652%, 0.653%, white 0.654%, 0.655%, white 0.656%, 0.657%, white 0.658%, 0.659%, white 0.66%, 0.661%, white 0.662%, 0.663%, white 0.664%, 0.665%, white 0.666%, 0.667%, white 0.668%, 0.669%, white 0.67%, 0.671%, white 0.672%, 0.673%, white 0.674%, 0.675%, white 0.676%, 0.677%, white 0.678%, 0.679%, white 0.68%, 0.681%, white 0.682%, 0.683%, white 0.684%, 0.685%, white 0.686%, 0.687%, white 0.688%, 0.689%, white 0.69%, 0.691%, white 0.692%, 0.693%, white 0.694%, 0.695%, white 0.696%, 0.697%, white 0.698%, 0.699%, white 0.7%, 0.701%, white 0.702%, 0.703%, white 0.704%, 0.705%, white 0.706%, 0.707%, white 0.708%, 0.709%, white 0.71%, 0.711%, white 0.712%, 0.713%, white 0.714%, 0.715%, white 0.716%, 0.717%, white 0.718%, 0.719%, white 0.72%, 0.721%, white 0.722%, 0.723%, white 0.724%, 0.725%, white 0.726%, 0.727%, white 0.728%, 0.729%, white 0.73%, 0.731%, white 0.732%, 0.733%, white 0.734%, 0.735%, white 0.736%, 0.737%, white 0.738%, 0.739%, white 0.74%, 0.741%, white 0.742%, 0.743%, white 0.744%, 0.745%, white 0.746%, 0.747%, white 0.748%, 0.749%, white 0.75%, 0.751%, white 0.752%, 0.753%, white 0.754%, 0.755%, white 0.756%, 0.757%, white 0.758%, 0.759%, white 0.76%, 0.761%, white 0.762%, 0.763%, white 0.764%, 0.765%, white 0.766%, 0.767%, white 0.768%, 0.769%, white 0.77%, 0.771%, white 0.772%, 0.773%, white 0.774%, 0.775%, white 0.776%, 0.777%, white 0.778%, 0.779%, white 0.78%, 0.781%, white 0.782%, 0.783%, white 0.784%, 0.785%, white 0.786%, 0.787%, white 0.788%, 0.789%, white 0.79%, 0.791%, white 0.792%, 0.793%, white 0.794%, 0.795%, white 0.796%, 0.797%, white 0.798%, 0.799%, white 0.8%, 0.801%, white 0.802%, 0.803%, white 0.804%, 0.805%, white 0.806%, 0.807%, white 0.808%, 0.809%, white 0.81%, 0.811%, white 0.812%, 0.813%, white 0.814%, 0.815%, white 0.816%, 0.817%, white 0.818%, 0.819%, white 0.82%, 0.821%, white 0.822%, 0.823%, white 0.824%, 0.825%, white 0.826%, 0.827%, white 0.828%, 0.829%, white 0.83%, 0.831%, white 0.832%, 0.833%, white 0.834%, 0.835%, white 0.836%, 0.837%, white 0.838%, 0.839%, white 0.84%, 0.841%, white 0.842%, 0.843%, white 0.844%, 0.845%, white 0.846%, 0.847%, white 0.848%, 0.849%, white 0.85%, 0.851%, white 0.852%, 0.853%, white 0.854%, 0.855%, white 0.856%, 0.857%, white 0.858%, 0.859%, white 0.86%, 0.861%, white 0.862%, 0.863%, white 0.864%, 0.865%, white 0.866%, 0.867%, white 0.868%, 0.869%, white 0.87%, 0.871%, white 0.872%, 0.873%, white 0.874%, 0.875%, white 0.876%, 0.877%, white 0.878%, 0.879%, white 0.88%, 0.881%, white 0.882%, 0.883%, white 0.884%, 0.885%, white 0.886%, 0.887%, white 0.888%, 0.889%, white 0.89%, 0.891%, white 0.892%, 0.893%, white 0.894%, 0.895%, white 0.896%, 0.897%, white 0.898%, 0.899%, white 0.9%, 0.901%, white 0.902%, 0.903%, white 0.904%, 0.905%, white 0.906%, 0.907%, white 0.908%, 0.909%, white 0.91%, 0.911%, white 0.912%, 0.913%, white 0.914%, 0.915%, white 0.916%, 0.917%, white 0.918%, 0.919%, white 0.92%, 0.921%, white 0.922%, 0.923%, white 0.924%, 0.925%, white 0.926%, 0.927%, white 0.928%, 0.929%, white 0.93%, 0.931%, white 0.932%, 0.933%, white 0.934%, 0.935%, white 0.936%, 0.937%, white 0.938%, 0.939%, white 0.94%, 0.941%, white 0.942%, 0.943%, white 0.944%, 0.945%, white 0.946%, 0.947%, white 0.948%, 0.949%, white 0.95%, 0.951%, white 0.952%, 0.953%, white 0.954%, 0.955%, white 0.956%, 0.957%, white 0.958%, 0.959%, white 0.96%, 0.961%, white 0.962%, 0.963%, white 0.964%, 0.965%, white 0.966%, 0.967%, white 0.968%, 0.969%, white 0.97%, 0.971%, white 0.972%, 0.973%, white 0.974%, 0.975%, white 0.976%, 0.977%, white 0.978%, 0.979%, white 0.98%, 0.981%, white 0.982%, 0.983%, white 0.984%, 0.985%, white 0.986%, 0.987%, white 0.988%, 0.989%, white 0.99%, 0.991%, white 0.992%, 0.993%, white 0.994%, 0.995%, white 0.996%, 0.997%, white 0.998%, 0.999%, black) [ parsable ] Pass repeating-conic-gradient() [ unparsable ] Pass repeating-conic-gradient(black, 25%) [ unparsable ] @@ -164,5 +164,5 @@ Pass repeating-conic-gradient(black 0%, 15%, green 50%, 60%, white 100%) [ parsa Pass repeating-conic-gradient(black 0% 50%, white) [ parsable ] Pass repeating-conic-gradient(black 0% 50%, white 50% 100%) [ parsable ] Pass repeating-conic-gradient(black 0% 50%, green 25% 75%, white 50% 100%) [ parsable ] -Fail repeating-conic-gradient(black 0% calc(100% / 5), 25%, green 30% 60%, calc(100% * 3 / 4), white calc(100% - 20%) 100%) [ parsable ] +Pass repeating-conic-gradient(black 0% calc(100% / 5), 25%, green 30% 60%, calc(100% * 3 / 4), white calc(100% - 20%) 100%) [ parsable ] Pass repeating-conic-gradient(white 0%, 0.001%, white 0.002%, 0.003%, white 0.004%, 0.005%, white 0.006%, 0.007%, white 0.008%, 0.009%, white 0.01%, 0.011%, white 0.012%, 0.013%, white 0.014%, 0.015%, white 0.016%, 0.017%, white 0.018%, 0.019%, white 0.02%, 0.021%, white 0.022%, 0.023%, white 0.024%, 0.025%, white 0.026%, 0.027%, white 0.028%, 0.029%, white 0.03%, 0.031%, white 0.032%, 0.033%, white 0.034%, 0.035%, white 0.036%, 0.037%, white 0.038%, 0.039%, white 0.04%, 0.041%, white 0.042%, 0.043%, white 0.044%, 0.045%, white 0.046%, 0.047%, white 0.048%, 0.049%, white 0.05%, 0.051%, white 0.052%, 0.053%, white 0.054%, 0.055%, white 0.056%, 0.057%, white 0.058%, 0.059%, white 0.06%, 0.061%, white 0.062%, 0.063%, white 0.064%, 0.065%, white 0.066%, 0.067%, white 0.068%, 0.069%, white 0.07%, 0.071%, white 0.072%, 0.073%, white 0.074%, 0.075%, white 0.076%, 0.077%, white 0.078%, 0.079%, white 0.08%, 0.081%, white 0.082%, 0.083%, white 0.084%, 0.085%, white 0.086%, 0.087%, white 0.088%, 0.089%, white 0.09%, 0.091%, white 0.092%, 0.093%, white 0.094%, 0.095%, white 0.096%, 0.097%, white 0.098%, 0.099%, white 0.1%, 0.101%, white 0.102%, 0.103%, white 0.104%, 0.105%, white 0.106%, 0.107%, white 0.108%, 0.109%, white 0.11%, 0.111%, white 0.112%, 0.113%, white 0.114%, 0.115%, white 0.116%, 0.117%, white 0.118%, 0.119%, white 0.12%, 0.121%, white 0.122%, 0.123%, white 0.124%, 0.125%, white 0.126%, 0.127%, white 0.128%, 0.129%, white 0.13%, 0.131%, white 0.132%, 0.133%, white 0.134%, 0.135%, white 0.136%, 0.137%, white 0.138%, 0.139%, white 0.14%, 0.141%, white 0.142%, 0.143%, white 0.144%, 0.145%, white 0.146%, 0.147%, white 0.148%, 0.149%, white 0.15%, 0.151%, white 0.152%, 0.153%, white 0.154%, 0.155%, white 0.156%, 0.157%, white 0.158%, 0.159%, white 0.16%, 0.161%, white 0.162%, 0.163%, white 0.164%, 0.165%, white 0.166%, 0.167%, white 0.168%, 0.169%, white 0.17%, 0.171%, white 0.172%, 0.173%, white 0.174%, 0.175%, white 0.176%, 0.177%, white 0.178%, 0.179%, white 0.18%, 0.181%, white 0.182%, 0.183%, white 0.184%, 0.185%, white 0.186%, 0.187%, white 0.188%, 0.189%, white 0.19%, 0.191%, white 0.192%, 0.193%, white 0.194%, 0.195%, white 0.196%, 0.197%, white 0.198%, 0.199%, white 0.2%, 0.201%, white 0.202%, 0.203%, white 0.204%, 0.205%, white 0.206%, 0.207%, white 0.208%, 0.209%, white 0.21%, 0.211%, white 0.212%, 0.213%, white 0.214%, 0.215%, white 0.216%, 0.217%, white 0.218%, 0.219%, white 0.22%, 0.221%, white 0.222%, 0.223%, white 0.224%, 0.225%, white 0.226%, 0.227%, white 0.228%, 0.229%, white 0.23%, 0.231%, white 0.232%, 0.233%, white 0.234%, 0.235%, white 0.236%, 0.237%, white 0.238%, 0.239%, white 0.24%, 0.241%, white 0.242%, 0.243%, white 0.244%, 0.245%, white 0.246%, 0.247%, white 0.248%, 0.249%, white 0.25%, 0.251%, white 0.252%, 0.253%, white 0.254%, 0.255%, white 0.256%, 0.257%, white 0.258%, 0.259%, white 0.26%, 0.261%, white 0.262%, 0.263%, white 0.264%, 0.265%, white 0.266%, 0.267%, white 0.268%, 0.269%, white 0.27%, 0.271%, white 0.272%, 0.273%, white 0.274%, 0.275%, white 0.276%, 0.277%, white 0.278%, 0.279%, white 0.28%, 0.281%, white 0.282%, 0.283%, white 0.284%, 0.285%, white 0.286%, 0.287%, white 0.288%, 0.289%, white 0.29%, 0.291%, white 0.292%, 0.293%, white 0.294%, 0.295%, white 0.296%, 0.297%, white 0.298%, 0.299%, white 0.3%, 0.301%, white 0.302%, 0.303%, white 0.304%, 0.305%, white 0.306%, 0.307%, white 0.308%, 0.309%, white 0.31%, 0.311%, white 0.312%, 0.313%, white 0.314%, 0.315%, white 0.316%, 0.317%, white 0.318%, 0.319%, white 0.32%, 0.321%, white 0.322%, 0.323%, white 0.324%, 0.325%, white 0.326%, 0.327%, white 0.328%, 0.329%, white 0.33%, 0.331%, white 0.332%, 0.333%, white 0.334%, 0.335%, white 0.336%, 0.337%, white 0.338%, 0.339%, white 0.34%, 0.341%, white 0.342%, 0.343%, white 0.344%, 0.345%, white 0.346%, 0.347%, white 0.348%, 0.349%, white 0.35%, 0.351%, white 0.352%, 0.353%, white 0.354%, 0.355%, white 0.356%, 0.357%, white 0.358%, 0.359%, white 0.36%, 0.361%, white 0.362%, 0.363%, white 0.364%, 0.365%, white 0.366%, 0.367%, white 0.368%, 0.369%, white 0.37%, 0.371%, white 0.372%, 0.373%, white 0.374%, 0.375%, white 0.376%, 0.377%, white 0.378%, 0.379%, white 0.38%, 0.381%, white 0.382%, 0.383%, white 0.384%, 0.385%, white 0.386%, 0.387%, white 0.388%, 0.389%, white 0.39%, 0.391%, white 0.392%, 0.393%, white 0.394%, 0.395%, white 0.396%, 0.397%, white 0.398%, 0.399%, white 0.4%, 0.401%, white 0.402%, 0.403%, white 0.404%, 0.405%, white 0.406%, 0.407%, white 0.408%, 0.409%, white 0.41%, 0.411%, white 0.412%, 0.413%, white 0.414%, 0.415%, white 0.416%, 0.417%, white 0.418%, 0.419%, white 0.42%, 0.421%, white 0.422%, 0.423%, white 0.424%, 0.425%, white 0.426%, 0.427%, white 0.428%, 0.429%, white 0.43%, 0.431%, white 0.432%, 0.433%, white 0.434%, 0.435%, white 0.436%, 0.437%, white 0.438%, 0.439%, white 0.44%, 0.441%, white 0.442%, 0.443%, white 0.444%, 0.445%, white 0.446%, 0.447%, white 0.448%, 0.449%, white 0.45%, 0.451%, white 0.452%, 0.453%, white 0.454%, 0.455%, white 0.456%, 0.457%, white 0.458%, 0.459%, white 0.46%, 0.461%, white 0.462%, 0.463%, white 0.464%, 0.465%, white 0.466%, 0.467%, white 0.468%, 0.469%, white 0.47%, 0.471%, white 0.472%, 0.473%, white 0.474%, 0.475%, white 0.476%, 0.477%, white 0.478%, 0.479%, white 0.48%, 0.481%, white 0.482%, 0.483%, white 0.484%, 0.485%, white 0.486%, 0.487%, white 0.488%, 0.489%, white 0.49%, 0.491%, white 0.492%, 0.493%, white 0.494%, 0.495%, white 0.496%, 0.497%, white 0.498%, 0.499%, white 0.5%, 0.501%, white 0.502%, 0.503%, white 0.504%, 0.505%, white 0.506%, 0.507%, white 0.508%, 0.509%, white 0.51%, 0.511%, white 0.512%, 0.513%, white 0.514%, 0.515%, white 0.516%, 0.517%, white 0.518%, 0.519%, white 0.52%, 0.521%, white 0.522%, 0.523%, white 0.524%, 0.525%, white 0.526%, 0.527%, white 0.528%, 0.529%, white 0.53%, 0.531%, white 0.532%, 0.533%, white 0.534%, 0.535%, white 0.536%, 0.537%, white 0.538%, 0.539%, white 0.54%, 0.541%, white 0.542%, 0.543%, white 0.544%, 0.545%, white 0.546%, 0.547%, white 0.548%, 0.549%, white 0.55%, 0.551%, white 0.552%, 0.553%, white 0.554%, 0.555%, white 0.556%, 0.557%, white 0.558%, 0.559%, white 0.56%, 0.561%, white 0.562%, 0.563%, white 0.564%, 0.565%, white 0.566%, 0.567%, white 0.568%, 0.569%, white 0.57%, 0.571%, white 0.572%, 0.573%, white 0.574%, 0.575%, white 0.576%, 0.577%, white 0.578%, 0.579%, white 0.58%, 0.581%, white 0.582%, 0.583%, white 0.584%, 0.585%, white 0.586%, 0.587%, white 0.588%, 0.589%, white 0.59%, 0.591%, white 0.592%, 0.593%, white 0.594%, 0.595%, white 0.596%, 0.597%, white 0.598%, 0.599%, white 0.6%, 0.601%, white 0.602%, 0.603%, white 0.604%, 0.605%, white 0.606%, 0.607%, white 0.608%, 0.609%, white 0.61%, 0.611%, white 0.612%, 0.613%, white 0.614%, 0.615%, white 0.616%, 0.617%, white 0.618%, 0.619%, white 0.62%, 0.621%, white 0.622%, 0.623%, white 0.624%, 0.625%, white 0.626%, 0.627%, white 0.628%, 0.629%, white 0.63%, 0.631%, white 0.632%, 0.633%, white 0.634%, 0.635%, white 0.636%, 0.637%, white 0.638%, 0.639%, white 0.64%, 0.641%, white 0.642%, 0.643%, white 0.644%, 0.645%, white 0.646%, 0.647%, white 0.648%, 0.649%, white 0.65%, 0.651%, white 0.652%, 0.653%, white 0.654%, 0.655%, white 0.656%, 0.657%, white 0.658%, 0.659%, white 0.66%, 0.661%, white 0.662%, 0.663%, white 0.664%, 0.665%, white 0.666%, 0.667%, white 0.668%, 0.669%, white 0.67%, 0.671%, white 0.672%, 0.673%, white 0.674%, 0.675%, white 0.676%, 0.677%, white 0.678%, 0.679%, white 0.68%, 0.681%, white 0.682%, 0.683%, white 0.684%, 0.685%, white 0.686%, 0.687%, white 0.688%, 0.689%, white 0.69%, 0.691%, white 0.692%, 0.693%, white 0.694%, 0.695%, white 0.696%, 0.697%, white 0.698%, 0.699%, white 0.7%, 0.701%, white 0.702%, 0.703%, white 0.704%, 0.705%, white 0.706%, 0.707%, white 0.708%, 0.709%, white 0.71%, 0.711%, white 0.712%, 0.713%, white 0.714%, 0.715%, white 0.716%, 0.717%, white 0.718%, 0.719%, white 0.72%, 0.721%, white 0.722%, 0.723%, white 0.724%, 0.725%, white 0.726%, 0.727%, white 0.728%, 0.729%, white 0.73%, 0.731%, white 0.732%, 0.733%, white 0.734%, 0.735%, white 0.736%, 0.737%, white 0.738%, 0.739%, white 0.74%, 0.741%, white 0.742%, 0.743%, white 0.744%, 0.745%, white 0.746%, 0.747%, white 0.748%, 0.749%, white 0.75%, 0.751%, white 0.752%, 0.753%, white 0.754%, 0.755%, white 0.756%, 0.757%, white 0.758%, 0.759%, white 0.76%, 0.761%, white 0.762%, 0.763%, white 0.764%, 0.765%, white 0.766%, 0.767%, white 0.768%, 0.769%, white 0.77%, 0.771%, white 0.772%, 0.773%, white 0.774%, 0.775%, white 0.776%, 0.777%, white 0.778%, 0.779%, white 0.78%, 0.781%, white 0.782%, 0.783%, white 0.784%, 0.785%, white 0.786%, 0.787%, white 0.788%, 0.789%, white 0.79%, 0.791%, white 0.792%, 0.793%, white 0.794%, 0.795%, white 0.796%, 0.797%, white 0.798%, 0.799%, white 0.8%, 0.801%, white 0.802%, 0.803%, white 0.804%, 0.805%, white 0.806%, 0.807%, white 0.808%, 0.809%, white 0.81%, 0.811%, white 0.812%, 0.813%, white 0.814%, 0.815%, white 0.816%, 0.817%, white 0.818%, 0.819%, white 0.82%, 0.821%, white 0.822%, 0.823%, white 0.824%, 0.825%, white 0.826%, 0.827%, white 0.828%, 0.829%, white 0.83%, 0.831%, white 0.832%, 0.833%, white 0.834%, 0.835%, white 0.836%, 0.837%, white 0.838%, 0.839%, white 0.84%, 0.841%, white 0.842%, 0.843%, white 0.844%, 0.845%, white 0.846%, 0.847%, white 0.848%, 0.849%, white 0.85%, 0.851%, white 0.852%, 0.853%, white 0.854%, 0.855%, white 0.856%, 0.857%, white 0.858%, 0.859%, white 0.86%, 0.861%, white 0.862%, 0.863%, white 0.864%, 0.865%, white 0.866%, 0.867%, white 0.868%, 0.869%, white 0.87%, 0.871%, white 0.872%, 0.873%, white 0.874%, 0.875%, white 0.876%, 0.877%, white 0.878%, 0.879%, white 0.88%, 0.881%, white 0.882%, 0.883%, white 0.884%, 0.885%, white 0.886%, 0.887%, white 0.888%, 0.889%, white 0.89%, 0.891%, white 0.892%, 0.893%, white 0.894%, 0.895%, white 0.896%, 0.897%, white 0.898%, 0.899%, white 0.9%, 0.901%, white 0.902%, 0.903%, white 0.904%, 0.905%, white 0.906%, 0.907%, white 0.908%, 0.909%, white 0.91%, 0.911%, white 0.912%, 0.913%, white 0.914%, 0.915%, white 0.916%, 0.917%, white 0.918%, 0.919%, white 0.92%, 0.921%, white 0.922%, 0.923%, white 0.924%, 0.925%, white 0.926%, 0.927%, white 0.928%, 0.929%, white 0.93%, 0.931%, white 0.932%, 0.933%, white 0.934%, 0.935%, white 0.936%, 0.937%, white 0.938%, 0.939%, white 0.94%, 0.941%, white 0.942%, 0.943%, white 0.944%, 0.945%, white 0.946%, 0.947%, white 0.948%, 0.949%, white 0.95%, 0.951%, white 0.952%, 0.953%, white 0.954%, 0.955%, white 0.956%, 0.957%, white 0.958%, 0.959%, white 0.96%, 0.961%, white 0.962%, 0.963%, white 0.964%, 0.965%, white 0.966%, 0.967%, white 0.968%, 0.969%, white 0.97%, 0.971%, white 0.972%, 0.973%, white 0.974%, 0.975%, white 0.976%, 0.977%, white 0.978%, 0.979%, white 0.98%, 0.981%, white 0.982%, 0.983%, white 0.984%, 0.985%, white 0.986%, 0.987%, white 0.988%, 0.989%, white 0.99%, 0.991%, white 0.992%, 0.993%, white 0.994%, 0.995%, white 0.996%, 0.997%, white 0.998%, 0.999%, black) [ parsable ] \ No newline at end of file From cdbf4f49e1130ba5d2402ab7c429dd52d4a75e90 Mon Sep 17 00:00:00 2001 From: Callum Law Date: Fri, 17 Oct 2025 17:25:04 +1300 Subject: [PATCH 2/9] LibWeb: Support '' in '` ` = [ | ]{1,2}` but we were previously parsing instead as `{1,2}`. --- Libraries/LibWeb/CSS/Parser/GradientParsing.cpp | 13 ++++++++++++- .../css/css-images/gradient/color-stops-parsing.txt | 7 +++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/Libraries/LibWeb/CSS/Parser/GradientParsing.cpp b/Libraries/LibWeb/CSS/Parser/GradientParsing.cpp index 9ac88f68ef8..dd53ebdfc15 100644 --- a/Libraries/LibWeb/CSS/Parser/GradientParsing.cpp +++ b/Libraries/LibWeb/CSS/Parser/GradientParsing.cpp @@ -126,7 +126,18 @@ Optional> Parser::parse_angular_color_stop_l // , [ ? , ]# return parse_color_stop_list( tokens, - [&](auto& it) { return parse_angle_percentage(it); }); + [&](TokenStream& it) -> Optional { + if (tokens.next_token().is(Token::Type::Number)) { + auto transaction = tokens.begin_transaction(); + auto numeric_value = tokens.consume_a_token().token().number_value(); + if (numeric_value == 0) { + transaction.commit(); + return Angle::make_degrees(0); + } + } + + return parse_angle_percentage(it); + }); } Optional Parser::parse_interpolation_method(TokenStream& tokens) diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-images/gradient/color-stops-parsing.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-images/gradient/color-stops-parsing.txt index 07dccbff62e..672139f8483 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-images/gradient/color-stops-parsing.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-images/gradient/color-stops-parsing.txt @@ -2,8 +2,7 @@ Harness status: OK Found 162 tests -160 Pass -2 Fail +162 Pass Pass linear-gradient() [ unparsable ] Pass linear-gradient(black, 25%) [ unparsable ] Pass linear-gradient(black, invalid) [ unparsable ] @@ -125,7 +124,7 @@ Pass conic-gradient(0%, black, white) [ unparsable ] Pass conic-gradient(black) [ parsable ] Pass conic-gradient(black 0%) [ parsable ] Pass conic-gradient(black, white) [ parsable ] -Fail conic-gradient(black 0, white) [ parsable ] +Pass conic-gradient(black 0, white) [ parsable ] Pass conic-gradient(black 0%, white) [ parsable ] Pass conic-gradient(black 0%, white 100%) [ parsable ] Pass conic-gradient(black, green, white) [ parsable ] @@ -152,7 +151,7 @@ Pass repeating-conic-gradient(0%, black, white) [ unparsable ] Pass repeating-conic-gradient(black) [ parsable ] Pass repeating-conic-gradient(black 0%) [ parsable ] Pass repeating-conic-gradient(black, white) [ parsable ] -Fail repeating-conic-gradient(black 0, white) [ parsable ] +Pass repeating-conic-gradient(black 0, white) [ parsable ] Pass repeating-conic-gradient(black 0%, white) [ parsable ] Pass repeating-conic-gradient(black 0%, white 100%) [ parsable ] Pass repeating-conic-gradient(black, green, white) [ parsable ] From ced862c460ccd6d04a6db9885f62ba46901cc0db Mon Sep 17 00:00:00 2001 From: stelar7 Date: Wed, 15 Oct 2025 16:54:01 +0200 Subject: [PATCH 3/9] LibWeb/IDB: Apply default cursor direction IDBGetAllOptions is supposed to have a default value for direction. When the value passed is not a potentially valid key range, we need to default the direction argument, and not assume its set Spec issue: https://github.com/w3c/IndexedDB/pull/478 --- Libraries/LibWeb/IndexedDB/Internal/Algorithms.cpp | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/Libraries/LibWeb/IndexedDB/Internal/Algorithms.cpp b/Libraries/LibWeb/IndexedDB/Internal/Algorithms.cpp index 48d8258e8e9..fa606511556 100644 --- a/Libraries/LibWeb/IndexedDB/Internal/Algorithms.cpp +++ b/Libraries/LibWeb/IndexedDB/Internal/Algorithms.cpp @@ -2405,17 +2405,15 @@ WebIDL::ExceptionOr> create_a_request_to_retrieve_multiple_i // 6. Let range be a key range. GC::Ptr range; - // 7. Let direction be a cursor direction. - Bindings::IDBCursorDirection direction; + // 7. Let direction be "next". + // FIXME: Spec bug: https://github.com/w3c/IndexedDB/pull/478 + Bindings::IDBCursorDirection direction = Bindings::IDBCursorDirection::Next; // 8. If running is a potentially valid key range with queryOrOptions is true, then: // AD-HOC: Check if query_or_options is null following https://github.com/w3c/IndexedDB/issues/475 if (query_or_options.is_nullish() || is_a_potentially_valid_key_range(realm, query_or_options)) { // 1. Set range to the result of converting a value to a key range with queryOrOptions. Rethrow any exceptions. range = TRY(convert_a_value_to_a_key_range(realm, query_or_options)); - - // 2. Set direction to "next". - direction = Bindings::IDBCursorDirection::Next; } // 9. Else: @@ -2436,8 +2434,6 @@ WebIDL::ExceptionOr> create_a_request_to_retrieve_multiple_i direction = Bindings::IDBCursorDirection::Prev; else if (direction_value == "prevunique") direction = Bindings::IDBCursorDirection::Prevunique; - else - return WebIDL::SimpleException { WebIDL::SimpleExceptionType::TypeError, "Invalid direction value"_string }; } // 10. Let operation be an algorithm to run. From 383dd28217ff4eebb71f0497f019e839fb992768 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Fri, 17 Oct 2025 10:38:31 +0200 Subject: [PATCH 4/9] LibWebView: Add CLI option to run with content filters disabled Let's have a way to run all the JavaScript the web wants to give us. This was previously available as a Debug menu option, and this makes it available from process startup. --- Libraries/LibWebView/Application.cpp | 5 ++++- Libraries/LibWebView/Options.h | 6 ++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Libraries/LibWebView/Application.cpp b/Libraries/LibWebView/Application.cpp index 525efcb9247..a6302f21827 100644 --- a/Libraries/LibWebView/Application.cpp +++ b/Libraries/LibWebView/Application.cpp @@ -118,6 +118,7 @@ ErrorOr Application::initialize(Main::Arguments const& arguments) bool enable_idl_tracing = false; bool disable_http_cache = false; bool enable_http_disk_cache = false; + bool disable_content_filter = false; bool enable_autoplay = false; bool expose_internals_object = false; bool force_cpu_painting = false; @@ -166,6 +167,7 @@ ErrorOr Application::initialize(Main::Arguments const& arguments) args_parser.add_option(enable_idl_tracing, "Enable IDL tracing", "enable-idl-tracing"); args_parser.add_option(disable_http_cache, "Disable HTTP cache", "disable-http-cache"); args_parser.add_option(enable_http_disk_cache, "Enable HTTP disk cache", "enable-http-disk-cache"); + args_parser.add_option(disable_content_filter, "Disable content filter", "disable-content-filter"); args_parser.add_option(enable_autoplay, "Enable multimedia autoplay", "enable-autoplay"); args_parser.add_option(expose_internals_object, "Expose internals object", "expose-internals-object"); args_parser.add_option(force_cpu_painting, "Force CPU painting", "force-cpu-painting"); @@ -243,6 +245,7 @@ ErrorOr Application::initialize(Main::Arguments const& arguments) : DNSSettings(DNSOverUDP(dns_server_address.release_value(), *dns_server_port, validate_dnssec_locally)) } : OptionalNone()), .devtools_port = devtools_port, + .enable_content_filter = disable_content_filter ? EnableContentFilter::No : EnableContentFilter::Yes, }; if (window_width.has_value()) @@ -856,7 +859,7 @@ void Application::initialize_actions() m_debug_menu->add_action(*m_enable_scripting_action); m_enable_content_filtering_action = Action::create_checkable("Enable Content Filtering"sv, ActionID::EnableContentFiltering, check(m_enable_content_filtering_action, "content-filtering"sv)); - m_enable_content_filtering_action->set_checked(true); + m_enable_content_filtering_action->set_checked(m_browser_options.enable_content_filter == WebView::EnableContentFilter::Yes); m_debug_menu->add_action(*m_enable_content_filtering_action); m_block_pop_ups_action = Action::create_checkable("Block Pop-ups"sv, ActionID::BlockPopUps, check(m_block_pop_ups_action, "block-pop-ups"sv)); diff --git a/Libraries/LibWebView/Options.h b/Libraries/LibWebView/Options.h index b4decc00bef..1b117185512 100644 --- a/Libraries/LibWebView/Options.h +++ b/Libraries/LibWebView/Options.h @@ -68,6 +68,11 @@ using DNSSettings = Variant; constexpr inline u16 default_devtools_port = 6000; +enum class EnableContentFilter { + No, + Yes, +}; + struct BrowserOptions { Vector urls; Vector raw_urls; @@ -84,6 +89,7 @@ struct BrowserOptions { Optional webdriver_content_ipc_path {}; Optional dns_settings {}; Optional devtools_port; + EnableContentFilter enable_content_filter { EnableContentFilter::Yes }; }; enum class EnableHTTPDiskCache { From fb64be2f788520ed56b14a556b7483d68ca93279 Mon Sep 17 00:00:00 2001 From: Callum Law Date: Fri, 17 Oct 2025 00:37:40 +1300 Subject: [PATCH 5/9] Tests: Import some `css-shapes` tests --- .../shape-image-threshold-interpolation.txt | 125 +++++++ .../animation/shape-margin-composition.txt | 25 ++ .../animation/shape-margin-interpolation.txt | 125 +++++++ .../animation/shape-outside-composition.txt | 69 ++++ .../animation/shape-outside-interpolation.txt | 329 ++++++++++++++++++ .../shape-image-threshold-computed.txt | 11 + .../parsing/shape-image-threshold-invalid.txt | 7 + .../parsing/shape-image-threshold-valid.txt | 10 + .../parsing/shape-margin-computed.txt | 8 + .../parsing/shape-margin-invalid.txt | 7 + .../css-shapes/parsing/shape-margin-valid.txt | 9 + .../parsing/shape-outside-computed.txt | 17 + .../shape-outside-invalid-position.txt | 15 + .../parsing/shape-outside-valid-position.txt | 25 ++ .../circle-function-computed.txt | 19 + .../circle-function-invalid.txt | 15 + .../shape-functions/circle-function-valid.txt | 19 + .../ellipse-function-computed.txt | 19 + .../ellipse-function-invalid.txt | 15 + .../ellipse-function-valid.txt | 19 + .../inset-function-computed.txt | 16 + .../inset-function-invalid.txt | 17 + .../shape-functions/inset-function-valid.txt | 16 + .../polygon-function-computed.txt | 9 + .../polygon-function-invalid.txt | 8 + .../polygon-function-valid.txt | 9 + .../rect-function-computed.txt | 16 + .../shape-functions/rect-function-invalid.txt | 19 + .../shape-functions/rect-function-valid.txt | 17 + .../shape-function-computed.txt | 36 ++ .../shape-function-invalid.txt | 45 +++ .../shape-functions/shape-function-valid.txt | 56 +++ .../xywh-function-computed.txt | 12 + .../shape-functions/xywh-function-invalid.txt | 11 + .../shape-functions/xywh-function-valid.txt | 12 + .../shape-image-threshold-interpolation.html | 87 +++++ .../animation/shape-margin-composition.html | 65 ++++ .../animation/shape-margin-interpolation.html | 87 +++++ .../animation/shape-outside-composition.html | 189 ++++++++++ .../shape-outside-interpolation.html | 137 ++++++++ .../shape-image-threshold-computed.html | 25 ++ .../shape-image-threshold-invalid.html | 19 + .../parsing/shape-image-threshold-valid.html | 24 ++ .../parsing/shape-margin-computed.html | 25 ++ .../parsing/shape-margin-invalid.html | 19 + .../parsing/shape-margin-valid.html | 21 ++ .../parsing/shape-outside-computed.html | 40 +++ .../shape-outside-invalid-position.html | 29 ++ .../parsing/shape-outside-valid-position.html | 38 ++ .../circle-function-computed.html | 32 ++ .../circle-function-invalid.html | 26 ++ .../circle-function-valid.html | 32 ++ .../ellipse-function-computed.html | 32 ++ .../ellipse-function-invalid.html | 26 ++ .../ellipse-function-valid.html | 31 ++ .../inset-function-computed.html | 28 ++ .../inset-function-invalid.html | 28 ++ .../shape-functions/inset-function-valid.html | 27 ++ .../polygon-function-computed.html | 21 ++ .../polygon-function-invalid.html | 19 + .../polygon-function-valid.html | 20 ++ .../rect-function-computed.html | 28 ++ .../rect-function-invalid.html | 30 ++ .../shape-functions/rect-function-valid.html | 27 ++ .../shape-function-computed.html | 65 ++++ .../shape-function-invalid.html | 74 ++++ .../shape-functions/shape-function-valid.html | 103 ++++++ .../xywh-function-computed.html | 25 ++ .../xywh-function-invalid.html | 22 ++ .../shape-functions/xywh-function-valid.html | 23 ++ 70 files changed, 2711 insertions(+) create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-image-threshold-interpolation.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-margin-composition.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-margin-interpolation.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-outside-composition.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-outside-interpolation.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-image-threshold-computed.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-image-threshold-invalid.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-image-threshold-valid.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-margin-computed.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-margin-invalid.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-margin-valid.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-outside-computed.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-outside-invalid-position.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-outside-valid-position.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/circle-function-computed.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/circle-function-invalid.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/circle-function-valid.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/ellipse-function-computed.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/ellipse-function-invalid.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/ellipse-function-valid.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/inset-function-computed.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/inset-function-invalid.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/inset-function-valid.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/polygon-function-computed.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/polygon-function-invalid.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/polygon-function-valid.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/rect-function-computed.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/rect-function-invalid.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/rect-function-valid.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/shape-function-computed.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/shape-function-invalid.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/shape-function-valid.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/xywh-function-computed.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/xywh-function-invalid.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/xywh-function-valid.txt create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-shapes/animation/shape-image-threshold-interpolation.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-shapes/animation/shape-margin-composition.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-shapes/animation/shape-margin-interpolation.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-shapes/animation/shape-outside-composition.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-shapes/animation/shape-outside-interpolation.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-image-threshold-computed.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-image-threshold-invalid.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-image-threshold-valid.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-margin-computed.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-margin-invalid.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-margin-valid.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-outside-computed.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-outside-invalid-position.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-outside-valid-position.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/circle-function-computed.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/circle-function-invalid.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/circle-function-valid.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/ellipse-function-computed.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/ellipse-function-invalid.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/ellipse-function-valid.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/inset-function-computed.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/inset-function-invalid.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/inset-function-valid.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/polygon-function-computed.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/polygon-function-invalid.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/polygon-function-valid.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/rect-function-computed.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/rect-function-invalid.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/rect-function-valid.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/shape-function-computed.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/shape-function-invalid.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/shape-function-valid.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/xywh-function-computed.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/xywh-function-invalid.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/xywh-function-valid.html diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-image-threshold-interpolation.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-image-threshold-interpolation.txt new file mode 100644 index 00000000000..1d04bf9100f --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-image-threshold-interpolation.txt @@ -0,0 +1,125 @@ +Harness status: OK + +Found 120 tests + +120 Fail +Fail CSS Transitions: property from neutral to [0.8] at (-1.5) should be [0.3] +Fail CSS Transitions: property from neutral to [0.8] at (-0.5) should be [0.5] +Fail CSS Transitions: property from neutral to [0.8] at (0) should be [0.6] +Fail CSS Transitions: property from neutral to [0.8] at (0.5) should be [0.7] +Fail CSS Transitions: property from neutral to [0.8] at (1) should be [0.8] +Fail CSS Transitions: property from neutral to [0.8] at (1.5) should be [0.9] +Fail CSS Transitions with transition: all: property from neutral to [0.8] at (-1.5) should be [0.3] +Fail CSS Transitions with transition: all: property from neutral to [0.8] at (-0.5) should be [0.5] +Fail CSS Transitions with transition: all: property from neutral to [0.8] at (0) should be [0.6] +Fail CSS Transitions with transition: all: property from neutral to [0.8] at (0.5) should be [0.7] +Fail CSS Transitions with transition: all: property from neutral to [0.8] at (1) should be [0.8] +Fail CSS Transitions with transition: all: property from neutral to [0.8] at (1.5) should be [0.9] +Fail CSS Animations: property from neutral to [0.8] at (-1.5) should be [0.3] +Fail CSS Animations: property from neutral to [0.8] at (-0.5) should be [0.5] +Fail CSS Animations: property from neutral to [0.8] at (0) should be [0.6] +Fail CSS Animations: property from neutral to [0.8] at (0.5) should be [0.7] +Fail CSS Animations: property from neutral to [0.8] at (1) should be [0.8] +Fail CSS Animations: property from neutral to [0.8] at (1.5) should be [0.9] +Fail Web Animations: property from neutral to [0.8] at (-1.5) should be [0.3] +Fail Web Animations: property from neutral to [0.8] at (-0.5) should be [0.5] +Fail Web Animations: property from neutral to [0.8] at (0) should be [0.6] +Fail Web Animations: property from neutral to [0.8] at (0.5) should be [0.7] +Fail Web Animations: property from neutral to [0.8] at (1) should be [0.8] +Fail Web Animations: property from neutral to [0.8] at (1.5) should be [0.9] +Fail CSS Transitions: property from [initial] to [0.8] at (-1.5) should be [0] +Fail CSS Transitions: property from [initial] to [0.8] at (-0.5) should be [0] +Fail CSS Transitions: property from [initial] to [0.8] at (0) should be [0] +Fail CSS Transitions: property from [initial] to [0.8] at (0.5) should be [0.4] +Fail CSS Transitions: property from [initial] to [0.8] at (1) should be [0.8] +Fail CSS Transitions: property from [initial] to [0.8] at (1.5) should be [1] +Fail CSS Transitions with transition: all: property from [initial] to [0.8] at (-1.5) should be [0] +Fail CSS Transitions with transition: all: property from [initial] to [0.8] at (-0.5) should be [0] +Fail CSS Transitions with transition: all: property from [initial] to [0.8] at (0) should be [0] +Fail CSS Transitions with transition: all: property from [initial] to [0.8] at (0.5) should be [0.4] +Fail CSS Transitions with transition: all: property from [initial] to [0.8] at (1) should be [0.8] +Fail CSS Transitions with transition: all: property from [initial] to [0.8] at (1.5) should be [1] +Fail CSS Animations: property from [initial] to [0.8] at (-1.5) should be [0] +Fail CSS Animations: property from [initial] to [0.8] at (-0.5) should be [0] +Fail CSS Animations: property from [initial] to [0.8] at (0) should be [0] +Fail CSS Animations: property from [initial] to [0.8] at (0.5) should be [0.4] +Fail CSS Animations: property from [initial] to [0.8] at (1) should be [0.8] +Fail CSS Animations: property from [initial] to [0.8] at (1.5) should be [1] +Fail Web Animations: property from [initial] to [0.8] at (-1.5) should be [0] +Fail Web Animations: property from [initial] to [0.8] at (-0.5) should be [0] +Fail Web Animations: property from [initial] to [0.8] at (0) should be [0] +Fail Web Animations: property from [initial] to [0.8] at (0.5) should be [0.4] +Fail Web Animations: property from [initial] to [0.8] at (1) should be [0.8] +Fail Web Animations: property from [initial] to [0.8] at (1.5) should be [1] +Fail CSS Transitions: property from [inherit] to [0.8] at (-1.5) should be [0] +Fail CSS Transitions: property from [inherit] to [0.8] at (-0.5) should be [0.2] +Fail CSS Transitions: property from [inherit] to [0.8] at (0) should be [0.4] +Fail CSS Transitions: property from [inherit] to [0.8] at (0.5) should be [0.6] +Fail CSS Transitions: property from [inherit] to [0.8] at (1) should be [0.8] +Fail CSS Transitions: property from [inherit] to [0.8] at (1.5) should be [1] +Fail CSS Transitions with transition: all: property from [inherit] to [0.8] at (-1.5) should be [0] +Fail CSS Transitions with transition: all: property from [inherit] to [0.8] at (-0.5) should be [0.2] +Fail CSS Transitions with transition: all: property from [inherit] to [0.8] at (0) should be [0.4] +Fail CSS Transitions with transition: all: property from [inherit] to [0.8] at (0.5) should be [0.6] +Fail CSS Transitions with transition: all: property from [inherit] to [0.8] at (1) should be [0.8] +Fail CSS Transitions with transition: all: property from [inherit] to [0.8] at (1.5) should be [1] +Fail CSS Animations: property from [inherit] to [0.8] at (-1.5) should be [0] +Fail CSS Animations: property from [inherit] to [0.8] at (-0.5) should be [0.2] +Fail CSS Animations: property from [inherit] to [0.8] at (0) should be [0.4] +Fail CSS Animations: property from [inherit] to [0.8] at (0.5) should be [0.6] +Fail CSS Animations: property from [inherit] to [0.8] at (1) should be [0.8] +Fail CSS Animations: property from [inherit] to [0.8] at (1.5) should be [1] +Fail Web Animations: property from [inherit] to [0.8] at (-1.5) should be [0] +Fail Web Animations: property from [inherit] to [0.8] at (-0.5) should be [0.2] +Fail Web Animations: property from [inherit] to [0.8] at (0) should be [0.4] +Fail Web Animations: property from [inherit] to [0.8] at (0.5) should be [0.6] +Fail Web Animations: property from [inherit] to [0.8] at (1) should be [0.8] +Fail Web Animations: property from [inherit] to [0.8] at (1.5) should be [1] +Fail CSS Transitions: property from [unset] to [0.8] at (-1.5) should be [0] +Fail CSS Transitions: property from [unset] to [0.8] at (-0.5) should be [0] +Fail CSS Transitions: property from [unset] to [0.8] at (0) should be [0] +Fail CSS Transitions: property from [unset] to [0.8] at (0.5) should be [0.4] +Fail CSS Transitions: property from [unset] to [0.8] at (1) should be [0.8] +Fail CSS Transitions: property from [unset] to [0.8] at (1.5) should be [1] +Fail CSS Transitions with transition: all: property from [unset] to [0.8] at (-1.5) should be [0] +Fail CSS Transitions with transition: all: property from [unset] to [0.8] at (-0.5) should be [0] +Fail CSS Transitions with transition: all: property from [unset] to [0.8] at (0) should be [0] +Fail CSS Transitions with transition: all: property from [unset] to [0.8] at (0.5) should be [0.4] +Fail CSS Transitions with transition: all: property from [unset] to [0.8] at (1) should be [0.8] +Fail CSS Transitions with transition: all: property from [unset] to [0.8] at (1.5) should be [1] +Fail CSS Animations: property from [unset] to [0.8] at (-1.5) should be [0] +Fail CSS Animations: property from [unset] to [0.8] at (-0.5) should be [0] +Fail CSS Animations: property from [unset] to [0.8] at (0) should be [0] +Fail CSS Animations: property from [unset] to [0.8] at (0.5) should be [0.4] +Fail CSS Animations: property from [unset] to [0.8] at (1) should be [0.8] +Fail CSS Animations: property from [unset] to [0.8] at (1.5) should be [1] +Fail Web Animations: property from [unset] to [0.8] at (-1.5) should be [0] +Fail Web Animations: property from [unset] to [0.8] at (-0.5) should be [0] +Fail Web Animations: property from [unset] to [0.8] at (0) should be [0] +Fail Web Animations: property from [unset] to [0.8] at (0.5) should be [0.4] +Fail Web Animations: property from [unset] to [0.8] at (1) should be [0.8] +Fail Web Animations: property from [unset] to [0.8] at (1.5) should be [1] +Fail CSS Transitions: property from [0.5] to [1] at (-1.5) should be [0] +Fail CSS Transitions: property from [0.5] to [1] at (-0.5) should be [0.25] +Fail CSS Transitions: property from [0.5] to [1] at (0) should be [0.5] +Fail CSS Transitions: property from [0.5] to [1] at (0.5) should be [0.75] +Fail CSS Transitions: property from [0.5] to [1] at (1) should be [1] +Fail CSS Transitions: property from [0.5] to [1] at (1.5) should be [1] +Fail CSS Transitions with transition: all: property from [0.5] to [1] at (-1.5) should be [0] +Fail CSS Transitions with transition: all: property from [0.5] to [1] at (-0.5) should be [0.25] +Fail CSS Transitions with transition: all: property from [0.5] to [1] at (0) should be [0.5] +Fail CSS Transitions with transition: all: property from [0.5] to [1] at (0.5) should be [0.75] +Fail CSS Transitions with transition: all: property from [0.5] to [1] at (1) should be [1] +Fail CSS Transitions with transition: all: property from [0.5] to [1] at (1.5) should be [1] +Fail CSS Animations: property from [0.5] to [1] at (-1.5) should be [0] +Fail CSS Animations: property from [0.5] to [1] at (-0.5) should be [0.25] +Fail CSS Animations: property from [0.5] to [1] at (0) should be [0.5] +Fail CSS Animations: property from [0.5] to [1] at (0.5) should be [0.75] +Fail CSS Animations: property from [0.5] to [1] at (1) should be [1] +Fail CSS Animations: property from [0.5] to [1] at (1.5) should be [1] +Fail Web Animations: property from [0.5] to [1] at (-1.5) should be [0] +Fail Web Animations: property from [0.5] to [1] at (-0.5) should be [0.25] +Fail Web Animations: property from [0.5] to [1] at (0) should be [0.5] +Fail Web Animations: property from [0.5] to [1] at (0.5) should be [0.75] +Fail Web Animations: property from [0.5] to [1] at (1) should be [1] +Fail Web Animations: property from [0.5] to [1] at (1.5) should be [1] \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-margin-composition.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-margin-composition.txt new file mode 100644 index 00000000000..c5a82fad1c3 --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-margin-composition.txt @@ -0,0 +1,25 @@ +Harness status: OK + +Found 20 tests + +20 Fail +Fail Compositing: property underlying [50px] from add [100px] to add [200px] at (-0.3) should be [120px] +Fail Compositing: property underlying [50px] from add [100px] to add [200px] at (0) should be [150px] +Fail Compositing: property underlying [50px] from add [100px] to add [200px] at (0.5) should be [200px] +Fail Compositing: property underlying [50px] from add [100px] to add [200px] at (1) should be [250px] +Fail Compositing: property underlying [50px] from add [100px] to add [200px] at (1.5) should be [300px] +Fail Compositing: property underlying [100px] from add [10px] to add [2px] at (-0.5) should be [114px] +Fail Compositing: property underlying [100px] from add [10px] to add [2px] at (0) should be [110px] +Fail Compositing: property underlying [100px] from add [10px] to add [2px] at (0.5) should be [106px] +Fail Compositing: property underlying [100px] from add [10px] to add [2px] at (1) should be [102px] +Fail Compositing: property underlying [100px] from add [10px] to add [2px] at (1.5) should be [98px] +Fail Compositing: property underlying [10%] from add [100px] to add [20%] at (-0.3) should be [calc(130px + 4%)] +Fail Compositing: property underlying [10%] from add [100px] to add [20%] at (0) should be [calc(100px + 10%)] +Fail Compositing: property underlying [10%] from add [100px] to add [20%] at (0.5) should be [calc(50px + 20%)] +Fail Compositing: property underlying [10%] from add [100px] to add [20%] at (1) should be [30%] +Fail Compositing: property underlying [10%] from add [100px] to add [20%] at (1.5) should be [calc(-50px + 40%)] +Fail Compositing: property underlying [50px] from add [100px] to replace [200px] at (-0.3) should be [135px] +Fail Compositing: property underlying [50px] from add [100px] to replace [200px] at (0) should be [150px] +Fail Compositing: property underlying [50px] from add [100px] to replace [200px] at (0.5) should be [175px] +Fail Compositing: property underlying [50px] from add [100px] to replace [200px] at (1) should be [200px] +Fail Compositing: property underlying [50px] from add [100px] to replace [200px] at (1.5) should be [225px] \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-margin-interpolation.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-margin-interpolation.txt new file mode 100644 index 00000000000..1ee035fb1fc --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-margin-interpolation.txt @@ -0,0 +1,125 @@ +Harness status: OK + +Found 120 tests + +120 Fail +Fail CSS Transitions: property from neutral to [20px] at (-0.3) should be [7px] +Fail CSS Transitions: property from neutral to [20px] at (0) should be [10px] +Fail CSS Transitions: property from neutral to [20px] at (0.3) should be [13px] +Fail CSS Transitions: property from neutral to [20px] at (0.6) should be [16px] +Fail CSS Transitions: property from neutral to [20px] at (1) should be [20px] +Fail CSS Transitions: property from neutral to [20px] at (1.5) should be [25px] +Fail CSS Transitions with transition: all: property from neutral to [20px] at (-0.3) should be [7px] +Fail CSS Transitions with transition: all: property from neutral to [20px] at (0) should be [10px] +Fail CSS Transitions with transition: all: property from neutral to [20px] at (0.3) should be [13px] +Fail CSS Transitions with transition: all: property from neutral to [20px] at (0.6) should be [16px] +Fail CSS Transitions with transition: all: property from neutral to [20px] at (1) should be [20px] +Fail CSS Transitions with transition: all: property from neutral to [20px] at (1.5) should be [25px] +Fail CSS Animations: property from neutral to [20px] at (-0.3) should be [7px] +Fail CSS Animations: property from neutral to [20px] at (0) should be [10px] +Fail CSS Animations: property from neutral to [20px] at (0.3) should be [13px] +Fail CSS Animations: property from neutral to [20px] at (0.6) should be [16px] +Fail CSS Animations: property from neutral to [20px] at (1) should be [20px] +Fail CSS Animations: property from neutral to [20px] at (1.5) should be [25px] +Fail Web Animations: property from neutral to [20px] at (-0.3) should be [7px] +Fail Web Animations: property from neutral to [20px] at (0) should be [10px] +Fail Web Animations: property from neutral to [20px] at (0.3) should be [13px] +Fail Web Animations: property from neutral to [20px] at (0.6) should be [16px] +Fail Web Animations: property from neutral to [20px] at (1) should be [20px] +Fail Web Animations: property from neutral to [20px] at (1.5) should be [25px] +Fail CSS Transitions: property from [initial] to [20px] at (-0.3) should be [0px] +Fail CSS Transitions: property from [initial] to [20px] at (0) should be [0px] +Fail CSS Transitions: property from [initial] to [20px] at (0.3) should be [6px] +Fail CSS Transitions: property from [initial] to [20px] at (0.6) should be [12px] +Fail CSS Transitions: property from [initial] to [20px] at (1) should be [20px] +Fail CSS Transitions: property from [initial] to [20px] at (1.5) should be [30px] +Fail CSS Transitions with transition: all: property from [initial] to [20px] at (-0.3) should be [0px] +Fail CSS Transitions with transition: all: property from [initial] to [20px] at (0) should be [0px] +Fail CSS Transitions with transition: all: property from [initial] to [20px] at (0.3) should be [6px] +Fail CSS Transitions with transition: all: property from [initial] to [20px] at (0.6) should be [12px] +Fail CSS Transitions with transition: all: property from [initial] to [20px] at (1) should be [20px] +Fail CSS Transitions with transition: all: property from [initial] to [20px] at (1.5) should be [30px] +Fail CSS Animations: property from [initial] to [20px] at (-0.3) should be [0px] +Fail CSS Animations: property from [initial] to [20px] at (0) should be [0px] +Fail CSS Animations: property from [initial] to [20px] at (0.3) should be [6px] +Fail CSS Animations: property from [initial] to [20px] at (0.6) should be [12px] +Fail CSS Animations: property from [initial] to [20px] at (1) should be [20px] +Fail CSS Animations: property from [initial] to [20px] at (1.5) should be [30px] +Fail Web Animations: property from [initial] to [20px] at (-0.3) should be [0px] +Fail Web Animations: property from [initial] to [20px] at (0) should be [0px] +Fail Web Animations: property from [initial] to [20px] at (0.3) should be [6px] +Fail Web Animations: property from [initial] to [20px] at (0.6) should be [12px] +Fail Web Animations: property from [initial] to [20px] at (1) should be [20px] +Fail Web Animations: property from [initial] to [20px] at (1.5) should be [30px] +Fail CSS Transitions: property from [inherit] to [20px] at (-0.3) should be [33px] +Fail CSS Transitions: property from [inherit] to [20px] at (0) should be [30px] +Fail CSS Transitions: property from [inherit] to [20px] at (0.3) should be [27px] +Fail CSS Transitions: property from [inherit] to [20px] at (0.6) should be [24px] +Fail CSS Transitions: property from [inherit] to [20px] at (1) should be [20px] +Fail CSS Transitions: property from [inherit] to [20px] at (1.5) should be [15px] +Fail CSS Transitions with transition: all: property from [inherit] to [20px] at (-0.3) should be [33px] +Fail CSS Transitions with transition: all: property from [inherit] to [20px] at (0) should be [30px] +Fail CSS Transitions with transition: all: property from [inherit] to [20px] at (0.3) should be [27px] +Fail CSS Transitions with transition: all: property from [inherit] to [20px] at (0.6) should be [24px] +Fail CSS Transitions with transition: all: property from [inherit] to [20px] at (1) should be [20px] +Fail CSS Transitions with transition: all: property from [inherit] to [20px] at (1.5) should be [15px] +Fail CSS Animations: property from [inherit] to [20px] at (-0.3) should be [33px] +Fail CSS Animations: property from [inherit] to [20px] at (0) should be [30px] +Fail CSS Animations: property from [inherit] to [20px] at (0.3) should be [27px] +Fail CSS Animations: property from [inherit] to [20px] at (0.6) should be [24px] +Fail CSS Animations: property from [inherit] to [20px] at (1) should be [20px] +Fail CSS Animations: property from [inherit] to [20px] at (1.5) should be [15px] +Fail Web Animations: property from [inherit] to [20px] at (-0.3) should be [33px] +Fail Web Animations: property from [inherit] to [20px] at (0) should be [30px] +Fail Web Animations: property from [inherit] to [20px] at (0.3) should be [27px] +Fail Web Animations: property from [inherit] to [20px] at (0.6) should be [24px] +Fail Web Animations: property from [inherit] to [20px] at (1) should be [20px] +Fail Web Animations: property from [inherit] to [20px] at (1.5) should be [15px] +Fail CSS Transitions: property from [unset] to [20px] at (-0.3) should be [0px] +Fail CSS Transitions: property from [unset] to [20px] at (0) should be [0px] +Fail CSS Transitions: property from [unset] to [20px] at (0.3) should be [6px] +Fail CSS Transitions: property from [unset] to [20px] at (0.6) should be [12px] +Fail CSS Transitions: property from [unset] to [20px] at (1) should be [20px] +Fail CSS Transitions: property from [unset] to [20px] at (1.5) should be [30px] +Fail CSS Transitions with transition: all: property from [unset] to [20px] at (-0.3) should be [0px] +Fail CSS Transitions with transition: all: property from [unset] to [20px] at (0) should be [0px] +Fail CSS Transitions with transition: all: property from [unset] to [20px] at (0.3) should be [6px] +Fail CSS Transitions with transition: all: property from [unset] to [20px] at (0.6) should be [12px] +Fail CSS Transitions with transition: all: property from [unset] to [20px] at (1) should be [20px] +Fail CSS Transitions with transition: all: property from [unset] to [20px] at (1.5) should be [30px] +Fail CSS Animations: property from [unset] to [20px] at (-0.3) should be [0px] +Fail CSS Animations: property from [unset] to [20px] at (0) should be [0px] +Fail CSS Animations: property from [unset] to [20px] at (0.3) should be [6px] +Fail CSS Animations: property from [unset] to [20px] at (0.6) should be [12px] +Fail CSS Animations: property from [unset] to [20px] at (1) should be [20px] +Fail CSS Animations: property from [unset] to [20px] at (1.5) should be [30px] +Fail Web Animations: property from [unset] to [20px] at (-0.3) should be [0px] +Fail Web Animations: property from [unset] to [20px] at (0) should be [0px] +Fail Web Animations: property from [unset] to [20px] at (0.3) should be [6px] +Fail Web Animations: property from [unset] to [20px] at (0.6) should be [12px] +Fail Web Animations: property from [unset] to [20px] at (1) should be [20px] +Fail Web Animations: property from [unset] to [20px] at (1.5) should be [30px] +Fail CSS Transitions: property from [0px] to [100px] at (-0.3) should be [0px] +Fail CSS Transitions: property from [0px] to [100px] at (0) should be [0px] +Fail CSS Transitions: property from [0px] to [100px] at (0.3) should be [30px] +Fail CSS Transitions: property from [0px] to [100px] at (0.6) should be [60px] +Fail CSS Transitions: property from [0px] to [100px] at (1) should be [100px] +Fail CSS Transitions: property from [0px] to [100px] at (1.5) should be [150px] +Fail CSS Transitions with transition: all: property from [0px] to [100px] at (-0.3) should be [0px] +Fail CSS Transitions with transition: all: property from [0px] to [100px] at (0) should be [0px] +Fail CSS Transitions with transition: all: property from [0px] to [100px] at (0.3) should be [30px] +Fail CSS Transitions with transition: all: property from [0px] to [100px] at (0.6) should be [60px] +Fail CSS Transitions with transition: all: property from [0px] to [100px] at (1) should be [100px] +Fail CSS Transitions with transition: all: property from [0px] to [100px] at (1.5) should be [150px] +Fail CSS Animations: property from [0px] to [100px] at (-0.3) should be [0px] +Fail CSS Animations: property from [0px] to [100px] at (0) should be [0px] +Fail CSS Animations: property from [0px] to [100px] at (0.3) should be [30px] +Fail CSS Animations: property from [0px] to [100px] at (0.6) should be [60px] +Fail CSS Animations: property from [0px] to [100px] at (1) should be [100px] +Fail CSS Animations: property from [0px] to [100px] at (1.5) should be [150px] +Fail Web Animations: property from [0px] to [100px] at (-0.3) should be [0px] +Fail Web Animations: property from [0px] to [100px] at (0) should be [0px] +Fail Web Animations: property from [0px] to [100px] at (0.3) should be [30px] +Fail Web Animations: property from [0px] to [100px] at (0.6) should be [60px] +Fail Web Animations: property from [0px] to [100px] at (1) should be [100px] +Fail Web Animations: property from [0px] to [100px] at (1.5) should be [150px] \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-outside-composition.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-outside-composition.txt new file mode 100644 index 00000000000..3711e16a1e8 --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-outside-composition.txt @@ -0,0 +1,69 @@ +Harness status: OK + +Found 64 tests + +64 Fail +Fail Compositing: property underlying [circle(100px at 25px 25%)] from add [circle(10px at 25px 75%)] to add [circle(50px at 50px center)] at (-0.3) should be [circle(98px at 42.5px 107.5%)] +Fail Compositing: property underlying [circle(100px at 25px 25%)] from add [circle(10px at 25px 75%)] to add [circle(50px at 50px center)] at (0) should be [circle(110px at 50px 100%)] +Fail Compositing: property underlying [circle(100px at 25px 25%)] from add [circle(10px at 25px 75%)] to add [circle(50px at 50px center)] at (0.3) should be [circle(122px at 57.5px 92.5%)] +Fail Compositing: property underlying [circle(100px at 25px 25%)] from add [circle(10px at 25px 75%)] to add [circle(50px at 50px center)] at (0.6) should be [circle(134px at 65px 85%)] +Fail Compositing: property underlying [circle(100px at 25px 25%)] from add [circle(10px at 25px 75%)] to add [circle(50px at 50px center)] at (1) should be [circle(150px at 75px 75%)] +Fail Compositing: property underlying [circle(100px at 25px 25%)] from add [circle(10px at 25px 75%)] to add [circle(50px at 50px center)] at (1.5) should be [circle(170px at 87.5px 62.5%)] +Fail Compositing: property underlying [circle(100px at 20px 20%)] from add [circle(50px at 50px 50%)] to replace [circle(50% at 150px 150%)] at (-0.3) should be [circle(calc(195px + -15%) at 46px 46%)] +Fail Compositing: property underlying [circle(100px at 20px 20%)] from add [circle(50px at 50px 50%)] to replace [circle(50% at 150px 150%)] at (0) should be [circle(calc(150px + 0%) at 70px 70%)] +Fail Compositing: property underlying [circle(100px at 20px 20%)] from add [circle(50px at 50px 50%)] to replace [circle(50% at 150px 150%)] at (0.3) should be [circle(calc(105px + 15%) at 94px 94%)] +Fail Compositing: property underlying [circle(100px at 20px 20%)] from add [circle(50px at 50px 50%)] to replace [circle(50% at 150px 150%)] at (0.6) should be [circle(calc(60px + 30%) at 118px 118%)] +Fail Compositing: property underlying [circle(100px at 20px 20%)] from add [circle(50px at 50px 50%)] to replace [circle(50% at 150px 150%)] at (1) should be [circle(50% at 150px 150%)] +Fail Compositing: property underlying [circle(100px at 20px 20%)] from add [circle(50px at 50px 50%)] to replace [circle(50% at 150px 150%)] at (1.5) should be [circle(calc(-75px + 75%) at 190px 190%)] +Fail Compositing: property underlying [circle(farthest-side at 25px 75%)] from add [circle(farthest-side at 25px 75%)] to add [circle(farthest-side at 50px center)] at (0.25) should be [circle(farthest-side at 25px 75%)] +Fail Compositing: property underlying [circle(farthest-side at 25px 75%)] from add [circle(farthest-side at 25px 75%)] to add [circle(farthest-side at 50px center)] at (0.75) should be [circle(farthest-side at 50px 50%)] +Fail Compositing: property underlying [circle(50px at 10px 20px)] from add [circle(50px at 10px 20px)] to add [circle(farthest-side at 30px 40px)] at (0.25) should be [circle(100px at 20px 40px)] +Fail Compositing: property underlying [circle(50px at 10px 20px)] from add [circle(50px at 10px 20px)] to add [circle(farthest-side at 30px 40px)] at (0.75) should be [circle(farthest-side at 30px 40px)] +Fail Compositing: property underlying [ellipse(10px 20px at 30px 40px)] from add [ellipse(40px 30px at 20px 10px)] to add [ellipse(140px 130px at 120px 110px)] at (-0.3) should be [ellipse(20px 20px at 20px 20px)] +Fail Compositing: property underlying [ellipse(10px 20px at 30px 40px)] from add [ellipse(40px 30px at 20px 10px)] to add [ellipse(140px 130px at 120px 110px)] at (0) should be [ellipse(50px 50px at 50px 50px)] +Fail Compositing: property underlying [ellipse(10px 20px at 30px 40px)] from add [ellipse(40px 30px at 20px 10px)] to add [ellipse(140px 130px at 120px 110px)] at (0.3) should be [ellipse(80px 80px at 80px 80px)] +Fail Compositing: property underlying [ellipse(10px 20px at 30px 40px)] from add [ellipse(40px 30px at 20px 10px)] to add [ellipse(140px 130px at 120px 110px)] at (0.6) should be [ellipse(110px 110px at 110px 110px)] +Fail Compositing: property underlying [ellipse(10px 20px at 30px 40px)] from add [ellipse(40px 30px at 20px 10px)] to add [ellipse(140px 130px at 120px 110px)] at (1) should be [ellipse(150px 150px at 150px 150px)] +Fail Compositing: property underlying [ellipse(10px 20px at 30px 40px)] from add [ellipse(40px 30px at 20px 10px)] to add [ellipse(140px 130px at 120px 110px)] at (1.5) should be [ellipse(200px 200px at 200px 200px)] +Fail Compositing: property underlying [ellipse(10px 20px at 30px 40px)] from replace [ellipse(40px 30px at 20px 10px)] to add [ellipse(40px 30px at 20px 10px)] at (-0.3) should be [ellipse(37px 24px at 11px -2px)] +Fail Compositing: property underlying [ellipse(10px 20px at 30px 40px)] from replace [ellipse(40px 30px at 20px 10px)] to add [ellipse(40px 30px at 20px 10px)] at (0) should be [ellipse(40px 30px at 20px 10px)] +Fail Compositing: property underlying [ellipse(10px 20px at 30px 40px)] from replace [ellipse(40px 30px at 20px 10px)] to add [ellipse(40px 30px at 20px 10px)] at (0.3) should be [ellipse(43px 36px at 29px 22px)] +Fail Compositing: property underlying [ellipse(10px 20px at 30px 40px)] from replace [ellipse(40px 30px at 20px 10px)] to add [ellipse(40px 30px at 20px 10px)] at (0.6) should be [ellipse(46px 42px at 38px 34px)] +Fail Compositing: property underlying [ellipse(10px 20px at 30px 40px)] from replace [ellipse(40px 30px at 20px 10px)] to add [ellipse(40px 30px at 20px 10px)] at (1) should be [ellipse(50px 50px at 50px 50px)] +Fail Compositing: property underlying [ellipse(10px 20px at 30px 40px)] from replace [ellipse(40px 30px at 20px 10px)] to add [ellipse(40px 30px at 20px 10px)] at (1.5) should be [ellipse(55px 60px at 65px 70px)] +Fail Compositing: property underlying [ellipse(25px 75%)] from add [ellipse()] to add [ellipse(closest-side farthest-side)] at (0.25) should be [ellipse()] +Fail Compositing: property underlying [ellipse(25px 75%)] from add [ellipse()] to add [ellipse(closest-side farthest-side)] at (0.75) should be [ellipse(closest-side farthest-side)] +Fail Compositing: property underlying [inset(20px)] from add [inset(20px)] to add [inset(40%)] at (-0.3) should be [inset(calc(46px + -12%))] +Fail Compositing: property underlying [inset(20px)] from add [inset(20px)] to add [inset(40%)] at (0) should be [inset(calc(40px + 0%))] +Fail Compositing: property underlying [inset(20px)] from add [inset(20px)] to add [inset(40%)] at (0.3) should be [inset(calc(34px + 12%))] +Fail Compositing: property underlying [inset(20px)] from add [inset(20px)] to add [inset(40%)] at (0.6) should be [inset(calc(28px + 24%))] +Fail Compositing: property underlying [inset(20px)] from add [inset(20px)] to add [inset(40%)] at (1) should be [inset(calc(20px + 40%))] +Fail Compositing: property underlying [inset(20px)] from add [inset(20px)] to add [inset(40%)] at (1.5) should be [inset(calc(10px + 60%))] +Fail Compositing: property underlying [inset(1px 2px 3px 4px round 10px 20px 30px 40px / 50px 60px 70px 80px)] from add [inset(1px 2px 3px 4px round 10px 20px 30px 40px / 50px 60px 70px 80px)] to replace [inset(102px 104px 106px 108px round 120px 140px 160px 180px / 200px 220px 240px 260px)] at (-0.3) should be [inset(-28px -26px -24px -22px round 0px 10px 30px 50px / 70px 90px 110px 130px)] +Fail Compositing: property underlying [inset(1px 2px 3px 4px round 10px 20px 30px 40px / 50px 60px 70px 80px)] from add [inset(1px 2px 3px 4px round 10px 20px 30px 40px / 50px 60px 70px 80px)] to replace [inset(102px 104px 106px 108px round 120px 140px 160px 180px / 200px 220px 240px 260px)] at (0) should be [inset(2px 4px 6px 8px round 20px 40px 60px 80px / 100px 120px 140px 160px)] +Fail Compositing: property underlying [inset(1px 2px 3px 4px round 10px 20px 30px 40px / 50px 60px 70px 80px)] from add [inset(1px 2px 3px 4px round 10px 20px 30px 40px / 50px 60px 70px 80px)] to replace [inset(102px 104px 106px 108px round 120px 140px 160px 180px / 200px 220px 240px 260px)] at (0.25) should be [inset(27px 29px 31px 33px round 45px 65px 85px 105px / 125px 145px 165px 185px)] +Fail Compositing: property underlying [inset(1px 2px 3px 4px round 10px 20px 30px 40px / 50px 60px 70px 80px)] from add [inset(1px 2px 3px 4px round 10px 20px 30px 40px / 50px 60px 70px 80px)] to replace [inset(102px 104px 106px 108px round 120px 140px 160px 180px / 200px 220px 240px 260px)] at (0.75) should be [inset(77px 79px 81px 83px round 95px 115px 135px 155px / 175px 195px 215px 235px)] +Fail Compositing: property underlying [inset(1px 2px 3px 4px round 10px 20px 30px 40px / 50px 60px 70px 80px)] from add [inset(1px 2px 3px 4px round 10px 20px 30px 40px / 50px 60px 70px 80px)] to replace [inset(102px 104px 106px 108px round 120px 140px 160px 180px / 200px 220px 240px 260px)] at (1) should be [inset(102px 104px 106px 108px round 120px 140px 160px 180px / 200px 220px 240px 260px)] +Fail Compositing: property underlying [inset(1px 2px 3px 4px round 10px 20px 30px 40px / 50px 60px 70px 80px)] from add [inset(1px 2px 3px 4px round 10px 20px 30px 40px / 50px 60px 70px 80px)] to replace [inset(102px 104px 106px 108px round 120px 140px 160px 180px / 200px 220px 240px 260px)] at (1.5) should be [inset(152px 154px 156px 158px round 170px 190px 210px 230px / 250px 270px 290px 310px)] +Fail Compositing: property underlying [inset(1px 2px round 100px 200px)] from add [inset(1px 2px round 100px 200px)] to add [inset(101px 102px 101px 102px)] at (-0.3) should be [inset(-28px -26px round 230px 460px)] +Fail Compositing: property underlying [inset(1px 2px round 100px 200px)] from add [inset(1px 2px round 100px 200px)] to add [inset(101px 102px 101px 102px)] at (0) should be [inset(2px 4px round 200px 400px)] +Fail Compositing: property underlying [inset(1px 2px round 100px 200px)] from add [inset(1px 2px round 100px 200px)] to add [inset(101px 102px 101px 102px)] at (0.3) should be [inset(32px 34px round 170px 340px)] +Fail Compositing: property underlying [inset(1px 2px round 100px 200px)] from add [inset(1px 2px round 100px 200px)] to add [inset(101px 102px 101px 102px)] at (0.6) should be [inset(62px 64px round 140px 280px)] +Fail Compositing: property underlying [inset(1px 2px round 100px 200px)] from add [inset(1px 2px round 100px 200px)] to add [inset(101px 102px 101px 102px)] at (1) should be [inset(102px 104px round 100px 200px)] +Fail Compositing: property underlying [inset(1px 2px round 100px 200px)] from add [inset(1px 2px round 100px 200px)] to add [inset(101px 102px 101px 102px)] at (1.5) should be [inset(152px 154px round 50px 100px)] +Fail Compositing: property underlying [polygon(10px 20%, 30px 40%)] from add [polygon(10px 20%, 30px 40%)] to add [polygon(110px 120%, 130px 140%)] at (-0.3) should be [polygon(-10px 10%, 30px 50%)] +Fail Compositing: property underlying [polygon(10px 20%, 30px 40%)] from add [polygon(10px 20%, 30px 40%)] to add [polygon(110px 120%, 130px 140%)] at (0) should be [polygon(20px 40%, 60px 80%)] +Fail Compositing: property underlying [polygon(10px 20%, 30px 40%)] from add [polygon(10px 20%, 30px 40%)] to add [polygon(110px 120%, 130px 140%)] at (0.3) should be [polygon(50px 70%, 90px 110%)] +Fail Compositing: property underlying [polygon(10px 20%, 30px 40%)] from add [polygon(10px 20%, 30px 40%)] to add [polygon(110px 120%, 130px 140%)] at (0.6) should be [polygon(80px 100%, 120px 140%)] +Fail Compositing: property underlying [polygon(10px 20%, 30px 40%)] from add [polygon(10px 20%, 30px 40%)] to add [polygon(110px 120%, 130px 140%)] at (1) should be [polygon(120px 140%, 160px 180%)] +Fail Compositing: property underlying [polygon(10px 20%, 30px 40%)] from add [polygon(10px 20%, 30px 40%)] to add [polygon(110px 120%, 130px 140%)] at (1.5) should be [polygon(170px 190%, 210px 230%)] +Fail Compositing: property underlying [polygon(evenodd, 10px 20px)] from add [polygon(evenodd, 10px 20px)] to add [polygon(evenodd, 110px 120px)] at (-0.3) should be [polygon(evenodd, -10px 10px)] +Fail Compositing: property underlying [polygon(evenodd, 10px 20px)] from add [polygon(evenodd, 10px 20px)] to add [polygon(evenodd, 110px 120px)] at (0) should be [polygon(evenodd, 20px 40px)] +Fail Compositing: property underlying [polygon(evenodd, 10px 20px)] from add [polygon(evenodd, 10px 20px)] to add [polygon(evenodd, 110px 120px)] at (0.3) should be [polygon(evenodd, 50px 70px)] +Fail Compositing: property underlying [polygon(evenodd, 10px 20px)] from add [polygon(evenodd, 10px 20px)] to add [polygon(evenodd, 110px 120px)] at (0.6) should be [polygon(evenodd, 80px 100px)] +Fail Compositing: property underlying [polygon(evenodd, 10px 20px)] from add [polygon(evenodd, 10px 20px)] to add [polygon(evenodd, 110px 120px)] at (1) should be [polygon(evenodd, 120px 140px)] +Fail Compositing: property underlying [polygon(evenodd, 10px 20px)] from add [polygon(evenodd, 10px 20px)] to add [polygon(evenodd, 110px 120px)] at (1.5) should be [polygon(evenodd, 170px 190px)] +Fail Compositing: property underlying [polygon(evenodd, 10px 20px)] from add [polygon(evenodd, 10px 20px)] to add [polygon(nonzero, 30px 40px)] at (0.25) should be [polygon(evenodd, 20px 40px)] +Fail Compositing: property underlying [polygon(evenodd, 10px 20px)] from add [polygon(evenodd, 10px 20px)] to add [polygon(nonzero, 30px 40px)] at (0.75) should be [polygon(30px 40px)] +Fail Compositing: property underlying [polygon(10px 20px, 30px 40px)] from add [polygon(10px 20px, 30px 40px)] to add [polygon(30px 40px)] at (0.25) should be [polygon(20px 40px, 60px 80px)] +Fail Compositing: property underlying [polygon(10px 20px, 30px 40px)] from add [polygon(10px 20px, 30px 40px)] to add [polygon(30px 40px)] at (0.75) should be [polygon(30px 40px)] \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-outside-interpolation.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-outside-interpolation.txt new file mode 100644 index 00000000000..bcb7e1dc8b6 --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-outside-interpolation.txt @@ -0,0 +1,329 @@ +Harness status: OK + +Found 324 tests + +324 Fail +Fail CSS Transitions: property from neutral to [circle(40% at 20% 20%)] at (-0.3) should be [circle(66% at 7% 33%)] +Fail CSS Transitions: property from neutral to [circle(40% at 20% 20%)] at (0) should be [circle(60% at 10% 30%)] +Fail CSS Transitions: property from neutral to [circle(40% at 20% 20%)] at (0.3) should be [circle(54% at 13% 27%)] +Fail CSS Transitions: property from neutral to [circle(40% at 20% 20%)] at (0.6) should be [circle(48% at 16% 24%)] +Fail CSS Transitions: property from neutral to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Fail CSS Transitions: property from neutral to [circle(40% at 20% 20%)] at (1.5) should be [circle(30% at 25% 15%)] +Fail CSS Transitions with transition: all: property from neutral to [circle(40% at 20% 20%)] at (-0.3) should be [circle(66% at 7% 33%)] +Fail CSS Transitions with transition: all: property from neutral to [circle(40% at 20% 20%)] at (0) should be [circle(60% at 10% 30%)] +Fail CSS Transitions with transition: all: property from neutral to [circle(40% at 20% 20%)] at (0.3) should be [circle(54% at 13% 27%)] +Fail CSS Transitions with transition: all: property from neutral to [circle(40% at 20% 20%)] at (0.6) should be [circle(48% at 16% 24%)] +Fail CSS Transitions with transition: all: property from neutral to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Fail CSS Transitions with transition: all: property from neutral to [circle(40% at 20% 20%)] at (1.5) should be [circle(30% at 25% 15%)] +Fail CSS Animations: property from neutral to [circle(40% at 20% 20%)] at (-0.3) should be [circle(66% at 7% 33%)] +Fail CSS Animations: property from neutral to [circle(40% at 20% 20%)] at (0) should be [circle(60% at 10% 30%)] +Fail CSS Animations: property from neutral to [circle(40% at 20% 20%)] at (0.3) should be [circle(54% at 13% 27%)] +Fail CSS Animations: property from neutral to [circle(40% at 20% 20%)] at (0.6) should be [circle(48% at 16% 24%)] +Fail CSS Animations: property from neutral to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Fail CSS Animations: property from neutral to [circle(40% at 20% 20%)] at (1.5) should be [circle(30% at 25% 15%)] +Fail Web Animations: property from neutral to [circle(40% at 20% 20%)] at (-0.3) should be [circle(66% at 7% 33%)] +Fail Web Animations: property from neutral to [circle(40% at 20% 20%)] at (0) should be [circle(60% at 10% 30%)] +Fail Web Animations: property from neutral to [circle(40% at 20% 20%)] at (0.3) should be [circle(54% at 13% 27%)] +Fail Web Animations: property from neutral to [circle(40% at 20% 20%)] at (0.6) should be [circle(48% at 16% 24%)] +Fail Web Animations: property from neutral to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Fail Web Animations: property from neutral to [circle(40% at 20% 20%)] at (1.5) should be [circle(30% at 25% 15%)] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (-0.3) should be [initial] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (0) should be [initial] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (0.3) should be [initial] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (-0.3) should be [initial] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (0) should be [initial] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (0.3) should be [initial] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] +Fail CSS Transitions: property from [initial] to [circle(40% at 20% 20%)] at (-0.3) should be [circle(40% at 20% 20%)] +Fail CSS Transitions: property from [initial] to [circle(40% at 20% 20%)] at (0) should be [circle(40% at 20% 20%)] +Fail CSS Transitions: property from [initial] to [circle(40% at 20% 20%)] at (0.3) should be [circle(40% at 20% 20%)] +Fail CSS Transitions: property from [initial] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] +Fail CSS Transitions: property from [initial] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] +Fail CSS Transitions: property from [initial] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Fail CSS Transitions: property from [initial] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] +Fail CSS Transitions with transition: all: property from [initial] to [circle(40% at 20% 20%)] at (-0.3) should be [circle(40% at 20% 20%)] +Fail CSS Transitions with transition: all: property from [initial] to [circle(40% at 20% 20%)] at (0) should be [circle(40% at 20% 20%)] +Fail CSS Transitions with transition: all: property from [initial] to [circle(40% at 20% 20%)] at (0.3) should be [circle(40% at 20% 20%)] +Fail CSS Transitions with transition: all: property from [initial] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] +Fail CSS Transitions with transition: all: property from [initial] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] +Fail CSS Transitions with transition: all: property from [initial] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Fail CSS Transitions with transition: all: property from [initial] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] +Fail CSS Animations: property from [initial] to [circle(40% at 20% 20%)] at (-0.3) should be [initial] +Fail CSS Animations: property from [initial] to [circle(40% at 20% 20%)] at (0) should be [initial] +Fail CSS Animations: property from [initial] to [circle(40% at 20% 20%)] at (0.3) should be [initial] +Fail CSS Animations: property from [initial] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] +Fail CSS Animations: property from [initial] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] +Fail CSS Animations: property from [initial] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Fail CSS Animations: property from [initial] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] +Fail Web Animations: property from [initial] to [circle(40% at 20% 20%)] at (-0.3) should be [initial] +Fail Web Animations: property from [initial] to [circle(40% at 20% 20%)] at (0) should be [initial] +Fail Web Animations: property from [initial] to [circle(40% at 20% 20%)] at (0.3) should be [initial] +Fail Web Animations: property from [initial] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] +Fail Web Animations: property from [initial] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] +Fail Web Animations: property from [initial] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Fail Web Animations: property from [initial] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] +Fail CSS Transitions: property from [inherit] to [circle(40% at 20% 20%)] at (-0.3) should be [circle(92% at 33% 7%)] +Fail CSS Transitions: property from [inherit] to [circle(40% at 20% 20%)] at (0) should be [circle(80% at 30% 10%)] +Fail CSS Transitions: property from [inherit] to [circle(40% at 20% 20%)] at (0.3) should be [circle(68% at 27% 13%)] +Fail CSS Transitions: property from [inherit] to [circle(40% at 20% 20%)] at (0.6) should be [circle(56% at 24% 16%)] +Fail CSS Transitions: property from [inherit] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Fail CSS Transitions: property from [inherit] to [circle(40% at 20% 20%)] at (1.5) should be [circle(20% at 15% 25%)] +Fail CSS Transitions with transition: all: property from [inherit] to [circle(40% at 20% 20%)] at (-0.3) should be [circle(92% at 33% 7%)] +Fail CSS Transitions with transition: all: property from [inherit] to [circle(40% at 20% 20%)] at (0) should be [circle(80% at 30% 10%)] +Fail CSS Transitions with transition: all: property from [inherit] to [circle(40% at 20% 20%)] at (0.3) should be [circle(68% at 27% 13%)] +Fail CSS Transitions with transition: all: property from [inherit] to [circle(40% at 20% 20%)] at (0.6) should be [circle(56% at 24% 16%)] +Fail CSS Transitions with transition: all: property from [inherit] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Fail CSS Transitions with transition: all: property from [inherit] to [circle(40% at 20% 20%)] at (1.5) should be [circle(20% at 15% 25%)] +Fail CSS Animations: property from [inherit] to [circle(40% at 20% 20%)] at (-0.3) should be [circle(92% at 33% 7%)] +Fail CSS Animations: property from [inherit] to [circle(40% at 20% 20%)] at (0) should be [circle(80% at 30% 10%)] +Fail CSS Animations: property from [inherit] to [circle(40% at 20% 20%)] at (0.3) should be [circle(68% at 27% 13%)] +Fail CSS Animations: property from [inherit] to [circle(40% at 20% 20%)] at (0.6) should be [circle(56% at 24% 16%)] +Fail CSS Animations: property from [inherit] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Fail CSS Animations: property from [inherit] to [circle(40% at 20% 20%)] at (1.5) should be [circle(20% at 15% 25%)] +Fail Web Animations: property from [inherit] to [circle(40% at 20% 20%)] at (-0.3) should be [circle(92% at 33% 7%)] +Fail Web Animations: property from [inherit] to [circle(40% at 20% 20%)] at (0) should be [circle(80% at 30% 10%)] +Fail Web Animations: property from [inherit] to [circle(40% at 20% 20%)] at (0.3) should be [circle(68% at 27% 13%)] +Fail Web Animations: property from [inherit] to [circle(40% at 20% 20%)] at (0.6) should be [circle(56% at 24% 16%)] +Fail Web Animations: property from [inherit] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Fail Web Animations: property from [inherit] to [circle(40% at 20% 20%)] at (1.5) should be [circle(20% at 15% 25%)] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (-0.3) should be [unset] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (0) should be [unset] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (0.3) should be [unset] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (-0.3) should be [unset] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (0) should be [unset] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (0.3) should be [unset] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] +Fail CSS Transitions: property from [unset] to [circle(40% at 20% 20%)] at (-0.3) should be [circle(40% at 20% 20%)] +Fail CSS Transitions: property from [unset] to [circle(40% at 20% 20%)] at (0) should be [circle(40% at 20% 20%)] +Fail CSS Transitions: property from [unset] to [circle(40% at 20% 20%)] at (0.3) should be [circle(40% at 20% 20%)] +Fail CSS Transitions: property from [unset] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] +Fail CSS Transitions: property from [unset] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] +Fail CSS Transitions: property from [unset] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Fail CSS Transitions: property from [unset] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] +Fail CSS Transitions with transition: all: property from [unset] to [circle(40% at 20% 20%)] at (-0.3) should be [circle(40% at 20% 20%)] +Fail CSS Transitions with transition: all: property from [unset] to [circle(40% at 20% 20%)] at (0) should be [circle(40% at 20% 20%)] +Fail CSS Transitions with transition: all: property from [unset] to [circle(40% at 20% 20%)] at (0.3) should be [circle(40% at 20% 20%)] +Fail CSS Transitions with transition: all: property from [unset] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] +Fail CSS Transitions with transition: all: property from [unset] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] +Fail CSS Transitions with transition: all: property from [unset] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Fail CSS Transitions with transition: all: property from [unset] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] +Fail CSS Animations: property from [unset] to [circle(40% at 20% 20%)] at (-0.3) should be [unset] +Fail CSS Animations: property from [unset] to [circle(40% at 20% 20%)] at (0) should be [unset] +Fail CSS Animations: property from [unset] to [circle(40% at 20% 20%)] at (0.3) should be [unset] +Fail CSS Animations: property from [unset] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] +Fail CSS Animations: property from [unset] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] +Fail CSS Animations: property from [unset] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Fail CSS Animations: property from [unset] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] +Fail Web Animations: property from [unset] to [circle(40% at 20% 20%)] at (-0.3) should be [unset] +Fail Web Animations: property from [unset] to [circle(40% at 20% 20%)] at (0) should be [unset] +Fail Web Animations: property from [unset] to [circle(40% at 20% 20%)] at (0.3) should be [unset] +Fail Web Animations: property from [unset] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] +Fail Web Animations: property from [unset] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] +Fail Web Animations: property from [unset] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Fail Web Animations: property from [unset] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] +Fail CSS Transitions: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (-0.3) should be [circle(115% at -7.5% -7.5%)] +Fail CSS Transitions: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0) should be [circle(100% at 0% 0%)] +Fail CSS Transitions: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.3) should be [circle(85% at 7.5% 7.5%)] +Fail CSS Transitions: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.6) should be [circle(70% at 15% 15%)] +Fail CSS Transitions: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1) should be [circle(50% at 25% 25%)] +Fail CSS Transitions: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1.5) should be [circle(25% at 37.5% 37.5%)] +Fail CSS Transitions with transition: all: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (-0.3) should be [circle(115% at -7.5% -7.5%)] +Fail CSS Transitions with transition: all: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0) should be [circle(100% at 0% 0%)] +Fail CSS Transitions with transition: all: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.3) should be [circle(85% at 7.5% 7.5%)] +Fail CSS Transitions with transition: all: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.6) should be [circle(70% at 15% 15%)] +Fail CSS Transitions with transition: all: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1) should be [circle(50% at 25% 25%)] +Fail CSS Transitions with transition: all: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1.5) should be [circle(25% at 37.5% 37.5%)] +Fail CSS Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (-0.3) should be [circle(115% at -7.5% -7.5%)] +Fail CSS Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0) should be [circle(100% at 0% 0%)] +Fail CSS Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.3) should be [circle(85% at 7.5% 7.5%)] +Fail CSS Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.6) should be [circle(70% at 15% 15%)] +Fail CSS Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1) should be [circle(50% at 25% 25%)] +Fail CSS Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1.5) should be [circle(25% at 37.5% 37.5%)] +Fail Web Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (-0.3) should be [circle(115% at -7.5% -7.5%)] +Fail Web Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0) should be [circle(100% at 0% 0%)] +Fail Web Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.3) should be [circle(85% at 7.5% 7.5%)] +Fail Web Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.6) should be [circle(70% at 15% 15%)] +Fail Web Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1) should be [circle(50% at 25% 25%)] +Fail Web Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1.5) should be [circle(25% at 37.5% 37.5%)] +Fail CSS Transitions: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (-0.3) should be [ellipse(115% 115% at -7.5% -7.5%)] +Fail CSS Transitions: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0) should be [ellipse(100% 100% at 0% 0%)] +Fail CSS Transitions: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0.3) should be [ellipse(85% 85% at 7.5% 7.5%)] +Fail CSS Transitions: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0.6) should be [ellipse(70% 70% at 15% 15%)] +Fail CSS Transitions: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (1) should be [ellipse(50% 50% at 25% 25%)] +Fail CSS Transitions: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (1.5) should be [ellipse(25% 25% at 37.5% 37.5%)] +Fail CSS Transitions with transition: all: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (-0.3) should be [ellipse(115% 115% at -7.5% -7.5%)] +Fail CSS Transitions with transition: all: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0) should be [ellipse(100% 100% at 0% 0%)] +Fail CSS Transitions with transition: all: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0.3) should be [ellipse(85% 85% at 7.5% 7.5%)] +Fail CSS Transitions with transition: all: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0.6) should be [ellipse(70% 70% at 15% 15%)] +Fail CSS Transitions with transition: all: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (1) should be [ellipse(50% 50% at 25% 25%)] +Fail CSS Transitions with transition: all: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (1.5) should be [ellipse(25% 25% at 37.5% 37.5%)] +Fail CSS Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (-0.3) should be [ellipse(115% 115% at -7.5% -7.5%)] +Fail CSS Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0) should be [ellipse(100% 100% at 0% 0%)] +Fail CSS Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0.3) should be [ellipse(85% 85% at 7.5% 7.5%)] +Fail CSS Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0.6) should be [ellipse(70% 70% at 15% 15%)] +Fail CSS Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (1) should be [ellipse(50% 50% at 25% 25%)] +Fail CSS Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (1.5) should be [ellipse(25% 25% at 37.5% 37.5%)] +Fail Web Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (-0.3) should be [ellipse(115% 115% at -7.5% -7.5%)] +Fail Web Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0) should be [ellipse(100% 100% at 0% 0%)] +Fail Web Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0.3) should be [ellipse(85% 85% at 7.5% 7.5%)] +Fail Web Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0.6) should be [ellipse(70% 70% at 15% 15%)] +Fail Web Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (1) should be [ellipse(50% 50% at 25% 25%)] +Fail Web Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (1.5) should be [ellipse(25% 25% at 37.5% 37.5%)] +Fail CSS Transitions: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (-0.3) should be [polygon(nonzero, -7.5px -7.5px, 17.5px 17.5px, 42.5px 42.5px)] +Fail CSS Transitions: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0) should be [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] +Fail CSS Transitions: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.3) should be [polygon(nonzero, 7.5px 7.5px, 32.5px 32.5px, 57.5px 57.5px)] +Fail CSS Transitions: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.6) should be [polygon(nonzero, 15px 15px, 40px 40px, 65px 65px)] +Fail CSS Transitions: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Fail CSS Transitions: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1.5) should be [polygon(nonzero, 37.5px 37.5px, 62.5px 62.5px, 87.5px 87.5px)] +Fail CSS Transitions with transition: all: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (-0.3) should be [polygon(nonzero, -7.5px -7.5px, 17.5px 17.5px, 42.5px 42.5px)] +Fail CSS Transitions with transition: all: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0) should be [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] +Fail CSS Transitions with transition: all: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.3) should be [polygon(nonzero, 7.5px 7.5px, 32.5px 32.5px, 57.5px 57.5px)] +Fail CSS Transitions with transition: all: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.6) should be [polygon(nonzero, 15px 15px, 40px 40px, 65px 65px)] +Fail CSS Transitions with transition: all: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Fail CSS Transitions with transition: all: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1.5) should be [polygon(nonzero, 37.5px 37.5px, 62.5px 62.5px, 87.5px 87.5px)] +Fail CSS Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (-0.3) should be [polygon(nonzero, -7.5px -7.5px, 17.5px 17.5px, 42.5px 42.5px)] +Fail CSS Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0) should be [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] +Fail CSS Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.3) should be [polygon(nonzero, 7.5px 7.5px, 32.5px 32.5px, 57.5px 57.5px)] +Fail CSS Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.6) should be [polygon(nonzero, 15px 15px, 40px 40px, 65px 65px)] +Fail CSS Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Fail CSS Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1.5) should be [polygon(nonzero, 37.5px 37.5px, 62.5px 62.5px, 87.5px 87.5px)] +Fail Web Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (-0.3) should be [polygon(nonzero, -7.5px -7.5px, 17.5px 17.5px, 42.5px 42.5px)] +Fail Web Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0) should be [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] +Fail Web Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.3) should be [polygon(nonzero, 7.5px 7.5px, 32.5px 32.5px, 57.5px 57.5px)] +Fail Web Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.6) should be [polygon(nonzero, 15px 15px, 40px 40px, 65px 65px)] +Fail Web Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Fail Web Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1.5) should be [polygon(nonzero, 37.5px 37.5px, 62.5px 62.5px, 87.5px 87.5px)] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (-0.3) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.3) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.6) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (-0.3) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.3) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.6) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Fail CSS Transitions: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (-0.3) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Fail CSS Transitions: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Fail CSS Transitions: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.3) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Fail CSS Transitions: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Fail CSS Transitions: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.6) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Fail CSS Transitions: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Fail CSS Transitions: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Fail CSS Transitions with transition: all: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (-0.3) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Fail CSS Transitions with transition: all: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Fail CSS Transitions with transition: all: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.3) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Fail CSS Transitions with transition: all: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Fail CSS Transitions with transition: all: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.6) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Fail CSS Transitions with transition: all: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Fail CSS Transitions with transition: all: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Fail CSS Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (-0.3) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] +Fail CSS Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] +Fail CSS Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.3) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] +Fail CSS Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Fail CSS Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.6) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Fail CSS Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Fail CSS Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Fail Web Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (-0.3) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] +Fail Web Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] +Fail Web Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.3) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] +Fail Web Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Fail Web Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.6) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Fail Web Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Fail Web Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Fail CSS Transitions: property from [inset(100%)] to [inset(120%)] at (-0.3) should be [inset(94%)] +Fail CSS Transitions: property from [inset(100%)] to [inset(120%)] at (0) should be [inset(100%)] +Fail CSS Transitions: property from [inset(100%)] to [inset(120%)] at (0.3) should be [inset(106%)] +Fail CSS Transitions: property from [inset(100%)] to [inset(120%)] at (0.6) should be [inset(112%)] +Fail CSS Transitions: property from [inset(100%)] to [inset(120%)] at (1) should be [inset(120%)] +Fail CSS Transitions: property from [inset(100%)] to [inset(120%)] at (1.5) should be [inset(130%)] +Fail CSS Transitions with transition: all: property from [inset(100%)] to [inset(120%)] at (-0.3) should be [inset(94%)] +Fail CSS Transitions with transition: all: property from [inset(100%)] to [inset(120%)] at (0) should be [inset(100%)] +Fail CSS Transitions with transition: all: property from [inset(100%)] to [inset(120%)] at (0.3) should be [inset(106%)] +Fail CSS Transitions with transition: all: property from [inset(100%)] to [inset(120%)] at (0.6) should be [inset(112%)] +Fail CSS Transitions with transition: all: property from [inset(100%)] to [inset(120%)] at (1) should be [inset(120%)] +Fail CSS Transitions with transition: all: property from [inset(100%)] to [inset(120%)] at (1.5) should be [inset(130%)] +Fail CSS Animations: property from [inset(100%)] to [inset(120%)] at (-0.3) should be [inset(94%)] +Fail CSS Animations: property from [inset(100%)] to [inset(120%)] at (0) should be [inset(100%)] +Fail CSS Animations: property from [inset(100%)] to [inset(120%)] at (0.3) should be [inset(106%)] +Fail CSS Animations: property from [inset(100%)] to [inset(120%)] at (0.6) should be [inset(112%)] +Fail CSS Animations: property from [inset(100%)] to [inset(120%)] at (1) should be [inset(120%)] +Fail CSS Animations: property from [inset(100%)] to [inset(120%)] at (1.5) should be [inset(130%)] +Fail Web Animations: property from [inset(100%)] to [inset(120%)] at (-0.3) should be [inset(94%)] +Fail Web Animations: property from [inset(100%)] to [inset(120%)] at (0) should be [inset(100%)] +Fail Web Animations: property from [inset(100%)] to [inset(120%)] at (0.3) should be [inset(106%)] +Fail Web Animations: property from [inset(100%)] to [inset(120%)] at (0.6) should be [inset(112%)] +Fail Web Animations: property from [inset(100%)] to [inset(120%)] at (1) should be [inset(120%)] +Fail Web Animations: property from [inset(100%)] to [inset(120%)] at (1.5) should be [inset(130%)] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (-0.3) should be [none] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0) should be [none] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.3) should be [none] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.5) should be [ellipse(100% 100% at 0% 0%)] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.6) should be [ellipse(100% 100% at 0% 0%)] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1) should be [ellipse(100% 100% at 0% 0%)] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1.5) should be [ellipse(100% 100% at 0% 0%)] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (-0.3) should be [none] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0) should be [none] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.3) should be [none] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.5) should be [ellipse(100% 100% at 0% 0%)] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.6) should be [ellipse(100% 100% at 0% 0%)] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1) should be [ellipse(100% 100% at 0% 0%)] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1.5) should be [ellipse(100% 100% at 0% 0%)] +Fail CSS Transitions: property from [none] to [ellipse(100% 100% at 0% 0%)] at (-0.3) should be [ellipse(100% 100% at 0% 0%)] +Fail CSS Transitions: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0) should be [ellipse(100% 100% at 0% 0%)] +Fail CSS Transitions: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.3) should be [ellipse(100% 100% at 0% 0%)] +Fail CSS Transitions: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.5) should be [ellipse(100% 100% at 0% 0%)] +Fail CSS Transitions: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.6) should be [ellipse(100% 100% at 0% 0%)] +Fail CSS Transitions: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1) should be [ellipse(100% 100% at 0% 0%)] +Fail CSS Transitions: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1.5) should be [ellipse(100% 100% at 0% 0%)] +Fail CSS Transitions with transition: all: property from [none] to [ellipse(100% 100% at 0% 0%)] at (-0.3) should be [ellipse(100% 100% at 0% 0%)] +Fail CSS Transitions with transition: all: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0) should be [ellipse(100% 100% at 0% 0%)] +Fail CSS Transitions with transition: all: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.3) should be [ellipse(100% 100% at 0% 0%)] +Fail CSS Transitions with transition: all: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.5) should be [ellipse(100% 100% at 0% 0%)] +Fail CSS Transitions with transition: all: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.6) should be [ellipse(100% 100% at 0% 0%)] +Fail CSS Transitions with transition: all: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1) should be [ellipse(100% 100% at 0% 0%)] +Fail CSS Transitions with transition: all: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1.5) should be [ellipse(100% 100% at 0% 0%)] +Fail CSS Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (-0.3) should be [none] +Fail CSS Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0) should be [none] +Fail CSS Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.3) should be [none] +Fail CSS Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.5) should be [ellipse(100% 100% at 0% 0%)] +Fail CSS Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.6) should be [ellipse(100% 100% at 0% 0%)] +Fail CSS Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1) should be [ellipse(100% 100% at 0% 0%)] +Fail CSS Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1.5) should be [ellipse(100% 100% at 0% 0%)] +Fail Web Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (-0.3) should be [none] +Fail Web Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0) should be [none] +Fail Web Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.3) should be [none] +Fail Web Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.5) should be [ellipse(100% 100% at 0% 0%)] +Fail Web Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.6) should be [ellipse(100% 100% at 0% 0%)] +Fail Web Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1) should be [ellipse(100% 100% at 0% 0%)] +Fail Web Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1.5) should be [ellipse(100% 100% at 0% 0%)] +Fail CSS Transitions: property from [circle(25% at right 5% bottom 15px)] to [circle(45% at right 25% bottom 35px)] at (0.25) should be [circle(30% at 90% calc(-20px + 100%))] +Fail CSS Transitions: property from [circle(25% at right 5% bottom 15px)] to [circle(45% at right 25% bottom 35px)] at (0.5) should be [circle(35% at 85% calc(-25px + 100%))] +Fail CSS Transitions: property from [circle(25% at right 5% bottom 15px)] to [circle(45% at right 25% bottom 35px)] at (0.75) should be [circle(40% at 80% calc(-30px + 100%))] +Fail CSS Transitions with transition: all: property from [circle(25% at right 5% bottom 15px)] to [circle(45% at right 25% bottom 35px)] at (0.25) should be [circle(30% at 90% calc(-20px + 100%))] +Fail CSS Transitions with transition: all: property from [circle(25% at right 5% bottom 15px)] to [circle(45% at right 25% bottom 35px)] at (0.5) should be [circle(35% at 85% calc(-25px + 100%))] +Fail CSS Transitions with transition: all: property from [circle(25% at right 5% bottom 15px)] to [circle(45% at right 25% bottom 35px)] at (0.75) should be [circle(40% at 80% calc(-30px + 100%))] +Fail CSS Animations: property from [circle(25% at right 5% bottom 15px)] to [circle(45% at right 25% bottom 35px)] at (0.25) should be [circle(30% at 90% calc(-20px + 100%))] +Fail CSS Animations: property from [circle(25% at right 5% bottom 15px)] to [circle(45% at right 25% bottom 35px)] at (0.5) should be [circle(35% at 85% calc(-25px + 100%))] +Fail CSS Animations: property from [circle(25% at right 5% bottom 15px)] to [circle(45% at right 25% bottom 35px)] at (0.75) should be [circle(40% at 80% calc(-30px + 100%))] +Fail Web Animations: property from [circle(25% at right 5% bottom 15px)] to [circle(45% at right 25% bottom 35px)] at (0.25) should be [circle(30% at 90% calc(-20px + 100%))] +Fail Web Animations: property from [circle(25% at right 5% bottom 15px)] to [circle(45% at right 25% bottom 35px)] at (0.5) should be [circle(35% at 85% calc(-25px + 100%))] +Fail Web Animations: property from [circle(25% at right 5% bottom 15px)] to [circle(45% at right 25% bottom 35px)] at (0.75) should be [circle(40% at 80% calc(-30px + 100%))] \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-image-threshold-computed.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-image-threshold-computed.txt new file mode 100644 index 00000000000..944aa52572b --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-image-threshold-computed.txt @@ -0,0 +1,11 @@ +Harness status: OK + +Found 6 tests + +6 Fail +Fail Property shape-image-threshold value '-7' +Fail Property shape-image-threshold value '0.5' +Fail Property shape-image-threshold value '12.5' +Fail Property shape-image-threshold value '-100%' +Fail Property shape-image-threshold value '50%' +Fail Property shape-image-threshold value '300%' \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-image-threshold-invalid.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-image-threshold-invalid.txt new file mode 100644 index 00000000000..7b158894acd --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-image-threshold-invalid.txt @@ -0,0 +1,7 @@ +Harness status: OK + +Found 2 tests + +2 Pass +Pass e.style['shape-image-threshold'] = "auto" should not set the property value +Pass e.style['shape-image-threshold'] = "10px" should not set the property value \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-image-threshold-valid.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-image-threshold-valid.txt new file mode 100644 index 00000000000..eb40b7ea8bf --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-image-threshold-valid.txt @@ -0,0 +1,10 @@ +Harness status: OK + +Found 5 tests + +5 Fail +Fail e.style['shape-image-threshold'] = "12.5" should set the property value +Fail e.style['shape-image-threshold'] = "-7" should set the property value +Fail e.style['shape-image-threshold'] = "-100%" should set the property value +Fail e.style['shape-image-threshold'] = "50%" should set the property value +Fail e.style['shape-image-threshold'] = "300%" should set the property value \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-margin-computed.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-margin-computed.txt new file mode 100644 index 00000000000..1fa7991166c --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-margin-computed.txt @@ -0,0 +1,8 @@ +Harness status: OK + +Found 3 tests + +3 Fail +Fail Property shape-margin value 'calc(10px + 0.5em)' +Fail Property shape-margin value 'calc(10px - 0.5em)' +Fail Property shape-margin value '50%' \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-margin-invalid.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-margin-invalid.txt new file mode 100644 index 00000000000..8cadd1377c4 --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-margin-invalid.txt @@ -0,0 +1,7 @@ +Harness status: OK + +Found 2 tests + +2 Pass +Pass e.style['shape-margin'] = "none" should not set the property value +Pass e.style['shape-margin'] = "10" should not set the property value \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-margin-valid.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-margin-valid.txt new file mode 100644 index 00000000000..64d1dc8749d --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-margin-valid.txt @@ -0,0 +1,9 @@ +Harness status: OK + +Found 4 tests + +4 Fail +Fail e.style['shape-margin'] = "0" should set the property value +Fail e.style['shape-margin'] = "10px" should set the property value +Fail e.style['shape-margin'] = "20em" should set the property value +Fail e.style['shape-margin'] = "37.5%" should set the property value \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-outside-computed.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-outside-computed.txt new file mode 100644 index 00000000000..4c14763db82 --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-outside-computed.txt @@ -0,0 +1,17 @@ +Harness status: OK + +Found 12 tests + +12 Fail +Fail Property shape-outside value 'circle(at 10% 20%)' +Fail Property shape-outside value 'circle(at calc(75% + 0px) calc(75% + 0px))' +Fail Property shape-outside value 'circle(calc(10px + 0.5em) at -50% 50%) border-box' +Fail Property shape-outside value 'circle(calc(10px - 0.5em) at 50% -50%) border-box' +Fail Property shape-outside value 'circle(at top 0% right calc(10% * sign(1em - 1px)))' +Fail Property shape-outside value 'circle(at top 0% right calc(10% * sibling-index()))' +Fail Property shape-outside value 'ellipse(60% closest-side at 50% 50%)' +Fail Property shape-outside value 'ellipse(calc(10px + 0.5em) calc(10px - 0.5em) at -50% 50%) padding-box' +Fail Property shape-outside value 'ellipse(calc(10px - 0.5em) calc(10px + 0.5em) at 50% -50%) border-box' +Fail Property shape-outside value 'polygon(evenodd, -10px, -20px, -30px, -40px, -50px, -60px) margin-box' +Fail Property shape-outside value 'polygon(10%, 20%, 30%, 40%, 50%, 60%) content-box' +Fail Property shape-outside value 'polygon(calc(10px - 0.5em), 20%, 30%, 40%, 50%, calc(10px - 0.5em))' \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-outside-invalid-position.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-outside-invalid-position.txt new file mode 100644 index 00000000000..fa34be41eca --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-outside-invalid-position.txt @@ -0,0 +1,15 @@ +Harness status: OK + +Found 10 tests + +10 Pass +Pass e.style['shape-outside'] = "circle(at center left 1px)" should not set the property value +Pass e.style['shape-outside'] = "circle(at center top 2px)" should not set the property value +Pass e.style['shape-outside'] = "circle(at right 3% center)" should not set the property value +Pass e.style['shape-outside'] = "circle(at left 4px top)" should not set the property value +Pass e.style['shape-outside'] = "circle(at right 5px top)" should not set the property value +Pass e.style['shape-outside'] = "ellipse(at right top 5px)" should not set the property value +Pass e.style['shape-outside'] = "ellipse(at bottom 6% center)" should not set the property value +Pass e.style['shape-outside'] = "ellipse(at bottom 7% left)" should not set the property value +Pass e.style['shape-outside'] = "ellipse(at bottom right 8%)" should not set the property value +Pass e.style['shape-outside'] = "ellipse(at right 10px top)" should not set the property value \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-outside-valid-position.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-outside-valid-position.txt new file mode 100644 index 00000000000..956d259d096 --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-outside-valid-position.txt @@ -0,0 +1,25 @@ +Harness status: OK + +Found 20 tests + +20 Fail +Fail e.style['shape-outside'] = "circle(at 10%)" should set the property value +Fail e.style['shape-outside'] = "circle(at 20% 30px)" should set the property value +Fail e.style['shape-outside'] = "circle(at 30px center)" should set the property value +Fail e.style['shape-outside'] = "circle(at 40px top)" should set the property value +Fail e.style['shape-outside'] = "circle(at bottom 10% right 20%)" should set the property value +Fail e.style['shape-outside'] = "circle(at bottom right)" should set the property value +Fail e.style['shape-outside'] = "circle(at center)" should set the property value +Fail e.style['shape-outside'] = "circle(at center 50px)" should set the property value +Fail e.style['shape-outside'] = "circle(at center bottom)" should set the property value +Fail e.style['shape-outside'] = "circle(at center center)" should set the property value +Fail e.style['shape-outside'] = "circle(at center left)" should set the property value +Fail e.style['shape-outside'] = "circle(at left)" should set the property value +Fail e.style['shape-outside'] = "circle(at left bottom)" should set the property value +Fail e.style['shape-outside'] = "circle(at left center)" should set the property value +Fail e.style['shape-outside'] = "circle(at right 40%)" should set the property value +Fail e.style['shape-outside'] = "circle(at right 30% top 60px)" should set the property value +Fail e.style['shape-outside'] = "circle(at top)" should set the property value +Fail e.style['shape-outside'] = "circle(at top center)" should set the property value +Fail e.style['shape-outside'] = "circle(at top 0% right calc(10% * sign(1em - 1px)))" should set the property value +Fail e.style['shape-outside'] = "circle(at top 0% right calc(10% * sibling-index()))" should set the property value \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/circle-function-computed.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/circle-function-computed.txt new file mode 100644 index 00000000000..969acd3d37b --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/circle-function-computed.txt @@ -0,0 +1,19 @@ +Harness status: OK + +Found 14 tests + +14 Fail +Fail Property shape-outside value 'circle()' +Fail Property shape-outside value 'circle(1px)' +Fail Property shape-outside value 'circle(20px at center)' +Fail Property shape-outside value 'circle(at 10% 20%)' +Fail Property shape-outside value 'circle(4% at top right)' +Fail Property shape-outside value 'circle(calc(100% - 20px) at calc(100% - 20px) calc(100% / 4))' +Fail Property shape-outside value 'circle(closest-corner at center)' +Fail Property shape-outside value 'circle(closest-corner at 20px 50px)' +Fail Property shape-outside value 'circle(closest-side at center)' +Fail Property shape-outside value 'circle(closest-side at 20px 30%)' +Fail Property shape-outside value 'circle(farthest-corner at center top)' +Fail Property shape-outside value 'circle(farthest-corner at center)' +Fail Property shape-outside value 'circle(farthest-side at center top)' +Fail Property shape-outside value 'circle(farthest-side at center)' \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/circle-function-invalid.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/circle-function-invalid.txt new file mode 100644 index 00000000000..c6af9eb0209 --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/circle-function-invalid.txt @@ -0,0 +1,15 @@ +Harness status: OK + +Found 10 tests + +10 Pass +Pass e.style['shape-outside'] = "circle(123)" should not set the property value +Pass e.style['shape-outside'] = "circle(at)" should not set the property value +Pass e.style['shape-outside'] = "circle(4% 20%)" should not set the property value +Pass e.style['shape-outside'] = "circle(4% 20% at center)" should not set the property value +Pass e.style['shape-outside'] = "circle(4px 20px)" should not set the property value +Pass e.style['shape-outside'] = "circle(4px, 20px)" should not set the property value +Pass e.style['shape-outside'] = "circle(at 4px, 20px)" should not set the property value +Pass e.style['shape-outside'] = "circle(-10px at 20px 30px)" should not set the property value +Pass e.style['shape-outside'] = "circle(-10% at 20% 30%)" should not set the property value +Pass e.style['shape-outside'] = "circle(1% 2% at 0% 100%)" should not set the property value \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/circle-function-valid.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/circle-function-valid.txt new file mode 100644 index 00000000000..cd6e97617f9 --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/circle-function-valid.txt @@ -0,0 +1,19 @@ +Harness status: OK + +Found 14 tests + +14 Fail +Fail e.style['shape-outside'] = "circle()" should set the property value +Fail e.style['shape-outside'] = "circle(1px)" should set the property value +Fail e.style['shape-outside'] = "circle(20px at center)" should set the property value +Fail e.style['shape-outside'] = "circle(at 10% 20%)" should set the property value +Fail e.style['shape-outside'] = "circle(4% at top right)" should set the property value +Fail e.style['shape-outside'] = "circle(calc(100% - 20px) at calc(100% - 20px) calc(100% / 4))" should set the property value +Fail e.style['shape-outside'] = "circle(closest-corner at center)" should set the property value +Fail e.style['shape-outside'] = "circle(closest-corner at 20px 50px)" should set the property value +Fail e.style['shape-outside'] = "circle(closest-side at center)" should set the property value +Fail e.style['shape-outside'] = "circle(closest-side at 20px 30%)" should set the property value +Fail e.style['shape-outside'] = "circle(farthest-corner at center top)" should set the property value +Fail e.style['shape-outside'] = "circle(farthest-corner at center)" should set the property value +Fail e.style['shape-outside'] = "circle(farthest-side at center top)" should set the property value +Fail e.style['shape-outside'] = "circle(farthest-side at center)" should set the property value \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/ellipse-function-computed.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/ellipse-function-computed.txt new file mode 100644 index 00000000000..043f16a3e16 --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/ellipse-function-computed.txt @@ -0,0 +1,19 @@ +Harness status: OK + +Found 14 tests + +14 Fail +Fail Property shape-outside value 'ellipse()' +Fail Property shape-outside value 'ellipse(1px 2px)' +Fail Property shape-outside value 'ellipse(20px 40px at center)' +Fail Property shape-outside value 'ellipse(closest-side 20%)' +Fail Property shape-outside value 'ellipse(farthest-side 20%)' +Fail Property shape-outside value 'ellipse(closest-corner 20%)' +Fail Property shape-outside value 'ellipse(farthest-corner 20%)' +Fail Property shape-outside value 'ellipse(at 10% 20%)' +Fail Property shape-outside value 'ellipse(at -10px -20%)' +Fail Property shape-outside value 'ellipse(4% 20% at top right)' +Fail Property shape-outside value 'ellipse(calc(100% - 20px) calc(80% - 10px) at calc(100% - 20px) calc(100% / 4))' +Fail Property shape-outside value 'ellipse(10px closest-side at top right)' +Fail Property shape-outside value 'ellipse(farthest-side 20px at center top)' +Fail Property shape-outside value 'ellipse(farthest-side farthest-side at top right)' \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/ellipse-function-invalid.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/ellipse-function-invalid.txt new file mode 100644 index 00000000000..4c901c2a623 --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/ellipse-function-invalid.txt @@ -0,0 +1,15 @@ +Harness status: OK + +Found 10 tests + +10 Pass +Pass e.style['shape-outside'] = "ellipse(10px)" should not set the property value +Pass e.style['shape-outside'] = "ellipse(10px -20px)" should not set the property value +Pass e.style['shape-outside'] = "ellipse(20px, 40px at center)" should not set the property value +Pass e.style['shape-outside'] = "ellipse(farthest-side at)" should not set the property value +Pass e.style['shape-outside'] = "ellipse(1% 2% top right)" should not set the property value +Pass e.style['shape-outside'] = "ellipse(3% at 100% 0%)" should not set the property value +Pass e.style['shape-outside'] = "ellipse(closest-side)" should not set the property value +Pass e.style['shape-outside'] = "ellipse(farthest-side at 100% 0%)" should not set the property value +Pass e.style['shape-outside'] = "ellipse(10% -20% at 30% 40%)" should not set the property value +Pass e.style['shape-outside'] = "ellipse(-50px 60px at 70% 80%)" should not set the property value \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/ellipse-function-valid.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/ellipse-function-valid.txt new file mode 100644 index 00000000000..14b79fef3ce --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/ellipse-function-valid.txt @@ -0,0 +1,19 @@ +Harness status: OK + +Found 14 tests + +14 Fail +Fail e.style['shape-outside'] = "ellipse()" should set the property value +Fail e.style['shape-outside'] = "ellipse(1px 2px)" should set the property value +Fail e.style['shape-outside'] = "ellipse(20px 40px at center)" should set the property value +Fail e.style['shape-outside'] = "ellipse(closest-side 20%)" should set the property value +Fail e.style['shape-outside'] = "ellipse(farthest-side 20%)" should set the property value +Fail e.style['shape-outside'] = "ellipse(closest-corner 20%)" should set the property value +Fail e.style['shape-outside'] = "ellipse(farthest-corner 20%)" should set the property value +Fail e.style['shape-outside'] = "ellipse(at 10% 20%)" should set the property value +Fail e.style['shape-outside'] = "ellipse(at -10px -20%)" should set the property value +Fail e.style['shape-outside'] = "ellipse(4% 20% at top right)" should set the property value +Fail e.style['shape-outside'] = "ellipse(calc(100% - 20px) calc(80% - 10px) at calc(100% - 20px) calc(100% / 4))" should set the property value +Fail e.style['shape-outside'] = "ellipse(10px closest-side at top right)" should set the property value +Fail e.style['shape-outside'] = "ellipse(farthest-side 20px at center top)" should set the property value +Fail e.style['shape-outside'] = "ellipse(farthest-side farthest-side at top right)" should set the property value \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/inset-function-computed.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/inset-function-computed.txt new file mode 100644 index 00000000000..b5e9cf15120 --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/inset-function-computed.txt @@ -0,0 +1,16 @@ +Harness status: OK + +Found 11 tests + +11 Fail +Fail Property shape-outside value 'inset(100%)' +Fail Property shape-outside value 'inset(0 1px)' +Fail Property shape-outside value 'inset(0px 1px 2%)' +Fail Property shape-outside value 'inset(-20px -20px 2%)' +Fail Property shape-outside value 'inset(0px 1px 2% 3em)' +Fail Property shape-outside value 'inset(0px calc(100% - 20px) 2% 3em)' +Fail Property shape-outside value 'inset(0px round 100%)' +Fail Property shape-outside value 'inset(0px round 0 1px)' +Fail Property shape-outside value 'inset(0px round 0px 1px 2%)' +Fail Property shape-outside value 'inset(0px round 0px 1px 2% 3em)' +Fail Property shape-outside value 'inset(10px round 20% / 0px 1px 2% 3em)' \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/inset-function-invalid.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/inset-function-invalid.txt new file mode 100644 index 00000000000..180d7b6cfa2 --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/inset-function-invalid.txt @@ -0,0 +1,17 @@ +Harness status: OK + +Found 12 tests + +12 Pass +Pass e.style['shape-outside'] = "inset(0px, 1px)" should not set the property value +Pass e.style['shape-outside'] = "inset(0px round 0px, 1px)" should not set the property value +Pass e.style['shape-outside'] = "inset()" should not set the property value +Pass e.style['shape-outside'] = "inset(123)" should not set the property value +Pass e.style['shape-outside'] = "inset(1% 2% 3% 4% 5%)" should not set the property value +Pass e.style['shape-outside'] = "inset(round 0)" should not set the property value +Pass e.style['shape-outside'] = "inset(0px round)" should not set the property value +Pass e.style['shape-outside'] = "inset(0px round 123)" should not set the property value +Pass e.style['shape-outside'] = "inset(0px round 1% 2% 3% 4% 5%)" should not set the property value +Pass e.style['shape-outside'] = "inset(0px round / 1px)" should not set the property value +Pass e.style['shape-outside'] = "inset(10px round -20px)" should not set the property value +Pass e.style['shape-outside'] = "inset(30% round -40%)" should not set the property value \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/inset-function-valid.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/inset-function-valid.txt new file mode 100644 index 00000000000..9bbc964a0c2 --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/inset-function-valid.txt @@ -0,0 +1,16 @@ +Harness status: OK + +Found 11 tests + +11 Fail +Fail e.style['shape-outside'] = "inset(100%)" should set the property value +Fail e.style['shape-outside'] = "inset(0 1px)" should set the property value +Fail e.style['shape-outside'] = "inset(0px 1px 2%)" should set the property value +Fail e.style['shape-outside'] = "inset(-20px -20px 2%)" should set the property value +Fail e.style['shape-outside'] = "inset(0px 1px 2% 3em)" should set the property value +Fail e.style['shape-outside'] = "inset(0px calc(100% - 20px) 2% 3em)" should set the property value +Fail e.style['shape-outside'] = "inset(0px round 100%)" should set the property value +Fail e.style['shape-outside'] = "inset(0px round 0 1px)" should set the property value +Fail e.style['shape-outside'] = "inset(0px round 0px 1px 2%)" should set the property value +Fail e.style['shape-outside'] = "inset(0px round 0px 1px 2% 3em)" should set the property value +Fail e.style['shape-outside'] = "inset(10px round 20% / 0px 1px 2% 3em)" should set the property value \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/polygon-function-computed.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/polygon-function-computed.txt new file mode 100644 index 00000000000..a6636992801 --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/polygon-function-computed.txt @@ -0,0 +1,9 @@ +Harness status: OK + +Found 4 tests + +4 Fail +Fail Property shape-outside value 'polygon(1% 2%)' +Fail Property shape-outside value 'polygon(calc(100% - 20px) calc(30% + 10px))' +Fail Property shape-outside value 'polygon(nonzero, 1px 2px, 3em 4em)' +Fail Property shape-outside value 'polygon(evenodd, 1px 2px, 3em 4em, 6pt 6%)' \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/polygon-function-invalid.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/polygon-function-invalid.txt new file mode 100644 index 00000000000..456ddeb1453 --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/polygon-function-invalid.txt @@ -0,0 +1,8 @@ +Harness status: OK + +Found 3 tests + +3 Pass +Pass e.style['shape-outside'] = "polygon(100px)" should not set the property value +Pass e.style['shape-outside'] = "polygon(1%)" should not set the property value +Pass e.style['shape-outside'] = "polygon(evenodd, 1px, 2px, 3em 4em, 5pt 6%)" should not set the property value \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/polygon-function-valid.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/polygon-function-valid.txt new file mode 100644 index 00000000000..36c798cf7d8 --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/polygon-function-valid.txt @@ -0,0 +1,9 @@ +Harness status: OK + +Found 4 tests + +4 Fail +Fail e.style['shape-outside'] = "polygon(1% 2%)" should set the property value +Fail e.style['shape-outside'] = "polygon(calc(100% - 20px) calc(30% + 10px))" should set the property value +Fail e.style['shape-outside'] = "polygon(nonzero, 1px 2px, 3em 4em)" should set the property value +Fail e.style['shape-outside'] = "polygon(evenodd, 1px 2px, 3em 4em, 5pt 6%)" should set the property value \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/rect-function-computed.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/rect-function-computed.txt new file mode 100644 index 00000000000..094cb42d8ba --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/rect-function-computed.txt @@ -0,0 +1,16 @@ +Harness status: OK + +Found 11 tests + +11 Fail +Fail Property clip-path value 'rect(0 0 0 0)' +Fail Property clip-path value 'rect(10px auto 20px 30px)' +Fail Property clip-path value 'rect(auto auto auto auto)' +Fail Property clip-path value 'rect(10% 20% 15% 12%)' +Fail Property clip-path value 'rect(10% 95% 97% 12%)' +Fail Property clip-path value 'rect(-10% -20% -15% -12%)' +Fail Property clip-path value 'rect(10px 12% 20px 30px round 100%)' +Fail Property clip-path value 'rect(10px 12% 20px 30px round 0 1px)' +Fail Property clip-path value 'rect(10px 12% 20px 30px round 0px 1px 2%)' +Fail Property clip-path value 'rect(10px 12% 20px 30px round 0px 1px 2% 3em)' +Fail Property clip-path value 'rect(10px 12% 20px 30px round 20% / 0px 1px 2% 3em)' \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/rect-function-invalid.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/rect-function-invalid.txt new file mode 100644 index 00000000000..e6c61542ce5 --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/rect-function-invalid.txt @@ -0,0 +1,19 @@ +Harness status: OK + +Found 14 tests + +14 Pass +Pass e.style['clip-path'] = "rect()" should not set the property value +Pass e.style['clip-path'] = "rect(0px)" should not set the property value +Pass e.style['clip-path'] = "rect(0px 1px)" should not set the property value +Pass e.style['clip-path'] = "rect(0px 1px 2px)" should not set the property value +Pass e.style['clip-path'] = "rect(0px, 1px, 2px, 3px)" should not set the property value +Pass e.style['clip-path'] = "rect(0, 1, 2, 3)" should not set the property value +Pass e.style['clip-path'] = "rect(1% 2% 3% 4% 5%)" should not set the property value +Pass e.style['clip-path'] = "rect(round 0)" should not set the property value +Pass e.style['clip-path'] = "rect(10px auto 20px 30px round)" should not set the property value +Pass e.style['clip-path'] = "rect(10px auto 20px 30px round 123)" should not set the property value +Pass e.style['clip-path'] = "rect(10px auto 20px 30px round 1% 2% 3% 4% 5%)" should not set the property value +Pass e.style['clip-path'] = "rect(10px auto 20px 30px round / 1px)" should not set the property value +Pass e.style['clip-path'] = "rect(10px auto 20px 30px round -20px)" should not set the property value +Pass e.style['clip-path'] = "rect(10px auto 20px 30px round -40%)" should not set the property value \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/rect-function-valid.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/rect-function-valid.txt new file mode 100644 index 00000000000..c9e3e620c84 --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/rect-function-valid.txt @@ -0,0 +1,17 @@ +Harness status: OK + +Found 11 tests + +6 Pass +5 Fail +Pass e.style['clip-path'] = "rect(0 0 0 0)" should set the property value +Pass e.style['clip-path'] = "rect(10px auto 20px 30px)" should set the property value +Pass e.style['clip-path'] = "rect(auto auto auto auto)" should set the property value +Pass e.style['clip-path'] = "rect(10% 20% 15% 12%)" should set the property value +Pass e.style['clip-path'] = "rect(10% 95% 97% 12%)" should set the property value +Pass e.style['clip-path'] = "rect(-10% -20% -15% -12%)" should set the property value +Fail e.style['clip-path'] = "rect(10px 12% 20px 30px round 100%)" should set the property value +Fail e.style['clip-path'] = "rect(10px 12% 20px 30px round 0 1px)" should set the property value +Fail e.style['clip-path'] = "rect(10px 12% 20px 30px round 0px 1px 2%)" should set the property value +Fail e.style['clip-path'] = "rect(10px 12% 20px 30px round 0px 1px 2% 3em)" should set the property value +Fail e.style['clip-path'] = "rect(10px 12% 20px 30px round 20% / 0px 1px 2% 3em)" should set the property value \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/shape-function-computed.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/shape-function-computed.txt new file mode 100644 index 00000000000..43721fe8b4f --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/shape-function-computed.txt @@ -0,0 +1,36 @@ +Harness status: OK + +Found 31 tests + +31 Fail +Fail Property clip-path value 'shape(from 20px 40px, line to 20px 30px)' +Fail Property clip-path value 'shape(from 20px 40px, line to 20px 30px )' +Fail Property clip-path value 'shape(from 0 0, line to 100% 100%)' +Fail Property clip-path value 'shape(from 20px 40px, move to 20px 30px, line by 20px 30px)' +Fail Property clip-path value 'shape(from 20px 40px, move to 20px 30px, hline to 100px)' +Fail Property clip-path value 'shape(from 20px 40px, move to 20px 30px, hline by 100%)' +Fail Property clip-path value 'shape(from 20px 40px, move to 20px 30px, vline to 100px)' +Fail Property clip-path value 'shape(from 20px 40px, move to 20px 30px, vline by 100%)' +Fail Property clip-path value 'shape(from 20px 40px, curve by 20px 20px with 10px 30px)' +Fail Property clip-path value 'shape(from 20px 40px, curve by 20px 20px with 10px 30px / 12px 32px)' +Fail Property clip-path value 'shape(from center, curve to center bottom with top right / bottom right)' +Fail Property clip-path value 'shape(from center, curve by 20px 20px with 10px 30px from end / 12px 32px from start)' +Fail Property clip-path value 'shape(from center right, curve by 20px 20px with 10px 30px from origin / 12px 32px from origin)' +Fail Property clip-path value 'shape(from 20px 40px, curve to top right with 10px 30px from origin / 12px 32px from origin)' +Fail Property clip-path value 'shape(from 20px 40px, smooth by 20px 20px)' +Fail Property clip-path value 'shape(from 20px 40px, smooth by 20px 20px with 12px 32px)' +Fail Property clip-path value 'shape(from 20px 40px, arc by 20px 20px of 10%)' +Fail Property clip-path value 'shape(from 20px 40px, arc by 20px 20px of 0)' +Fail Property clip-path value 'shape(from 20px 40px, arc by 20px 20px of 10% 0)' +Fail Property clip-path value 'shape(from 20px 40px, arc by 20px 20px of 10% rotate 0deg)' +Fail Property clip-path value 'shape(from 20px 40px, arc by 20px 20px of 10% 20%)' +Fail Property clip-path value 'shape(from 20px 40px, arc by 20px 20px of 10% 20% cw)' +Fail Property clip-path value 'shape(from 20px 40px, arc by 20px 20px of 10% 20% large)' +Fail Property clip-path value 'shape(from 20px 40px, arc by 20px 20px of -10% -20% large)' +Fail Property clip-path value 'shape(from 20px 40px, arc by 20px 20px of 10% rotate 1deg)' +Fail Property clip-path value 'shape(from 20px 40px, arc by 20px 20px of 10% 20% cw rotate 12deg)' +Fail Property clip-path value 'shape(from 20px 40px, arc by 20px 20px of 10% 20% cw rotate 3.14159265rad)' +Fail Property clip-path value 'shape(from 20px 40px, arc by 20px 20px of 10% 20% large rotate 12deg)' +Fail Property clip-path value 'shape(from 20px 40px, arc by 20px 20px of 10% 20% cw large)' +Fail Property clip-path value 'shape(from 20px 40px, arc by 20px 20px of 10% 20% large cw)' +Fail Property clip-path value 'shape(from 20px 40px, arc by 20px 20px of 10% 20% rotate 12deg large)' \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/shape-function-invalid.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/shape-function-invalid.txt new file mode 100644 index 00000000000..e46a81da814 --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/shape-function-invalid.txt @@ -0,0 +1,45 @@ +Harness status: OK + +Found 40 tests + +40 Pass +Pass e.style['clip-path'] = "shape(from 20px 40px line to 20px 30px)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px line to 20px 30px,)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px, 40px, line to 20px, 30px)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, move to 20px 30px, hline to top)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, move to 20px 30px, hline to bottom)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, move to 20px 30px, hline to y-start)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, move to 20px 30px, hline to y-end)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, move to 20px 30px, vline to left)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, move to 20px 30px, vline to right)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, move to 20px 30px, vline to x-start)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, move to 20px 30px, vline to x-end)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, move to 20px 30px, hline to top 20px)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, move to 20px 30px, hline to right, vline to bottom left, close)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, move to 20px 30px, hline by left)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, move to 20px 30px, hline by right)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, move to 20px 30px, vline by top)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, move to 20px 30px, vline by bottom)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, curve to 20px 20px, using 10px 30px)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, curve to 20px 20px using 10px 30px, 12px 32px)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, curve by 20px 20px, using 10px 30px)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, curve by 20px 20px using 10px 30px, 12px 32px)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, curve by 20px 20px via 10px 30px)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, curve by 20px 20px via 10px 30px 12px 32px)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, smooth by 20px 20px via 10px 30px / 12px 32px)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, smooth by 20px 20px using 10px 30px 12px 32px)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, curve to 20px 20px with 10px 30px 12px 32px)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, curve by 20px 20px with 10px 30px 12px 32px)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, curve by 20px 20px with 10px 30px /)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, curve by top left using 10px 30px)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, curve by 20px 30px using top right)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, curve to 20px 30px using top right / 20px from end)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, arc by top right of 10% 20%)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, arc by 10px 20px of top right small cw)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, curve by 20px 30px from start, using 23px 32px)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, curve to 20px 20px using top left from origin / 12px 32px from end)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, arc by 20px 20px of 10% 20% 12deg)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, arc by 20px 20px of 10% 20% rotate 12deg rotate 13deg)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, arc by 20px 20px of 10% 20% cw large 12deg)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, arc by 20px 20px of 10% 20% small large)" should not set the property value +Pass e.style['clip-path'] = "shape(from 20px 40px, arc by 20px 20px of 10% 20% cw ccw)" should not set the property value \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/shape-function-valid.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/shape-function-valid.txt new file mode 100644 index 00000000000..53e29cc649b --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/shape-function-valid.txt @@ -0,0 +1,56 @@ +Harness status: OK + +Found 51 tests + +51 Fail +Fail e.style['clip-path'] = "shape(from 20px 40px, line to 20px 30px)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, line to 20px 30px )" should set the property value +Fail e.style['clip-path'] = "shape(from 0 0, line to 100% 100%)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, move to 20px 30px, line by 20px 30px)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, move to 20px 30px, hline to 100px)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, move to 20px 30px, hline by 100%)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, move to 20px 30px, vline to 100px)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, move to 20px 30px, vline by 100%)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, move to 20px 30px, hline to left, hline to center, hline to right)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, move to 20px 30px, hline to x-start, vline to y-start)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, move to 20px 30px, vline to top, vline to center, vline to bottom)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, move to 20px 30px, vline to y-start, vline to y-end)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, curve to 20px 20px with 10px 30px)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, curve to 20em 20pt with 10vw 30vh)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, curve to 10% 20% with 10px 30px / 12px 32px)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, curve to top left with 10px 30px / 12px 32px)" should set the property value +Fail e.style['clip-path'] = "shape(from 20% 40%, curve to center with center right / bottom center)" should set the property value +Fail e.style['clip-path'] = "shape(from bottom right, curve to left with center right / bottom center)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, curve to bottom left with 10px 30px from end)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, curve to right center with 10px 30px from start / 12px 32px from end)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, curve to right center with 10px 30px from start/12px 32px from end)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, curve to right center with 10px 30px from end / 12px 32px from origin)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, curve to right center with 10px 30px from origin / 12px 32px from start)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, curve by 20px 20px with 10px 30px)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, curve by 20px 20px with 10px 30px from origin)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, curve by 20px 20px with 10px 30px / 12px 32px)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, curve by 20% 20em with 10px 30px from start / 12px 32px from end)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, curve by 20% 20em with 10.3% 30px from origin / 12pt 5.4% from start)" should set the property value +Fail e.style['clip-path'] = "shape(from top left, smooth to top right)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, smooth to center 20%)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, smooth by 20px 20px)" should set the property value +Fail e.style['clip-path'] = "shape(from right bottom, smooth by 20px 20px with 12px 32px)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, smooth by 20pt 20px with 12px 32px from start)" should set the property value +Fail e.style['clip-path'] = "shape(from center 40px, smooth by 20% 20% with 12px 32px from end)" should set the property value +Fail e.style['clip-path'] = "shape(from center, smooth by 20px 20px with 12px 32px from origin)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, arc to top right of 10%)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, arc by 20px 20px of 10%)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, arc by 20px 20px of 0)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, arc by 20px 20px of 10% 0)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, arc by 20% 20pt of 10% rotate 0deg)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, arc by 20px 20px of 10% 20%)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, arc by 20px 20px of 10% 20% cw)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, arc by 20px 20px of 10% 20% large)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, arc by 20px 20px of -10% -20% large)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, arc by 20px 20px of 10% rotate 1deg)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, arc by 20px 20px of 10% 20% cw rotate 12deg)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, arc by 20px 20px of 10px 20px cw rotate 0.52rad)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, arc by 20px 20px of 10% 20% large rotate 12deg)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, arc by 20px 20px of 10% 20% cw large)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, arc by 20px 20px of 10% 20% large cw)" should set the property value +Fail e.style['clip-path'] = "shape(from 20px 40px, arc by 20px 20px of 10% 20% rotate 12deg large)" should set the property value \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/xywh-function-computed.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/xywh-function-computed.txt new file mode 100644 index 00000000000..6b713823d3f --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/xywh-function-computed.txt @@ -0,0 +1,12 @@ +Harness status: OK + +Found 7 tests + +7 Fail +Fail Property shape-outside value 'xywh(0px 1px 2% 3em)' +Fail Property shape-outside value 'xywh(0px calc(100% - 20px) 2% 3em)' +Fail Property shape-outside value 'xywh(10px 20px 30px 25px round 100%)' +Fail Property shape-outside value 'xywh(10px 20px 30px 25px round 0 1px)' +Fail Property shape-outside value 'xywh(10px 20px 30px 25px round 0px 1px 2%)' +Fail Property shape-outside value 'xywh(10px 20px 30px 25px round 0px 1px 2% 3em)' +Fail Property shape-outside value 'xywh(10px 20px 30px 25px round 20% / 0px 1px 2% 3em)' \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/xywh-function-invalid.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/xywh-function-invalid.txt new file mode 100644 index 00000000000..59cd3a803fb --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/xywh-function-invalid.txt @@ -0,0 +1,11 @@ +Harness status: OK + +Found 6 tests + +6 Pass +Pass e.style['shape-outside'] = "xywh(0px 1px -2% 3em)" should not set the property value +Pass e.style['shape-outside'] = "xywh(0px 1px 2% -3em)" should not set the property value +Pass e.style['shape-outside'] = "xywh(10px 20px)" should not set the property value +Pass e.style['shape-outside'] = "xywh(10px 20px 30px)" should not set the property value +Pass e.style['shape-outside'] = "xywh(10px 20px, 30px 25px)" should not set the property value +Pass e.style['shape-outside'] = "xywh(10px 20px 30px 25px round 0px -1px 2%)" should not set the property value \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/xywh-function-valid.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/xywh-function-valid.txt new file mode 100644 index 00000000000..9df9375c56c --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/xywh-function-valid.txt @@ -0,0 +1,12 @@ +Harness status: OK + +Found 7 tests + +7 Fail +Fail e.style['shape-outside'] = "xywh(0px 1px 2% 3em)" should set the property value +Fail e.style['shape-outside'] = "xywh(0px calc(100% - 20px) 2% 3em)" should set the property value +Fail e.style['shape-outside'] = "xywh(10px 20px 30px 25px round 100%)" should set the property value +Fail e.style['shape-outside'] = "xywh(10px 20px 30px 25px round 0 1px)" should set the property value +Fail e.style['shape-outside'] = "xywh(10px 20px 30px 25px round 0px 1px 2%)" should set the property value +Fail e.style['shape-outside'] = "xywh(10px 20px 30px 25px round 0px 1px 2% 3em)" should set the property value +Fail e.style['shape-outside'] = "xywh(10px 20px 30px 25px round 20% / 0px 1px 2% 3em)" should set the property value \ No newline at end of file diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/animation/shape-image-threshold-interpolation.html b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/animation/shape-image-threshold-interpolation.html new file mode 100644 index 00000000000..872049134c1 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/animation/shape-image-threshold-interpolation.html @@ -0,0 +1,87 @@ + + +shape-image-threshold interpolation + + + + + + + + + + + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/animation/shape-margin-composition.html b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/animation/shape-margin-composition.html new file mode 100644 index 00000000000..0f03aaaaf65 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/animation/shape-margin-composition.html @@ -0,0 +1,65 @@ + + +shape-margin composition + + + + + + + + + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/animation/shape-margin-interpolation.html b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/animation/shape-margin-interpolation.html new file mode 100644 index 00000000000..78f12dedbab --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/animation/shape-margin-interpolation.html @@ -0,0 +1,87 @@ + + +shape-margin interpolation + + + + + + + + + + + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/animation/shape-outside-composition.html b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/animation/shape-outside-composition.html new file mode 100644 index 00000000000..5bae157acb5 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/animation/shape-outside-composition.html @@ -0,0 +1,189 @@ + + +shape-outside composition + + + + + + + + + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/animation/shape-outside-interpolation.html b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/animation/shape-outside-interpolation.html new file mode 100644 index 00000000000..abcd2cff5e3 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/animation/shape-outside-interpolation.html @@ -0,0 +1,137 @@ + + +shape-outside interpolation + + + + + + + + + + + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-image-threshold-computed.html b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-image-threshold-computed.html new file mode 100644 index 00000000000..dfcd7a83d33 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-image-threshold-computed.html @@ -0,0 +1,25 @@ + + + + +CSS Shapes Module Level 1: getComputedStyle().shapeImageThreshold + + + + + + + +
+ + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-image-threshold-invalid.html b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-image-threshold-invalid.html new file mode 100644 index 00000000000..ea69c94d226 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-image-threshold-invalid.html @@ -0,0 +1,19 @@ + + + + +CSS Shapes Module Level 1: parsing shape-image-threshold with invalid values + + + + + + + + + + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-image-threshold-valid.html b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-image-threshold-valid.html new file mode 100644 index 00000000000..33fe20da482 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-image-threshold-valid.html @@ -0,0 +1,24 @@ + + + + +CSS Shapes Module Level 1: parsing shape-image-threshold with valid values + + + + + + + + + + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-margin-computed.html b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-margin-computed.html new file mode 100644 index 00000000000..b8dfca3efd8 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-margin-computed.html @@ -0,0 +1,25 @@ + + + + +CSS Shapes Module Level 1: getComputedStyle().shapeMargin + + + + + + + + +
+ + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-margin-invalid.html b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-margin-invalid.html new file mode 100644 index 00000000000..f718be7dca0 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-margin-invalid.html @@ -0,0 +1,19 @@ + + + + +CSS Shapes Module Level 1: parsing shape-margin with invalid values + + + + + + + + + + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-margin-valid.html b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-margin-valid.html new file mode 100644 index 00000000000..69d2f5c136d --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-margin-valid.html @@ -0,0 +1,21 @@ + + + + +CSS Shapes Module Level 1: parsing shape-margin with valid values + + + + + + + + + + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-outside-computed.html b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-outside-computed.html new file mode 100644 index 00000000000..60538657e00 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-outside-computed.html @@ -0,0 +1,40 @@ + + + + +CSS Shapes Module Level 1: getComputedStyle().shapeOutside + + + + + + + + +
+
+
+ + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-outside-invalid-position.html b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-outside-invalid-position.html new file mode 100644 index 00000000000..d7278c2fea5 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-outside-invalid-position.html @@ -0,0 +1,29 @@ + + + + +CSS Shapes Module Level 1: parsing shape-outside with invalid position values + + + + + + + + + + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-outside-valid-position.html b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-outside-valid-position.html new file mode 100644 index 00000000000..75a9236cb69 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/parsing/shape-outside-valid-position.html @@ -0,0 +1,38 @@ + + + + +CSS Shapes Module Level 1: parsing shape-outside with valid position values + + + + + + + + + + + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/circle-function-computed.html b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/circle-function-computed.html new file mode 100644 index 00000000000..6047a5fa853 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/circle-function-computed.html @@ -0,0 +1,32 @@ + + + + +CSS Shapes Module Level 1: the computed value of the circle() function + + + + + + + +
+ + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/circle-function-invalid.html b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/circle-function-invalid.html new file mode 100644 index 00000000000..9ddba619277 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/circle-function-invalid.html @@ -0,0 +1,26 @@ + + + + +CSS Shapes Module Level 1: parsing the circle() function + + + + + + + + + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/circle-function-valid.html b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/circle-function-valid.html new file mode 100644 index 00000000000..9cc8e8a594d --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/circle-function-valid.html @@ -0,0 +1,32 @@ + + + + +CSS Shapes Module Level 1: parsing the circle() function + + + + + + + +
+ + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/ellipse-function-computed.html b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/ellipse-function-computed.html new file mode 100644 index 00000000000..aa729b4f9ac --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/ellipse-function-computed.html @@ -0,0 +1,32 @@ + + + + +CSS Shapes Module Level 1: the computed value of the ellipse() function + + + + + + + +
+ + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/ellipse-function-invalid.html b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/ellipse-function-invalid.html new file mode 100644 index 00000000000..8e0588ac001 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/ellipse-function-invalid.html @@ -0,0 +1,26 @@ + + + + +CSS Shapes Module Level 1: parsing the ellipse() function + + + + + + + + + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/ellipse-function-valid.html b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/ellipse-function-valid.html new file mode 100644 index 00000000000..137ab69ec8e --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/ellipse-function-valid.html @@ -0,0 +1,31 @@ + + + + +CSS Shapes Module Level 1: parsing the ellipse() function + + + + + + + + + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/inset-function-computed.html b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/inset-function-computed.html new file mode 100644 index 00000000000..72f300654f7 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/inset-function-computed.html @@ -0,0 +1,28 @@ + + + + +CSS Shapes Module Level 1: the computed value of the inset() function + + + + + + + +
+ + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/inset-function-invalid.html b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/inset-function-invalid.html new file mode 100644 index 00000000000..33a49e1328a --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/inset-function-invalid.html @@ -0,0 +1,28 @@ + + + + +CSS Shapes Module Level 1: parsing the inset() function + + + + + + + + + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/inset-function-valid.html b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/inset-function-valid.html new file mode 100644 index 00000000000..c7dc42a6d0c --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/inset-function-valid.html @@ -0,0 +1,27 @@ + + + + +CSS Shapes Module Level 1: parsing the inset() function + + + + + + + + + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/polygon-function-computed.html b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/polygon-function-computed.html new file mode 100644 index 00000000000..dd6cebc88f1 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/polygon-function-computed.html @@ -0,0 +1,21 @@ + + + + +CSS Shapes Module Level 1: parsing the polygon() function + + + + + + + +
+ + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/polygon-function-invalid.html b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/polygon-function-invalid.html new file mode 100644 index 00000000000..2fdc7a3ad74 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/polygon-function-invalid.html @@ -0,0 +1,19 @@ + + + + +CSS Shapes Module Level 1: parsing the polygon() function + + + + + + + + + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/polygon-function-valid.html b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/polygon-function-valid.html new file mode 100644 index 00000000000..b3410d02574 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/polygon-function-valid.html @@ -0,0 +1,20 @@ + + + + +CSS Shapes Module Level 1: parsing the polygon() function + + + + + + + + + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/rect-function-computed.html b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/rect-function-computed.html new file mode 100644 index 00000000000..dbbd72becf4 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/rect-function-computed.html @@ -0,0 +1,28 @@ + + + + +CSS Shapes Module Level 1: the computed value of the rect() function + + + + + + + +
+ + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/rect-function-invalid.html b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/rect-function-invalid.html new file mode 100644 index 00000000000..fd772b516db --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/rect-function-invalid.html @@ -0,0 +1,30 @@ + + + + +CSS Shapes Module Level 1: parsing the rect() function + + + + + + + + + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/rect-function-valid.html b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/rect-function-valid.html new file mode 100644 index 00000000000..41467301cc7 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/rect-function-valid.html @@ -0,0 +1,27 @@ + + + + +CSS Shapes Module Level 1: parsing the rect() function + + + + + + + + + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/shape-function-computed.html b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/shape-function-computed.html new file mode 100644 index 00000000000..e4f6c84b6f1 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/shape-function-computed.html @@ -0,0 +1,65 @@ + + + + +CSS Shapes Module Level 2: computed values for the shape() function + + + + + + + +
+ + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/shape-function-invalid.html b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/shape-function-invalid.html new file mode 100644 index 00000000000..e7896d49d13 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/shape-function-invalid.html @@ -0,0 +1,74 @@ + + + + +CSS Shapes Module Level 1: parsing the shape() function + + + + + + + + + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/shape-function-valid.html b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/shape-function-valid.html new file mode 100644 index 00000000000..f766ed8b590 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/shape-function-valid.html @@ -0,0 +1,103 @@ + + + + +CSS Shapes Module Level 2: parsing the shape() function + + + + + + + + + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/xywh-function-computed.html b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/xywh-function-computed.html new file mode 100644 index 00000000000..39567e0d942 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/xywh-function-computed.html @@ -0,0 +1,25 @@ + + + + +CSS Shapes Module Level 1: the computed value of the xywh() function + + + + + + + +
+ + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/xywh-function-invalid.html b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/xywh-function-invalid.html new file mode 100644 index 00000000000..ec34b65780f --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/xywh-function-invalid.html @@ -0,0 +1,22 @@ + + + + +CSS Shapes Module Level 1: parsing the xywh() function + + + + + + + + + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/xywh-function-valid.html b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/xywh-function-valid.html new file mode 100644 index 00000000000..e812cb0b2c7 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-shapes/shape-functions/xywh-function-valid.html @@ -0,0 +1,23 @@ + + + + +CSS Shapes Module Level 1: parsing the xywh() function + + + + + + + + + + From 01c5b6f74f37ced5a40e31625698076647c0429d Mon Sep 17 00:00:00 2001 From: Callum Law Date: Fri, 17 Oct 2025 00:49:27 +1300 Subject: [PATCH 6/9] LibWeb: Parse the `shape-outside` property --- Libraries/LibWeb/CSS/Enums.json | 6 + Libraries/LibWeb/CSS/Keywords.json | 1 + Libraries/LibWeb/CSS/Parser/Parser.h | 1 + .../LibWeb/CSS/Parser/PropertyParsing.cpp | 58 ++ Libraries/LibWeb/CSS/Properties.json | 6 + ...eclaration-has-indexed-property-getter.txt | 1 + ...upported-properties-and-default-values.txt | 2 + .../css/getComputedStyle-print-all.txt | 1 + .../css/css-cascade/all-prop-revert-layer.txt | 5 +- .../animation/shape-outside-composition.txt | 21 +- .../animation/shape-outside-interpolation.txt | 627 +++++++++--------- .../parsing/shape-outside-computed.txt | 5 +- .../circle-function-computed.txt | 11 +- .../ellipse-function-computed.txt | 13 +- .../shape-functions/inset-function-valid.txt | 5 +- .../polygon-function-valid.txt | 5 +- .../shape-functions/xywh-function-valid.txt | 5 +- 17 files changed, 429 insertions(+), 344 deletions(-) diff --git a/Libraries/LibWeb/CSS/Enums.json b/Libraries/LibWeb/CSS/Enums.json index ccf37ec0982..474c280f23d 100644 --- a/Libraries/LibWeb/CSS/Enums.json +++ b/Libraries/LibWeb/CSS/Enums.json @@ -703,6 +703,12 @@ "thin", "none" ], + "shape-box": [ + "content-box", + "padding-box", + "border-box", + "margin-box" + ], "shape-rendering": [ "auto", "optimizespeed", diff --git a/Libraries/LibWeb/CSS/Keywords.json b/Libraries/LibWeb/CSS/Keywords.json index f37706cb3a7..1c1d5f693e7 100644 --- a/Libraries/LibWeb/CSS/Keywords.json +++ b/Libraries/LibWeb/CSS/Keywords.json @@ -327,6 +327,7 @@ "luminance", "luminosity", "manipulation", + "margin-box", "mark", "markers", "marktext", diff --git a/Libraries/LibWeb/CSS/Parser/Parser.h b/Libraries/LibWeb/CSS/Parser/Parser.h index bb79d720f6d..acc048957db 100644 --- a/Libraries/LibWeb/CSS/Parser/Parser.h +++ b/Libraries/LibWeb/CSS/Parser/Parser.h @@ -478,6 +478,7 @@ private: RefPtr parse_scrollbar_gutter_value(TokenStream&); RefPtr parse_shadow_value(TokenStream&, ShadowStyleValue::ShadowType); RefPtr parse_single_shadow_value(TokenStream&, ShadowStyleValue::ShadowType); + RefPtr parse_shape_outside_value(TokenStream&); RefPtr parse_text_decoration_value(TokenStream&); RefPtr parse_text_decoration_line_value(TokenStream&); RefPtr parse_text_underline_position_value(TokenStream&); diff --git a/Libraries/LibWeb/CSS/Parser/PropertyParsing.cpp b/Libraries/LibWeb/CSS/Parser/PropertyParsing.cpp index 1a7099bd69b..92b295c4d19 100644 --- a/Libraries/LibWeb/CSS/Parser/PropertyParsing.cpp +++ b/Libraries/LibWeb/CSS/Parser/PropertyParsing.cpp @@ -782,6 +782,10 @@ Parser::ParseErrorOr> Parser::parse_css_value(Pr if (auto parsed_value = parse_scrollbar_gutter_value(tokens); parsed_value && !tokens.has_next_token()) return parsed_value.release_nonnull(); return ParseError::SyntaxError; + case PropertyID::ShapeOutside: + if (auto parsed_value = parse_shape_outside_value(tokens); parsed_value && !tokens.has_next_token()) + return parsed_value.release_nonnull(); + return ParseError::SyntaxError; case PropertyID::StrokeDasharray: if (auto parsed_value = parse_stroke_dasharray_value(tokens); parsed_value && !tokens.has_next_token()) return parsed_value.release_nonnull(); @@ -2282,6 +2286,60 @@ RefPtr Parser::parse_single_shadow_value(TokenStream Parser::parse_shape_outside_value(TokenStream& tokens) +{ + // none | [ || ] | + auto transaction = tokens.begin_transaction(); + + // none + if (auto maybe_none = parse_all_as_single_keyword_value(tokens, Keyword::None)) { + transaction.commit(); + return maybe_none; + } + + // + if (auto maybe_image = parse_image_value(tokens)) { + transaction.commit(); + return maybe_image; + } + + // [ || ] + RefPtr basic_shape_value; + RefPtr shape_box_value; + while (tokens.has_next_token()) { + if (auto maybe_basic_shape_value = parse_basic_shape_value(tokens)) { + if (basic_shape_value) + return nullptr; + basic_shape_value = maybe_basic_shape_value; + continue; + } + + if (auto maybe_keyword_value = parse_keyword_value(tokens)) { + if (shape_box_value) + return nullptr; + if (!keyword_to_shape_box(maybe_keyword_value->to_keyword()).has_value()) + return nullptr; + shape_box_value = maybe_keyword_value; + continue; + } + + return nullptr; + } + + if (!basic_shape_value && !shape_box_value) + return nullptr; + + transaction.commit(); + + if (basic_shape_value && !shape_box_value) + return basic_shape_value; + + if (!basic_shape_value && shape_box_value) + return shape_box_value; + + return StyleValueList::create({ basic_shape_value.release_nonnull(), shape_box_value.release_nonnull() }, StyleValueList::Separator::Space); +} + RefPtr Parser::parse_rotate_value(TokenStream& tokens) { // Value: none | | [ x | y | z | {3} ] && diff --git a/Libraries/LibWeb/CSS/Properties.json b/Libraries/LibWeb/CSS/Properties.json index 426cebad0c3..687e2204fd3 100644 --- a/Libraries/LibWeb/CSS/Properties.json +++ b/Libraries/LibWeb/CSS/Properties.json @@ -3449,6 +3449,12 @@ "none" ] }, + "shape-outside": { + "affects-layout": true, + "animation-type": "by-computed-value", + "inherited": false, + "initial": "none" + }, "shape-rendering": { "affects-layout": true, "animation-type": "discrete", diff --git a/Tests/LibWeb/Text/expected/css/CSSStyleDeclaration-has-indexed-property-getter.txt b/Tests/LibWeb/Text/expected/css/CSSStyleDeclaration-has-indexed-property-getter.txt index b5d57106ff4..56255a19941 100644 --- a/Tests/LibWeb/Text/expected/css/CSSStyleDeclaration-has-indexed-property-getter.txt +++ b/Tests/LibWeb/Text/expected/css/CSSStyleDeclaration-has-indexed-property-getter.txt @@ -260,6 +260,7 @@ All properties associated with getComputedStyle(document.body): "scrollbar-color", "scrollbar-gutter", "scrollbar-width", + "shape-outside", "stop-color", "stop-opacity", "table-layout", diff --git a/Tests/LibWeb/Text/expected/css/CSSStyleProperties-all-supported-properties-and-default-values.txt b/Tests/LibWeb/Text/expected/css/CSSStyleProperties-all-supported-properties-and-default-values.txt index ab13acd499d..115945eb0f6 100644 --- a/Tests/LibWeb/Text/expected/css/CSSStyleProperties-all-supported-properties-and-default-values.txt +++ b/Tests/LibWeb/Text/expected/css/CSSStyleProperties-all-supported-properties-and-default-values.txt @@ -697,6 +697,8 @@ All supported properties and their default values exposed from CSSStylePropertie 'scrollbar-gutter': 'auto' 'scrollbarWidth': 'auto' 'scrollbar-width': 'auto' +'shapeOutside': 'none' +'shape-outside': 'none' 'shapeRendering': 'auto' 'shape-rendering': 'auto' 'stopColor': 'rgb(0, 0, 0)' diff --git a/Tests/LibWeb/Text/expected/css/getComputedStyle-print-all.txt b/Tests/LibWeb/Text/expected/css/getComputedStyle-print-all.txt index c70a198aaff..6bf16cba31a 100644 --- a/Tests/LibWeb/Text/expected/css/getComputedStyle-print-all.txt +++ b/Tests/LibWeb/Text/expected/css/getComputedStyle-print-all.txt @@ -258,6 +258,7 @@ scale: none scrollbar-color: auto scrollbar-gutter: auto scrollbar-width: auto +shape-outside: none stop-color: rgb(0, 0, 0) stop-opacity: 1 table-layout: auto diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-cascade/all-prop-revert-layer.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-cascade/all-prop-revert-layer.txt index 691e8a2a890..d904da3d3f3 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-cascade/all-prop-revert-layer.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-cascade/all-prop-revert-layer.txt @@ -1,8 +1,8 @@ Harness status: OK -Found 266 tests +Found 267 tests -260 Pass +261 Pass 6 Fail Pass accent-color Pass border-collapse @@ -242,6 +242,7 @@ Pass scale Pass scrollbar-color Pass scrollbar-gutter Pass scrollbar-width +Pass shape-outside Pass stop-color Pass stop-opacity Pass table-layout diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-outside-composition.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-outside-composition.txt index 3711e16a1e8..24b47e0f8cf 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-outside-composition.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-outside-composition.txt @@ -2,7 +2,8 @@ Harness status: OK Found 64 tests -64 Fail +9 Pass +55 Fail Fail Compositing: property underlying [circle(100px at 25px 25%)] from add [circle(10px at 25px 75%)] to add [circle(50px at 50px center)] at (-0.3) should be [circle(98px at 42.5px 107.5%)] Fail Compositing: property underlying [circle(100px at 25px 25%)] from add [circle(10px at 25px 75%)] to add [circle(50px at 50px center)] at (0) should be [circle(110px at 50px 100%)] Fail Compositing: property underlying [circle(100px at 25px 25%)] from add [circle(10px at 25px 75%)] to add [circle(50px at 50px center)] at (0.3) should be [circle(122px at 57.5px 92.5%)] @@ -13,12 +14,12 @@ Fail Compositing: property underlying [circle(100px at 20px 20%) Fail Compositing: property underlying [circle(100px at 20px 20%)] from add [circle(50px at 50px 50%)] to replace [circle(50% at 150px 150%)] at (0) should be [circle(calc(150px + 0%) at 70px 70%)] Fail Compositing: property underlying [circle(100px at 20px 20%)] from add [circle(50px at 50px 50%)] to replace [circle(50% at 150px 150%)] at (0.3) should be [circle(calc(105px + 15%) at 94px 94%)] Fail Compositing: property underlying [circle(100px at 20px 20%)] from add [circle(50px at 50px 50%)] to replace [circle(50% at 150px 150%)] at (0.6) should be [circle(calc(60px + 30%) at 118px 118%)] -Fail Compositing: property underlying [circle(100px at 20px 20%)] from add [circle(50px at 50px 50%)] to replace [circle(50% at 150px 150%)] at (1) should be [circle(50% at 150px 150%)] +Pass Compositing: property underlying [circle(100px at 20px 20%)] from add [circle(50px at 50px 50%)] to replace [circle(50% at 150px 150%)] at (1) should be [circle(50% at 150px 150%)] Fail Compositing: property underlying [circle(100px at 20px 20%)] from add [circle(50px at 50px 50%)] to replace [circle(50% at 150px 150%)] at (1.5) should be [circle(calc(-75px + 75%) at 190px 190%)] -Fail Compositing: property underlying [circle(farthest-side at 25px 75%)] from add [circle(farthest-side at 25px 75%)] to add [circle(farthest-side at 50px center)] at (0.25) should be [circle(farthest-side at 25px 75%)] -Fail Compositing: property underlying [circle(farthest-side at 25px 75%)] from add [circle(farthest-side at 25px 75%)] to add [circle(farthest-side at 50px center)] at (0.75) should be [circle(farthest-side at 50px 50%)] +Pass Compositing: property underlying [circle(farthest-side at 25px 75%)] from add [circle(farthest-side at 25px 75%)] to add [circle(farthest-side at 50px center)] at (0.25) should be [circle(farthest-side at 25px 75%)] +Pass Compositing: property underlying [circle(farthest-side at 25px 75%)] from add [circle(farthest-side at 25px 75%)] to add [circle(farthest-side at 50px center)] at (0.75) should be [circle(farthest-side at 50px 50%)] Fail Compositing: property underlying [circle(50px at 10px 20px)] from add [circle(50px at 10px 20px)] to add [circle(farthest-side at 30px 40px)] at (0.25) should be [circle(100px at 20px 40px)] -Fail Compositing: property underlying [circle(50px at 10px 20px)] from add [circle(50px at 10px 20px)] to add [circle(farthest-side at 30px 40px)] at (0.75) should be [circle(farthest-side at 30px 40px)] +Pass Compositing: property underlying [circle(50px at 10px 20px)] from add [circle(50px at 10px 20px)] to add [circle(farthest-side at 30px 40px)] at (0.75) should be [circle(farthest-side at 30px 40px)] Fail Compositing: property underlying [ellipse(10px 20px at 30px 40px)] from add [ellipse(40px 30px at 20px 10px)] to add [ellipse(140px 130px at 120px 110px)] at (-0.3) should be [ellipse(20px 20px at 20px 20px)] Fail Compositing: property underlying [ellipse(10px 20px at 30px 40px)] from add [ellipse(40px 30px at 20px 10px)] to add [ellipse(140px 130px at 120px 110px)] at (0) should be [ellipse(50px 50px at 50px 50px)] Fail Compositing: property underlying [ellipse(10px 20px at 30px 40px)] from add [ellipse(40px 30px at 20px 10px)] to add [ellipse(140px 130px at 120px 110px)] at (0.3) should be [ellipse(80px 80px at 80px 80px)] @@ -26,13 +27,13 @@ Fail Compositing: property underlying [ellipse(10px 20px at 30px Fail Compositing: property underlying [ellipse(10px 20px at 30px 40px)] from add [ellipse(40px 30px at 20px 10px)] to add [ellipse(140px 130px at 120px 110px)] at (1) should be [ellipse(150px 150px at 150px 150px)] Fail Compositing: property underlying [ellipse(10px 20px at 30px 40px)] from add [ellipse(40px 30px at 20px 10px)] to add [ellipse(140px 130px at 120px 110px)] at (1.5) should be [ellipse(200px 200px at 200px 200px)] Fail Compositing: property underlying [ellipse(10px 20px at 30px 40px)] from replace [ellipse(40px 30px at 20px 10px)] to add [ellipse(40px 30px at 20px 10px)] at (-0.3) should be [ellipse(37px 24px at 11px -2px)] -Fail Compositing: property underlying [ellipse(10px 20px at 30px 40px)] from replace [ellipse(40px 30px at 20px 10px)] to add [ellipse(40px 30px at 20px 10px)] at (0) should be [ellipse(40px 30px at 20px 10px)] +Pass Compositing: property underlying [ellipse(10px 20px at 30px 40px)] from replace [ellipse(40px 30px at 20px 10px)] to add [ellipse(40px 30px at 20px 10px)] at (0) should be [ellipse(40px 30px at 20px 10px)] Fail Compositing: property underlying [ellipse(10px 20px at 30px 40px)] from replace [ellipse(40px 30px at 20px 10px)] to add [ellipse(40px 30px at 20px 10px)] at (0.3) should be [ellipse(43px 36px at 29px 22px)] Fail Compositing: property underlying [ellipse(10px 20px at 30px 40px)] from replace [ellipse(40px 30px at 20px 10px)] to add [ellipse(40px 30px at 20px 10px)] at (0.6) should be [ellipse(46px 42px at 38px 34px)] Fail Compositing: property underlying [ellipse(10px 20px at 30px 40px)] from replace [ellipse(40px 30px at 20px 10px)] to add [ellipse(40px 30px at 20px 10px)] at (1) should be [ellipse(50px 50px at 50px 50px)] Fail Compositing: property underlying [ellipse(10px 20px at 30px 40px)] from replace [ellipse(40px 30px at 20px 10px)] to add [ellipse(40px 30px at 20px 10px)] at (1.5) should be [ellipse(55px 60px at 65px 70px)] -Fail Compositing: property underlying [ellipse(25px 75%)] from add [ellipse()] to add [ellipse(closest-side farthest-side)] at (0.25) should be [ellipse()] -Fail Compositing: property underlying [ellipse(25px 75%)] from add [ellipse()] to add [ellipse(closest-side farthest-side)] at (0.75) should be [ellipse(closest-side farthest-side)] +Pass Compositing: property underlying [ellipse(25px 75%)] from add [ellipse()] to add [ellipse(closest-side farthest-side)] at (0.25) should be [ellipse()] +Pass Compositing: property underlying [ellipse(25px 75%)] from add [ellipse()] to add [ellipse(closest-side farthest-side)] at (0.75) should be [ellipse(closest-side farthest-side)] Fail Compositing: property underlying [inset(20px)] from add [inset(20px)] to add [inset(40%)] at (-0.3) should be [inset(calc(46px + -12%))] Fail Compositing: property underlying [inset(20px)] from add [inset(20px)] to add [inset(40%)] at (0) should be [inset(calc(40px + 0%))] Fail Compositing: property underlying [inset(20px)] from add [inset(20px)] to add [inset(40%)] at (0.3) should be [inset(calc(34px + 12%))] @@ -64,6 +65,6 @@ Fail Compositing: property underlying [polygon(evenodd, 10px 20p Fail Compositing: property underlying [polygon(evenodd, 10px 20px)] from add [polygon(evenodd, 10px 20px)] to add [polygon(evenodd, 110px 120px)] at (1) should be [polygon(evenodd, 120px 140px)] Fail Compositing: property underlying [polygon(evenodd, 10px 20px)] from add [polygon(evenodd, 10px 20px)] to add [polygon(evenodd, 110px 120px)] at (1.5) should be [polygon(evenodd, 170px 190px)] Fail Compositing: property underlying [polygon(evenodd, 10px 20px)] from add [polygon(evenodd, 10px 20px)] to add [polygon(nonzero, 30px 40px)] at (0.25) should be [polygon(evenodd, 20px 40px)] -Fail Compositing: property underlying [polygon(evenodd, 10px 20px)] from add [polygon(evenodd, 10px 20px)] to add [polygon(nonzero, 30px 40px)] at (0.75) should be [polygon(30px 40px)] +Pass Compositing: property underlying [polygon(evenodd, 10px 20px)] from add [polygon(evenodd, 10px 20px)] to add [polygon(nonzero, 30px 40px)] at (0.75) should be [polygon(30px 40px)] Fail Compositing: property underlying [polygon(10px 20px, 30px 40px)] from add [polygon(10px 20px, 30px 40px)] to add [polygon(30px 40px)] at (0.25) should be [polygon(20px 40px, 60px 80px)] -Fail Compositing: property underlying [polygon(10px 20px, 30px 40px)] from add [polygon(10px 20px, 30px 40px)] to add [polygon(30px 40px)] at (0.75) should be [polygon(30px 40px)] \ No newline at end of file +Pass Compositing: property underlying [polygon(10px 20px, 30px 40px)] from add [polygon(10px 20px, 30px 40px)] to add [polygon(30px 40px)] at (0.75) should be [polygon(30px 40px)] \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-outside-interpolation.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-outside-interpolation.txt index bcb7e1dc8b6..1a99c027aef 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-outside-interpolation.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-outside-interpolation.txt @@ -2,319 +2,320 @@ Harness status: OK Found 324 tests -324 Fail -Fail CSS Transitions: property from neutral to [circle(40% at 20% 20%)] at (-0.3) should be [circle(66% at 7% 33%)] -Fail CSS Transitions: property from neutral to [circle(40% at 20% 20%)] at (0) should be [circle(60% at 10% 30%)] -Fail CSS Transitions: property from neutral to [circle(40% at 20% 20%)] at (0.3) should be [circle(54% at 13% 27%)] -Fail CSS Transitions: property from neutral to [circle(40% at 20% 20%)] at (0.6) should be [circle(48% at 16% 24%)] -Fail CSS Transitions: property from neutral to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] -Fail CSS Transitions: property from neutral to [circle(40% at 20% 20%)] at (1.5) should be [circle(30% at 25% 15%)] -Fail CSS Transitions with transition: all: property from neutral to [circle(40% at 20% 20%)] at (-0.3) should be [circle(66% at 7% 33%)] -Fail CSS Transitions with transition: all: property from neutral to [circle(40% at 20% 20%)] at (0) should be [circle(60% at 10% 30%)] -Fail CSS Transitions with transition: all: property from neutral to [circle(40% at 20% 20%)] at (0.3) should be [circle(54% at 13% 27%)] -Fail CSS Transitions with transition: all: property from neutral to [circle(40% at 20% 20%)] at (0.6) should be [circle(48% at 16% 24%)] -Fail CSS Transitions with transition: all: property from neutral to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] -Fail CSS Transitions with transition: all: property from neutral to [circle(40% at 20% 20%)] at (1.5) should be [circle(30% at 25% 15%)] -Fail CSS Animations: property from neutral to [circle(40% at 20% 20%)] at (-0.3) should be [circle(66% at 7% 33%)] -Fail CSS Animations: property from neutral to [circle(40% at 20% 20%)] at (0) should be [circle(60% at 10% 30%)] -Fail CSS Animations: property from neutral to [circle(40% at 20% 20%)] at (0.3) should be [circle(54% at 13% 27%)] -Fail CSS Animations: property from neutral to [circle(40% at 20% 20%)] at (0.6) should be [circle(48% at 16% 24%)] -Fail CSS Animations: property from neutral to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] -Fail CSS Animations: property from neutral to [circle(40% at 20% 20%)] at (1.5) should be [circle(30% at 25% 15%)] -Fail Web Animations: property from neutral to [circle(40% at 20% 20%)] at (-0.3) should be [circle(66% at 7% 33%)] -Fail Web Animations: property from neutral to [circle(40% at 20% 20%)] at (0) should be [circle(60% at 10% 30%)] -Fail Web Animations: property from neutral to [circle(40% at 20% 20%)] at (0.3) should be [circle(54% at 13% 27%)] -Fail Web Animations: property from neutral to [circle(40% at 20% 20%)] at (0.6) should be [circle(48% at 16% 24%)] -Fail Web Animations: property from neutral to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] -Fail Web Animations: property from neutral to [circle(40% at 20% 20%)] at (1.5) should be [circle(30% at 25% 15%)] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (-0.3) should be [initial] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (0) should be [initial] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (0.3) should be [initial] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (-0.3) should be [initial] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (0) should be [initial] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (0.3) should be [initial] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] -Fail CSS Transitions: property from [initial] to [circle(40% at 20% 20%)] at (-0.3) should be [circle(40% at 20% 20%)] -Fail CSS Transitions: property from [initial] to [circle(40% at 20% 20%)] at (0) should be [circle(40% at 20% 20%)] -Fail CSS Transitions: property from [initial] to [circle(40% at 20% 20%)] at (0.3) should be [circle(40% at 20% 20%)] -Fail CSS Transitions: property from [initial] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] -Fail CSS Transitions: property from [initial] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] -Fail CSS Transitions: property from [initial] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] -Fail CSS Transitions: property from [initial] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] -Fail CSS Transitions with transition: all: property from [initial] to [circle(40% at 20% 20%)] at (-0.3) should be [circle(40% at 20% 20%)] -Fail CSS Transitions with transition: all: property from [initial] to [circle(40% at 20% 20%)] at (0) should be [circle(40% at 20% 20%)] -Fail CSS Transitions with transition: all: property from [initial] to [circle(40% at 20% 20%)] at (0.3) should be [circle(40% at 20% 20%)] -Fail CSS Transitions with transition: all: property from [initial] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] -Fail CSS Transitions with transition: all: property from [initial] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] -Fail CSS Transitions with transition: all: property from [initial] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] -Fail CSS Transitions with transition: all: property from [initial] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] -Fail CSS Animations: property from [initial] to [circle(40% at 20% 20%)] at (-0.3) should be [initial] -Fail CSS Animations: property from [initial] to [circle(40% at 20% 20%)] at (0) should be [initial] -Fail CSS Animations: property from [initial] to [circle(40% at 20% 20%)] at (0.3) should be [initial] -Fail CSS Animations: property from [initial] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] -Fail CSS Animations: property from [initial] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] -Fail CSS Animations: property from [initial] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] -Fail CSS Animations: property from [initial] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] -Fail Web Animations: property from [initial] to [circle(40% at 20% 20%)] at (-0.3) should be [initial] -Fail Web Animations: property from [initial] to [circle(40% at 20% 20%)] at (0) should be [initial] -Fail Web Animations: property from [initial] to [circle(40% at 20% 20%)] at (0.3) should be [initial] -Fail Web Animations: property from [initial] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] -Fail Web Animations: property from [initial] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] -Fail Web Animations: property from [initial] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] -Fail Web Animations: property from [initial] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] -Fail CSS Transitions: property from [inherit] to [circle(40% at 20% 20%)] at (-0.3) should be [circle(92% at 33% 7%)] -Fail CSS Transitions: property from [inherit] to [circle(40% at 20% 20%)] at (0) should be [circle(80% at 30% 10%)] -Fail CSS Transitions: property from [inherit] to [circle(40% at 20% 20%)] at (0.3) should be [circle(68% at 27% 13%)] -Fail CSS Transitions: property from [inherit] to [circle(40% at 20% 20%)] at (0.6) should be [circle(56% at 24% 16%)] -Fail CSS Transitions: property from [inherit] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] -Fail CSS Transitions: property from [inherit] to [circle(40% at 20% 20%)] at (1.5) should be [circle(20% at 15% 25%)] -Fail CSS Transitions with transition: all: property from [inherit] to [circle(40% at 20% 20%)] at (-0.3) should be [circle(92% at 33% 7%)] -Fail CSS Transitions with transition: all: property from [inherit] to [circle(40% at 20% 20%)] at (0) should be [circle(80% at 30% 10%)] -Fail CSS Transitions with transition: all: property from [inherit] to [circle(40% at 20% 20%)] at (0.3) should be [circle(68% at 27% 13%)] -Fail CSS Transitions with transition: all: property from [inherit] to [circle(40% at 20% 20%)] at (0.6) should be [circle(56% at 24% 16%)] -Fail CSS Transitions with transition: all: property from [inherit] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] -Fail CSS Transitions with transition: all: property from [inherit] to [circle(40% at 20% 20%)] at (1.5) should be [circle(20% at 15% 25%)] -Fail CSS Animations: property from [inherit] to [circle(40% at 20% 20%)] at (-0.3) should be [circle(92% at 33% 7%)] -Fail CSS Animations: property from [inherit] to [circle(40% at 20% 20%)] at (0) should be [circle(80% at 30% 10%)] -Fail CSS Animations: property from [inherit] to [circle(40% at 20% 20%)] at (0.3) should be [circle(68% at 27% 13%)] -Fail CSS Animations: property from [inherit] to [circle(40% at 20% 20%)] at (0.6) should be [circle(56% at 24% 16%)] -Fail CSS Animations: property from [inherit] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] -Fail CSS Animations: property from [inherit] to [circle(40% at 20% 20%)] at (1.5) should be [circle(20% at 15% 25%)] -Fail Web Animations: property from [inherit] to [circle(40% at 20% 20%)] at (-0.3) should be [circle(92% at 33% 7%)] -Fail Web Animations: property from [inherit] to [circle(40% at 20% 20%)] at (0) should be [circle(80% at 30% 10%)] -Fail Web Animations: property from [inherit] to [circle(40% at 20% 20%)] at (0.3) should be [circle(68% at 27% 13%)] -Fail Web Animations: property from [inherit] to [circle(40% at 20% 20%)] at (0.6) should be [circle(56% at 24% 16%)] -Fail Web Animations: property from [inherit] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] -Fail Web Animations: property from [inherit] to [circle(40% at 20% 20%)] at (1.5) should be [circle(20% at 15% 25%)] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (-0.3) should be [unset] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (0) should be [unset] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (0.3) should be [unset] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (-0.3) should be [unset] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (0) should be [unset] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (0.3) should be [unset] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] -Fail CSS Transitions: property from [unset] to [circle(40% at 20% 20%)] at (-0.3) should be [circle(40% at 20% 20%)] -Fail CSS Transitions: property from [unset] to [circle(40% at 20% 20%)] at (0) should be [circle(40% at 20% 20%)] -Fail CSS Transitions: property from [unset] to [circle(40% at 20% 20%)] at (0.3) should be [circle(40% at 20% 20%)] -Fail CSS Transitions: property from [unset] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] -Fail CSS Transitions: property from [unset] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] -Fail CSS Transitions: property from [unset] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] -Fail CSS Transitions: property from [unset] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] -Fail CSS Transitions with transition: all: property from [unset] to [circle(40% at 20% 20%)] at (-0.3) should be [circle(40% at 20% 20%)] -Fail CSS Transitions with transition: all: property from [unset] to [circle(40% at 20% 20%)] at (0) should be [circle(40% at 20% 20%)] -Fail CSS Transitions with transition: all: property from [unset] to [circle(40% at 20% 20%)] at (0.3) should be [circle(40% at 20% 20%)] -Fail CSS Transitions with transition: all: property from [unset] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] -Fail CSS Transitions with transition: all: property from [unset] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] -Fail CSS Transitions with transition: all: property from [unset] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] -Fail CSS Transitions with transition: all: property from [unset] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] -Fail CSS Animations: property from [unset] to [circle(40% at 20% 20%)] at (-0.3) should be [unset] -Fail CSS Animations: property from [unset] to [circle(40% at 20% 20%)] at (0) should be [unset] -Fail CSS Animations: property from [unset] to [circle(40% at 20% 20%)] at (0.3) should be [unset] -Fail CSS Animations: property from [unset] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] -Fail CSS Animations: property from [unset] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] -Fail CSS Animations: property from [unset] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] -Fail CSS Animations: property from [unset] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] -Fail Web Animations: property from [unset] to [circle(40% at 20% 20%)] at (-0.3) should be [unset] -Fail Web Animations: property from [unset] to [circle(40% at 20% 20%)] at (0) should be [unset] -Fail Web Animations: property from [unset] to [circle(40% at 20% 20%)] at (0.3) should be [unset] -Fail Web Animations: property from [unset] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] -Fail Web Animations: property from [unset] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] -Fail Web Animations: property from [unset] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] -Fail Web Animations: property from [unset] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] -Fail CSS Transitions: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (-0.3) should be [circle(115% at -7.5% -7.5%)] -Fail CSS Transitions: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0) should be [circle(100% at 0% 0%)] -Fail CSS Transitions: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.3) should be [circle(85% at 7.5% 7.5%)] -Fail CSS Transitions: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.6) should be [circle(70% at 15% 15%)] -Fail CSS Transitions: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1) should be [circle(50% at 25% 25%)] -Fail CSS Transitions: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1.5) should be [circle(25% at 37.5% 37.5%)] -Fail CSS Transitions with transition: all: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (-0.3) should be [circle(115% at -7.5% -7.5%)] -Fail CSS Transitions with transition: all: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0) should be [circle(100% at 0% 0%)] -Fail CSS Transitions with transition: all: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.3) should be [circle(85% at 7.5% 7.5%)] -Fail CSS Transitions with transition: all: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.6) should be [circle(70% at 15% 15%)] -Fail CSS Transitions with transition: all: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1) should be [circle(50% at 25% 25%)] -Fail CSS Transitions with transition: all: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1.5) should be [circle(25% at 37.5% 37.5%)] -Fail CSS Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (-0.3) should be [circle(115% at -7.5% -7.5%)] -Fail CSS Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0) should be [circle(100% at 0% 0%)] -Fail CSS Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.3) should be [circle(85% at 7.5% 7.5%)] -Fail CSS Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.6) should be [circle(70% at 15% 15%)] -Fail CSS Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1) should be [circle(50% at 25% 25%)] -Fail CSS Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1.5) should be [circle(25% at 37.5% 37.5%)] -Fail Web Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (-0.3) should be [circle(115% at -7.5% -7.5%)] -Fail Web Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0) should be [circle(100% at 0% 0%)] -Fail Web Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.3) should be [circle(85% at 7.5% 7.5%)] -Fail Web Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.6) should be [circle(70% at 15% 15%)] -Fail Web Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1) should be [circle(50% at 25% 25%)] -Fail Web Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1.5) should be [circle(25% at 37.5% 37.5%)] -Fail CSS Transitions: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (-0.3) should be [ellipse(115% 115% at -7.5% -7.5%)] -Fail CSS Transitions: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0) should be [ellipse(100% 100% at 0% 0%)] -Fail CSS Transitions: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0.3) should be [ellipse(85% 85% at 7.5% 7.5%)] -Fail CSS Transitions: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0.6) should be [ellipse(70% 70% at 15% 15%)] -Fail CSS Transitions: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (1) should be [ellipse(50% 50% at 25% 25%)] -Fail CSS Transitions: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (1.5) should be [ellipse(25% 25% at 37.5% 37.5%)] -Fail CSS Transitions with transition: all: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (-0.3) should be [ellipse(115% 115% at -7.5% -7.5%)] -Fail CSS Transitions with transition: all: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0) should be [ellipse(100% 100% at 0% 0%)] -Fail CSS Transitions with transition: all: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0.3) should be [ellipse(85% 85% at 7.5% 7.5%)] -Fail CSS Transitions with transition: all: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0.6) should be [ellipse(70% 70% at 15% 15%)] -Fail CSS Transitions with transition: all: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (1) should be [ellipse(50% 50% at 25% 25%)] -Fail CSS Transitions with transition: all: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (1.5) should be [ellipse(25% 25% at 37.5% 37.5%)] -Fail CSS Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (-0.3) should be [ellipse(115% 115% at -7.5% -7.5%)] -Fail CSS Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0) should be [ellipse(100% 100% at 0% 0%)] -Fail CSS Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0.3) should be [ellipse(85% 85% at 7.5% 7.5%)] -Fail CSS Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0.6) should be [ellipse(70% 70% at 15% 15%)] -Fail CSS Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (1) should be [ellipse(50% 50% at 25% 25%)] -Fail CSS Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (1.5) should be [ellipse(25% 25% at 37.5% 37.5%)] -Fail Web Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (-0.3) should be [ellipse(115% 115% at -7.5% -7.5%)] -Fail Web Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0) should be [ellipse(100% 100% at 0% 0%)] -Fail Web Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0.3) should be [ellipse(85% 85% at 7.5% 7.5%)] -Fail Web Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0.6) should be [ellipse(70% 70% at 15% 15%)] -Fail Web Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (1) should be [ellipse(50% 50% at 25% 25%)] -Fail Web Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (1.5) should be [ellipse(25% 25% at 37.5% 37.5%)] -Fail CSS Transitions: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (-0.3) should be [polygon(nonzero, -7.5px -7.5px, 17.5px 17.5px, 42.5px 42.5px)] -Fail CSS Transitions: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0) should be [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] -Fail CSS Transitions: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.3) should be [polygon(nonzero, 7.5px 7.5px, 32.5px 32.5px, 57.5px 57.5px)] -Fail CSS Transitions: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.6) should be [polygon(nonzero, 15px 15px, 40px 40px, 65px 65px)] -Fail CSS Transitions: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] -Fail CSS Transitions: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1.5) should be [polygon(nonzero, 37.5px 37.5px, 62.5px 62.5px, 87.5px 87.5px)] -Fail CSS Transitions with transition: all: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (-0.3) should be [polygon(nonzero, -7.5px -7.5px, 17.5px 17.5px, 42.5px 42.5px)] -Fail CSS Transitions with transition: all: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0) should be [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] -Fail CSS Transitions with transition: all: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.3) should be [polygon(nonzero, 7.5px 7.5px, 32.5px 32.5px, 57.5px 57.5px)] -Fail CSS Transitions with transition: all: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.6) should be [polygon(nonzero, 15px 15px, 40px 40px, 65px 65px)] -Fail CSS Transitions with transition: all: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] -Fail CSS Transitions with transition: all: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1.5) should be [polygon(nonzero, 37.5px 37.5px, 62.5px 62.5px, 87.5px 87.5px)] -Fail CSS Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (-0.3) should be [polygon(nonzero, -7.5px -7.5px, 17.5px 17.5px, 42.5px 42.5px)] -Fail CSS Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0) should be [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] -Fail CSS Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.3) should be [polygon(nonzero, 7.5px 7.5px, 32.5px 32.5px, 57.5px 57.5px)] -Fail CSS Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.6) should be [polygon(nonzero, 15px 15px, 40px 40px, 65px 65px)] -Fail CSS Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] -Fail CSS Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1.5) should be [polygon(nonzero, 37.5px 37.5px, 62.5px 62.5px, 87.5px 87.5px)] -Fail Web Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (-0.3) should be [polygon(nonzero, -7.5px -7.5px, 17.5px 17.5px, 42.5px 42.5px)] -Fail Web Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0) should be [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] -Fail Web Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.3) should be [polygon(nonzero, 7.5px 7.5px, 32.5px 32.5px, 57.5px 57.5px)] -Fail Web Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.6) should be [polygon(nonzero, 15px 15px, 40px 40px, 65px 65px)] -Fail Web Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] -Fail Web Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1.5) should be [polygon(nonzero, 37.5px 37.5px, 62.5px 62.5px, 87.5px 87.5px)] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (-0.3) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.3) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.6) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (-0.3) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.3) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.6) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] -Fail CSS Transitions: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (-0.3) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] -Fail CSS Transitions: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] -Fail CSS Transitions: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.3) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] -Fail CSS Transitions: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] -Fail CSS Transitions: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.6) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] -Fail CSS Transitions: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] -Fail CSS Transitions: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] -Fail CSS Transitions with transition: all: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (-0.3) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] -Fail CSS Transitions with transition: all: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] -Fail CSS Transitions with transition: all: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.3) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] -Fail CSS Transitions with transition: all: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] -Fail CSS Transitions with transition: all: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.6) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] -Fail CSS Transitions with transition: all: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] -Fail CSS Transitions with transition: all: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] -Fail CSS Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (-0.3) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] -Fail CSS Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] -Fail CSS Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.3) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] -Fail CSS Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] -Fail CSS Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.6) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] -Fail CSS Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] -Fail CSS Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] -Fail Web Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (-0.3) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] -Fail Web Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] -Fail Web Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.3) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] -Fail Web Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] -Fail Web Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.6) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] -Fail Web Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] -Fail Web Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] -Fail CSS Transitions: property from [inset(100%)] to [inset(120%)] at (-0.3) should be [inset(94%)] -Fail CSS Transitions: property from [inset(100%)] to [inset(120%)] at (0) should be [inset(100%)] -Fail CSS Transitions: property from [inset(100%)] to [inset(120%)] at (0.3) should be [inset(106%)] -Fail CSS Transitions: property from [inset(100%)] to [inset(120%)] at (0.6) should be [inset(112%)] -Fail CSS Transitions: property from [inset(100%)] to [inset(120%)] at (1) should be [inset(120%)] -Fail CSS Transitions: property from [inset(100%)] to [inset(120%)] at (1.5) should be [inset(130%)] -Fail CSS Transitions with transition: all: property from [inset(100%)] to [inset(120%)] at (-0.3) should be [inset(94%)] -Fail CSS Transitions with transition: all: property from [inset(100%)] to [inset(120%)] at (0) should be [inset(100%)] -Fail CSS Transitions with transition: all: property from [inset(100%)] to [inset(120%)] at (0.3) should be [inset(106%)] -Fail CSS Transitions with transition: all: property from [inset(100%)] to [inset(120%)] at (0.6) should be [inset(112%)] -Fail CSS Transitions with transition: all: property from [inset(100%)] to [inset(120%)] at (1) should be [inset(120%)] -Fail CSS Transitions with transition: all: property from [inset(100%)] to [inset(120%)] at (1.5) should be [inset(130%)] -Fail CSS Animations: property from [inset(100%)] to [inset(120%)] at (-0.3) should be [inset(94%)] -Fail CSS Animations: property from [inset(100%)] to [inset(120%)] at (0) should be [inset(100%)] -Fail CSS Animations: property from [inset(100%)] to [inset(120%)] at (0.3) should be [inset(106%)] -Fail CSS Animations: property from [inset(100%)] to [inset(120%)] at (0.6) should be [inset(112%)] -Fail CSS Animations: property from [inset(100%)] to [inset(120%)] at (1) should be [inset(120%)] -Fail CSS Animations: property from [inset(100%)] to [inset(120%)] at (1.5) should be [inset(130%)] -Fail Web Animations: property from [inset(100%)] to [inset(120%)] at (-0.3) should be [inset(94%)] -Fail Web Animations: property from [inset(100%)] to [inset(120%)] at (0) should be [inset(100%)] -Fail Web Animations: property from [inset(100%)] to [inset(120%)] at (0.3) should be [inset(106%)] -Fail Web Animations: property from [inset(100%)] to [inset(120%)] at (0.6) should be [inset(112%)] -Fail Web Animations: property from [inset(100%)] to [inset(120%)] at (1) should be [inset(120%)] -Fail Web Animations: property from [inset(100%)] to [inset(120%)] at (1.5) should be [inset(130%)] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (-0.3) should be [none] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0) should be [none] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.3) should be [none] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.5) should be [ellipse(100% 100% at 0% 0%)] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.6) should be [ellipse(100% 100% at 0% 0%)] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1) should be [ellipse(100% 100% at 0% 0%)] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1.5) should be [ellipse(100% 100% at 0% 0%)] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (-0.3) should be [none] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0) should be [none] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.3) should be [none] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.5) should be [ellipse(100% 100% at 0% 0%)] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.6) should be [ellipse(100% 100% at 0% 0%)] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1) should be [ellipse(100% 100% at 0% 0%)] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1.5) should be [ellipse(100% 100% at 0% 0%)] -Fail CSS Transitions: property from [none] to [ellipse(100% 100% at 0% 0%)] at (-0.3) should be [ellipse(100% 100% at 0% 0%)] -Fail CSS Transitions: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0) should be [ellipse(100% 100% at 0% 0%)] -Fail CSS Transitions: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.3) should be [ellipse(100% 100% at 0% 0%)] -Fail CSS Transitions: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.5) should be [ellipse(100% 100% at 0% 0%)] -Fail CSS Transitions: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.6) should be [ellipse(100% 100% at 0% 0%)] -Fail CSS Transitions: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1) should be [ellipse(100% 100% at 0% 0%)] -Fail CSS Transitions: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1.5) should be [ellipse(100% 100% at 0% 0%)] -Fail CSS Transitions with transition: all: property from [none] to [ellipse(100% 100% at 0% 0%)] at (-0.3) should be [ellipse(100% 100% at 0% 0%)] -Fail CSS Transitions with transition: all: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0) should be [ellipse(100% 100% at 0% 0%)] -Fail CSS Transitions with transition: all: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.3) should be [ellipse(100% 100% at 0% 0%)] -Fail CSS Transitions with transition: all: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.5) should be [ellipse(100% 100% at 0% 0%)] -Fail CSS Transitions with transition: all: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.6) should be [ellipse(100% 100% at 0% 0%)] -Fail CSS Transitions with transition: all: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1) should be [ellipse(100% 100% at 0% 0%)] -Fail CSS Transitions with transition: all: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1.5) should be [ellipse(100% 100% at 0% 0%)] -Fail CSS Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (-0.3) should be [none] -Fail CSS Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0) should be [none] -Fail CSS Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.3) should be [none] -Fail CSS Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.5) should be [ellipse(100% 100% at 0% 0%)] -Fail CSS Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.6) should be [ellipse(100% 100% at 0% 0%)] -Fail CSS Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1) should be [ellipse(100% 100% at 0% 0%)] -Fail CSS Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1.5) should be [ellipse(100% 100% at 0% 0%)] -Fail Web Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (-0.3) should be [none] -Fail Web Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0) should be [none] -Fail Web Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.3) should be [none] -Fail Web Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.5) should be [ellipse(100% 100% at 0% 0%)] -Fail Web Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.6) should be [ellipse(100% 100% at 0% 0%)] -Fail Web Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1) should be [ellipse(100% 100% at 0% 0%)] -Fail Web Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1.5) should be [ellipse(100% 100% at 0% 0%)] +312 Pass +12 Fail +Pass CSS Transitions: property from neutral to [circle(40% at 20% 20%)] at (-0.3) should be [circle(66% at 7% 33%)] +Pass CSS Transitions: property from neutral to [circle(40% at 20% 20%)] at (0) should be [circle(60% at 10% 30%)] +Pass CSS Transitions: property from neutral to [circle(40% at 20% 20%)] at (0.3) should be [circle(54% at 13% 27%)] +Pass CSS Transitions: property from neutral to [circle(40% at 20% 20%)] at (0.6) should be [circle(48% at 16% 24%)] +Pass CSS Transitions: property from neutral to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Pass CSS Transitions: property from neutral to [circle(40% at 20% 20%)] at (1.5) should be [circle(30% at 25% 15%)] +Pass CSS Transitions with transition: all: property from neutral to [circle(40% at 20% 20%)] at (-0.3) should be [circle(66% at 7% 33%)] +Pass CSS Transitions with transition: all: property from neutral to [circle(40% at 20% 20%)] at (0) should be [circle(60% at 10% 30%)] +Pass CSS Transitions with transition: all: property from neutral to [circle(40% at 20% 20%)] at (0.3) should be [circle(54% at 13% 27%)] +Pass CSS Transitions with transition: all: property from neutral to [circle(40% at 20% 20%)] at (0.6) should be [circle(48% at 16% 24%)] +Pass CSS Transitions with transition: all: property from neutral to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Pass CSS Transitions with transition: all: property from neutral to [circle(40% at 20% 20%)] at (1.5) should be [circle(30% at 25% 15%)] +Pass CSS Animations: property from neutral to [circle(40% at 20% 20%)] at (-0.3) should be [circle(66% at 7% 33%)] +Pass CSS Animations: property from neutral to [circle(40% at 20% 20%)] at (0) should be [circle(60% at 10% 30%)] +Pass CSS Animations: property from neutral to [circle(40% at 20% 20%)] at (0.3) should be [circle(54% at 13% 27%)] +Pass CSS Animations: property from neutral to [circle(40% at 20% 20%)] at (0.6) should be [circle(48% at 16% 24%)] +Pass CSS Animations: property from neutral to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Pass CSS Animations: property from neutral to [circle(40% at 20% 20%)] at (1.5) should be [circle(30% at 25% 15%)] +Pass Web Animations: property from neutral to [circle(40% at 20% 20%)] at (-0.3) should be [circle(66% at 7% 33%)] +Pass Web Animations: property from neutral to [circle(40% at 20% 20%)] at (0) should be [circle(60% at 10% 30%)] +Pass Web Animations: property from neutral to [circle(40% at 20% 20%)] at (0.3) should be [circle(54% at 13% 27%)] +Pass Web Animations: property from neutral to [circle(40% at 20% 20%)] at (0.6) should be [circle(48% at 16% 24%)] +Pass Web Animations: property from neutral to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Pass Web Animations: property from neutral to [circle(40% at 20% 20%)] at (1.5) should be [circle(30% at 25% 15%)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (-0.3) should be [initial] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (0) should be [initial] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (0.3) should be [initial] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (-0.3) should be [initial] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (0) should be [initial] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (0.3) should be [initial] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] +Pass CSS Transitions: property from [initial] to [circle(40% at 20% 20%)] at (-0.3) should be [circle(40% at 20% 20%)] +Pass CSS Transitions: property from [initial] to [circle(40% at 20% 20%)] at (0) should be [circle(40% at 20% 20%)] +Pass CSS Transitions: property from [initial] to [circle(40% at 20% 20%)] at (0.3) should be [circle(40% at 20% 20%)] +Pass CSS Transitions: property from [initial] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] +Pass CSS Transitions: property from [initial] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] +Pass CSS Transitions: property from [initial] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Pass CSS Transitions: property from [initial] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] +Pass CSS Transitions with transition: all: property from [initial] to [circle(40% at 20% 20%)] at (-0.3) should be [circle(40% at 20% 20%)] +Pass CSS Transitions with transition: all: property from [initial] to [circle(40% at 20% 20%)] at (0) should be [circle(40% at 20% 20%)] +Pass CSS Transitions with transition: all: property from [initial] to [circle(40% at 20% 20%)] at (0.3) should be [circle(40% at 20% 20%)] +Pass CSS Transitions with transition: all: property from [initial] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] +Pass CSS Transitions with transition: all: property from [initial] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] +Pass CSS Transitions with transition: all: property from [initial] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Pass CSS Transitions with transition: all: property from [initial] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] +Pass CSS Animations: property from [initial] to [circle(40% at 20% 20%)] at (-0.3) should be [initial] +Pass CSS Animations: property from [initial] to [circle(40% at 20% 20%)] at (0) should be [initial] +Pass CSS Animations: property from [initial] to [circle(40% at 20% 20%)] at (0.3) should be [initial] +Pass CSS Animations: property from [initial] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] +Pass CSS Animations: property from [initial] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] +Pass CSS Animations: property from [initial] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Pass CSS Animations: property from [initial] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] +Pass Web Animations: property from [initial] to [circle(40% at 20% 20%)] at (-0.3) should be [initial] +Pass Web Animations: property from [initial] to [circle(40% at 20% 20%)] at (0) should be [initial] +Pass Web Animations: property from [initial] to [circle(40% at 20% 20%)] at (0.3) should be [initial] +Pass Web Animations: property from [initial] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] +Pass Web Animations: property from [initial] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] +Pass Web Animations: property from [initial] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Pass Web Animations: property from [initial] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] +Pass CSS Transitions: property from [inherit] to [circle(40% at 20% 20%)] at (-0.3) should be [circle(92% at 33% 7%)] +Pass CSS Transitions: property from [inherit] to [circle(40% at 20% 20%)] at (0) should be [circle(80% at 30% 10%)] +Pass CSS Transitions: property from [inherit] to [circle(40% at 20% 20%)] at (0.3) should be [circle(68% at 27% 13%)] +Pass CSS Transitions: property from [inherit] to [circle(40% at 20% 20%)] at (0.6) should be [circle(56% at 24% 16%)] +Pass CSS Transitions: property from [inherit] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Pass CSS Transitions: property from [inherit] to [circle(40% at 20% 20%)] at (1.5) should be [circle(20% at 15% 25%)] +Pass CSS Transitions with transition: all: property from [inherit] to [circle(40% at 20% 20%)] at (-0.3) should be [circle(92% at 33% 7%)] +Pass CSS Transitions with transition: all: property from [inherit] to [circle(40% at 20% 20%)] at (0) should be [circle(80% at 30% 10%)] +Pass CSS Transitions with transition: all: property from [inherit] to [circle(40% at 20% 20%)] at (0.3) should be [circle(68% at 27% 13%)] +Pass CSS Transitions with transition: all: property from [inherit] to [circle(40% at 20% 20%)] at (0.6) should be [circle(56% at 24% 16%)] +Pass CSS Transitions with transition: all: property from [inherit] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Pass CSS Transitions with transition: all: property from [inherit] to [circle(40% at 20% 20%)] at (1.5) should be [circle(20% at 15% 25%)] +Pass CSS Animations: property from [inherit] to [circle(40% at 20% 20%)] at (-0.3) should be [circle(92% at 33% 7%)] +Pass CSS Animations: property from [inherit] to [circle(40% at 20% 20%)] at (0) should be [circle(80% at 30% 10%)] +Pass CSS Animations: property from [inherit] to [circle(40% at 20% 20%)] at (0.3) should be [circle(68% at 27% 13%)] +Pass CSS Animations: property from [inherit] to [circle(40% at 20% 20%)] at (0.6) should be [circle(56% at 24% 16%)] +Pass CSS Animations: property from [inherit] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Pass CSS Animations: property from [inherit] to [circle(40% at 20% 20%)] at (1.5) should be [circle(20% at 15% 25%)] +Pass Web Animations: property from [inherit] to [circle(40% at 20% 20%)] at (-0.3) should be [circle(92% at 33% 7%)] +Pass Web Animations: property from [inherit] to [circle(40% at 20% 20%)] at (0) should be [circle(80% at 30% 10%)] +Pass Web Animations: property from [inherit] to [circle(40% at 20% 20%)] at (0.3) should be [circle(68% at 27% 13%)] +Pass Web Animations: property from [inherit] to [circle(40% at 20% 20%)] at (0.6) should be [circle(56% at 24% 16%)] +Pass Web Animations: property from [inherit] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Pass Web Animations: property from [inherit] to [circle(40% at 20% 20%)] at (1.5) should be [circle(20% at 15% 25%)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (-0.3) should be [unset] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (0) should be [unset] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (0.3) should be [unset] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (-0.3) should be [unset] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (0) should be [unset] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (0.3) should be [unset] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] +Pass CSS Transitions: property from [unset] to [circle(40% at 20% 20%)] at (-0.3) should be [circle(40% at 20% 20%)] +Pass CSS Transitions: property from [unset] to [circle(40% at 20% 20%)] at (0) should be [circle(40% at 20% 20%)] +Pass CSS Transitions: property from [unset] to [circle(40% at 20% 20%)] at (0.3) should be [circle(40% at 20% 20%)] +Pass CSS Transitions: property from [unset] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] +Pass CSS Transitions: property from [unset] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] +Pass CSS Transitions: property from [unset] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Pass CSS Transitions: property from [unset] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] +Pass CSS Transitions with transition: all: property from [unset] to [circle(40% at 20% 20%)] at (-0.3) should be [circle(40% at 20% 20%)] +Pass CSS Transitions with transition: all: property from [unset] to [circle(40% at 20% 20%)] at (0) should be [circle(40% at 20% 20%)] +Pass CSS Transitions with transition: all: property from [unset] to [circle(40% at 20% 20%)] at (0.3) should be [circle(40% at 20% 20%)] +Pass CSS Transitions with transition: all: property from [unset] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] +Pass CSS Transitions with transition: all: property from [unset] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] +Pass CSS Transitions with transition: all: property from [unset] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Pass CSS Transitions with transition: all: property from [unset] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] +Pass CSS Animations: property from [unset] to [circle(40% at 20% 20%)] at (-0.3) should be [unset] +Pass CSS Animations: property from [unset] to [circle(40% at 20% 20%)] at (0) should be [unset] +Pass CSS Animations: property from [unset] to [circle(40% at 20% 20%)] at (0.3) should be [unset] +Pass CSS Animations: property from [unset] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] +Pass CSS Animations: property from [unset] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] +Pass CSS Animations: property from [unset] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Pass CSS Animations: property from [unset] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] +Pass Web Animations: property from [unset] to [circle(40% at 20% 20%)] at (-0.3) should be [unset] +Pass Web Animations: property from [unset] to [circle(40% at 20% 20%)] at (0) should be [unset] +Pass Web Animations: property from [unset] to [circle(40% at 20% 20%)] at (0.3) should be [unset] +Pass Web Animations: property from [unset] to [circle(40% at 20% 20%)] at (0.5) should be [circle(40% at 20% 20%)] +Pass Web Animations: property from [unset] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] +Pass Web Animations: property from [unset] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] +Pass Web Animations: property from [unset] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] +Pass CSS Transitions: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (-0.3) should be [circle(115% at -7.5% -7.5%)] +Pass CSS Transitions: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0) should be [circle(100% at 0% 0%)] +Pass CSS Transitions: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.3) should be [circle(85% at 7.5% 7.5%)] +Pass CSS Transitions: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.6) should be [circle(70% at 15% 15%)] +Pass CSS Transitions: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1) should be [circle(50% at 25% 25%)] +Pass CSS Transitions: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1.5) should be [circle(25% at 37.5% 37.5%)] +Pass CSS Transitions with transition: all: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (-0.3) should be [circle(115% at -7.5% -7.5%)] +Pass CSS Transitions with transition: all: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0) should be [circle(100% at 0% 0%)] +Pass CSS Transitions with transition: all: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.3) should be [circle(85% at 7.5% 7.5%)] +Pass CSS Transitions with transition: all: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.6) should be [circle(70% at 15% 15%)] +Pass CSS Transitions with transition: all: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1) should be [circle(50% at 25% 25%)] +Pass CSS Transitions with transition: all: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1.5) should be [circle(25% at 37.5% 37.5%)] +Pass CSS Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (-0.3) should be [circle(115% at -7.5% -7.5%)] +Pass CSS Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0) should be [circle(100% at 0% 0%)] +Pass CSS Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.3) should be [circle(85% at 7.5% 7.5%)] +Pass CSS Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.6) should be [circle(70% at 15% 15%)] +Pass CSS Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1) should be [circle(50% at 25% 25%)] +Pass CSS Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1.5) should be [circle(25% at 37.5% 37.5%)] +Pass Web Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (-0.3) should be [circle(115% at -7.5% -7.5%)] +Pass Web Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0) should be [circle(100% at 0% 0%)] +Pass Web Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.3) should be [circle(85% at 7.5% 7.5%)] +Pass Web Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.6) should be [circle(70% at 15% 15%)] +Pass Web Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1) should be [circle(50% at 25% 25%)] +Pass Web Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1.5) should be [circle(25% at 37.5% 37.5%)] +Pass CSS Transitions: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (-0.3) should be [ellipse(115% 115% at -7.5% -7.5%)] +Pass CSS Transitions: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0) should be [ellipse(100% 100% at 0% 0%)] +Pass CSS Transitions: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0.3) should be [ellipse(85% 85% at 7.5% 7.5%)] +Pass CSS Transitions: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0.6) should be [ellipse(70% 70% at 15% 15%)] +Pass CSS Transitions: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (1) should be [ellipse(50% 50% at 25% 25%)] +Pass CSS Transitions: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (1.5) should be [ellipse(25% 25% at 37.5% 37.5%)] +Pass CSS Transitions with transition: all: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (-0.3) should be [ellipse(115% 115% at -7.5% -7.5%)] +Pass CSS Transitions with transition: all: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0) should be [ellipse(100% 100% at 0% 0%)] +Pass CSS Transitions with transition: all: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0.3) should be [ellipse(85% 85% at 7.5% 7.5%)] +Pass CSS Transitions with transition: all: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0.6) should be [ellipse(70% 70% at 15% 15%)] +Pass CSS Transitions with transition: all: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (1) should be [ellipse(50% 50% at 25% 25%)] +Pass CSS Transitions with transition: all: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (1.5) should be [ellipse(25% 25% at 37.5% 37.5%)] +Pass CSS Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (-0.3) should be [ellipse(115% 115% at -7.5% -7.5%)] +Pass CSS Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0) should be [ellipse(100% 100% at 0% 0%)] +Pass CSS Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0.3) should be [ellipse(85% 85% at 7.5% 7.5%)] +Pass CSS Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0.6) should be [ellipse(70% 70% at 15% 15%)] +Pass CSS Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (1) should be [ellipse(50% 50% at 25% 25%)] +Pass CSS Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (1.5) should be [ellipse(25% 25% at 37.5% 37.5%)] +Pass Web Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (-0.3) should be [ellipse(115% 115% at -7.5% -7.5%)] +Pass Web Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0) should be [ellipse(100% 100% at 0% 0%)] +Pass Web Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0.3) should be [ellipse(85% 85% at 7.5% 7.5%)] +Pass Web Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0.6) should be [ellipse(70% 70% at 15% 15%)] +Pass Web Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (1) should be [ellipse(50% 50% at 25% 25%)] +Pass Web Animations: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (1.5) should be [ellipse(25% 25% at 37.5% 37.5%)] +Pass CSS Transitions: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (-0.3) should be [polygon(nonzero, -7.5px -7.5px, 17.5px 17.5px, 42.5px 42.5px)] +Pass CSS Transitions: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0) should be [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] +Pass CSS Transitions: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.3) should be [polygon(nonzero, 7.5px 7.5px, 32.5px 32.5px, 57.5px 57.5px)] +Pass CSS Transitions: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.6) should be [polygon(nonzero, 15px 15px, 40px 40px, 65px 65px)] +Pass CSS Transitions: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Pass CSS Transitions: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1.5) should be [polygon(nonzero, 37.5px 37.5px, 62.5px 62.5px, 87.5px 87.5px)] +Pass CSS Transitions with transition: all: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (-0.3) should be [polygon(nonzero, -7.5px -7.5px, 17.5px 17.5px, 42.5px 42.5px)] +Pass CSS Transitions with transition: all: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0) should be [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] +Pass CSS Transitions with transition: all: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.3) should be [polygon(nonzero, 7.5px 7.5px, 32.5px 32.5px, 57.5px 57.5px)] +Pass CSS Transitions with transition: all: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.6) should be [polygon(nonzero, 15px 15px, 40px 40px, 65px 65px)] +Pass CSS Transitions with transition: all: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Pass CSS Transitions with transition: all: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1.5) should be [polygon(nonzero, 37.5px 37.5px, 62.5px 62.5px, 87.5px 87.5px)] +Pass CSS Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (-0.3) should be [polygon(nonzero, -7.5px -7.5px, 17.5px 17.5px, 42.5px 42.5px)] +Pass CSS Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0) should be [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] +Pass CSS Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.3) should be [polygon(nonzero, 7.5px 7.5px, 32.5px 32.5px, 57.5px 57.5px)] +Pass CSS Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.6) should be [polygon(nonzero, 15px 15px, 40px 40px, 65px 65px)] +Pass CSS Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Pass CSS Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1.5) should be [polygon(nonzero, 37.5px 37.5px, 62.5px 62.5px, 87.5px 87.5px)] +Pass Web Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (-0.3) should be [polygon(nonzero, -7.5px -7.5px, 17.5px 17.5px, 42.5px 42.5px)] +Pass Web Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0) should be [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] +Pass Web Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.3) should be [polygon(nonzero, 7.5px 7.5px, 32.5px 32.5px, 57.5px 57.5px)] +Pass Web Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.6) should be [polygon(nonzero, 15px 15px, 40px 40px, 65px 65px)] +Pass Web Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Pass Web Animations: property from [polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1.5) should be [polygon(nonzero, 37.5px 37.5px, 62.5px 62.5px, 87.5px 87.5px)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (-0.3) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.3) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.6) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (-0.3) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.3) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.6) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Pass CSS Transitions: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (-0.3) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Pass CSS Transitions: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Pass CSS Transitions: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.3) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Pass CSS Transitions: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Pass CSS Transitions: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.6) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Pass CSS Transitions: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Pass CSS Transitions: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Pass CSS Transitions with transition: all: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (-0.3) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Pass CSS Transitions with transition: all: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Pass CSS Transitions with transition: all: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.3) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Pass CSS Transitions with transition: all: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Pass CSS Transitions with transition: all: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.6) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Pass CSS Transitions with transition: all: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Pass CSS Transitions with transition: all: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Pass CSS Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (-0.3) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] +Pass CSS Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] +Pass CSS Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.3) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] +Pass CSS Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Pass CSS Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.6) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Pass CSS Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Pass CSS Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Pass Web Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (-0.3) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] +Pass Web Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] +Pass Web Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.3) should be [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] +Pass Web Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Pass Web Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (0.6) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Pass Web Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Pass Web Animations: property from [polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)] to [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] at (1.5) should be [polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)] +Pass CSS Transitions: property from [inset(100%)] to [inset(120%)] at (-0.3) should be [inset(94%)] +Pass CSS Transitions: property from [inset(100%)] to [inset(120%)] at (0) should be [inset(100%)] +Pass CSS Transitions: property from [inset(100%)] to [inset(120%)] at (0.3) should be [inset(106%)] +Pass CSS Transitions: property from [inset(100%)] to [inset(120%)] at (0.6) should be [inset(112%)] +Pass CSS Transitions: property from [inset(100%)] to [inset(120%)] at (1) should be [inset(120%)] +Pass CSS Transitions: property from [inset(100%)] to [inset(120%)] at (1.5) should be [inset(130%)] +Pass CSS Transitions with transition: all: property from [inset(100%)] to [inset(120%)] at (-0.3) should be [inset(94%)] +Pass CSS Transitions with transition: all: property from [inset(100%)] to [inset(120%)] at (0) should be [inset(100%)] +Pass CSS Transitions with transition: all: property from [inset(100%)] to [inset(120%)] at (0.3) should be [inset(106%)] +Pass CSS Transitions with transition: all: property from [inset(100%)] to [inset(120%)] at (0.6) should be [inset(112%)] +Pass CSS Transitions with transition: all: property from [inset(100%)] to [inset(120%)] at (1) should be [inset(120%)] +Pass CSS Transitions with transition: all: property from [inset(100%)] to [inset(120%)] at (1.5) should be [inset(130%)] +Pass CSS Animations: property from [inset(100%)] to [inset(120%)] at (-0.3) should be [inset(94%)] +Pass CSS Animations: property from [inset(100%)] to [inset(120%)] at (0) should be [inset(100%)] +Pass CSS Animations: property from [inset(100%)] to [inset(120%)] at (0.3) should be [inset(106%)] +Pass CSS Animations: property from [inset(100%)] to [inset(120%)] at (0.6) should be [inset(112%)] +Pass CSS Animations: property from [inset(100%)] to [inset(120%)] at (1) should be [inset(120%)] +Pass CSS Animations: property from [inset(100%)] to [inset(120%)] at (1.5) should be [inset(130%)] +Pass Web Animations: property from [inset(100%)] to [inset(120%)] at (-0.3) should be [inset(94%)] +Pass Web Animations: property from [inset(100%)] to [inset(120%)] at (0) should be [inset(100%)] +Pass Web Animations: property from [inset(100%)] to [inset(120%)] at (0.3) should be [inset(106%)] +Pass Web Animations: property from [inset(100%)] to [inset(120%)] at (0.6) should be [inset(112%)] +Pass Web Animations: property from [inset(100%)] to [inset(120%)] at (1) should be [inset(120%)] +Pass Web Animations: property from [inset(100%)] to [inset(120%)] at (1.5) should be [inset(130%)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (-0.3) should be [none] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0) should be [none] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.3) should be [none] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.5) should be [ellipse(100% 100% at 0% 0%)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.6) should be [ellipse(100% 100% at 0% 0%)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1) should be [ellipse(100% 100% at 0% 0%)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1.5) should be [ellipse(100% 100% at 0% 0%)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (-0.3) should be [none] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0) should be [none] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.3) should be [none] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.5) should be [ellipse(100% 100% at 0% 0%)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.6) should be [ellipse(100% 100% at 0% 0%)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1) should be [ellipse(100% 100% at 0% 0%)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1.5) should be [ellipse(100% 100% at 0% 0%)] +Pass CSS Transitions: property from [none] to [ellipse(100% 100% at 0% 0%)] at (-0.3) should be [ellipse(100% 100% at 0% 0%)] +Pass CSS Transitions: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0) should be [ellipse(100% 100% at 0% 0%)] +Pass CSS Transitions: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.3) should be [ellipse(100% 100% at 0% 0%)] +Pass CSS Transitions: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.5) should be [ellipse(100% 100% at 0% 0%)] +Pass CSS Transitions: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.6) should be [ellipse(100% 100% at 0% 0%)] +Pass CSS Transitions: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1) should be [ellipse(100% 100% at 0% 0%)] +Pass CSS Transitions: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1.5) should be [ellipse(100% 100% at 0% 0%)] +Pass CSS Transitions with transition: all: property from [none] to [ellipse(100% 100% at 0% 0%)] at (-0.3) should be [ellipse(100% 100% at 0% 0%)] +Pass CSS Transitions with transition: all: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0) should be [ellipse(100% 100% at 0% 0%)] +Pass CSS Transitions with transition: all: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.3) should be [ellipse(100% 100% at 0% 0%)] +Pass CSS Transitions with transition: all: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.5) should be [ellipse(100% 100% at 0% 0%)] +Pass CSS Transitions with transition: all: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.6) should be [ellipse(100% 100% at 0% 0%)] +Pass CSS Transitions with transition: all: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1) should be [ellipse(100% 100% at 0% 0%)] +Pass CSS Transitions with transition: all: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1.5) should be [ellipse(100% 100% at 0% 0%)] +Pass CSS Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (-0.3) should be [none] +Pass CSS Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0) should be [none] +Pass CSS Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.3) should be [none] +Pass CSS Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.5) should be [ellipse(100% 100% at 0% 0%)] +Pass CSS Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.6) should be [ellipse(100% 100% at 0% 0%)] +Pass CSS Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1) should be [ellipse(100% 100% at 0% 0%)] +Pass CSS Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1.5) should be [ellipse(100% 100% at 0% 0%)] +Pass Web Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (-0.3) should be [none] +Pass Web Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0) should be [none] +Pass Web Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.3) should be [none] +Pass Web Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.5) should be [ellipse(100% 100% at 0% 0%)] +Pass Web Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (0.6) should be [ellipse(100% 100% at 0% 0%)] +Pass Web Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1) should be [ellipse(100% 100% at 0% 0%)] +Pass Web Animations: property from [none] to [ellipse(100% 100% at 0% 0%)] at (1.5) should be [ellipse(100% 100% at 0% 0%)] Fail CSS Transitions: property from [circle(25% at right 5% bottom 15px)] to [circle(45% at right 25% bottom 35px)] at (0.25) should be [circle(30% at 90% calc(-20px + 100%))] Fail CSS Transitions: property from [circle(25% at right 5% bottom 15px)] to [circle(45% at right 25% bottom 35px)] at (0.5) should be [circle(35% at 85% calc(-25px + 100%))] Fail CSS Transitions: property from [circle(25% at right 5% bottom 15px)] to [circle(45% at right 25% bottom 35px)] at (0.75) should be [circle(40% at 80% calc(-30px + 100%))] diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-outside-computed.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-outside-computed.txt index 4c14763db82..35604ca8db1 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-outside-computed.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-outside-computed.txt @@ -2,14 +2,15 @@ Harness status: OK Found 12 tests -12 Fail +1 Pass +11 Fail Fail Property shape-outside value 'circle(at 10% 20%)' Fail Property shape-outside value 'circle(at calc(75% + 0px) calc(75% + 0px))' Fail Property shape-outside value 'circle(calc(10px + 0.5em) at -50% 50%) border-box' Fail Property shape-outside value 'circle(calc(10px - 0.5em) at 50% -50%) border-box' Fail Property shape-outside value 'circle(at top 0% right calc(10% * sign(1em - 1px)))' Fail Property shape-outside value 'circle(at top 0% right calc(10% * sibling-index()))' -Fail Property shape-outside value 'ellipse(60% closest-side at 50% 50%)' +Pass Property shape-outside value 'ellipse(60% closest-side at 50% 50%)' Fail Property shape-outside value 'ellipse(calc(10px + 0.5em) calc(10px - 0.5em) at -50% 50%) padding-box' Fail Property shape-outside value 'ellipse(calc(10px - 0.5em) calc(10px + 0.5em) at 50% -50%) border-box' Fail Property shape-outside value 'polygon(evenodd, -10px, -20px, -30px, -40px, -50px, -60px) margin-box' diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/circle-function-computed.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/circle-function-computed.txt index 969acd3d37b..0780bf099fe 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/circle-function-computed.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/circle-function-computed.txt @@ -2,12 +2,13 @@ Harness status: OK Found 14 tests -14 Fail +4 Pass +10 Fail Fail Property shape-outside value 'circle()' Fail Property shape-outside value 'circle(1px)' -Fail Property shape-outside value 'circle(20px at center)' +Pass Property shape-outside value 'circle(20px at center)' Fail Property shape-outside value 'circle(at 10% 20%)' -Fail Property shape-outside value 'circle(4% at top right)' +Pass Property shape-outside value 'circle(4% at top right)' Fail Property shape-outside value 'circle(calc(100% - 20px) at calc(100% - 20px) calc(100% / 4))' Fail Property shape-outside value 'circle(closest-corner at center)' Fail Property shape-outside value 'circle(closest-corner at 20px 50px)' @@ -15,5 +16,5 @@ Fail Property shape-outside value 'circle(closest-side at center)' Fail Property shape-outside value 'circle(closest-side at 20px 30%)' Fail Property shape-outside value 'circle(farthest-corner at center top)' Fail Property shape-outside value 'circle(farthest-corner at center)' -Fail Property shape-outside value 'circle(farthest-side at center top)' -Fail Property shape-outside value 'circle(farthest-side at center)' \ No newline at end of file +Pass Property shape-outside value 'circle(farthest-side at center top)' +Pass Property shape-outside value 'circle(farthest-side at center)' \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/ellipse-function-computed.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/ellipse-function-computed.txt index 043f16a3e16..caa4f6a0ced 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/ellipse-function-computed.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/ellipse-function-computed.txt @@ -2,18 +2,19 @@ Harness status: OK Found 14 tests -14 Fail +5 Pass +9 Fail Fail Property shape-outside value 'ellipse()' Fail Property shape-outside value 'ellipse(1px 2px)' -Fail Property shape-outside value 'ellipse(20px 40px at center)' +Pass Property shape-outside value 'ellipse(20px 40px at center)' Fail Property shape-outside value 'ellipse(closest-side 20%)' Fail Property shape-outside value 'ellipse(farthest-side 20%)' Fail Property shape-outside value 'ellipse(closest-corner 20%)' Fail Property shape-outside value 'ellipse(farthest-corner 20%)' Fail Property shape-outside value 'ellipse(at 10% 20%)' Fail Property shape-outside value 'ellipse(at -10px -20%)' -Fail Property shape-outside value 'ellipse(4% 20% at top right)' +Pass Property shape-outside value 'ellipse(4% 20% at top right)' Fail Property shape-outside value 'ellipse(calc(100% - 20px) calc(80% - 10px) at calc(100% - 20px) calc(100% / 4))' -Fail Property shape-outside value 'ellipse(10px closest-side at top right)' -Fail Property shape-outside value 'ellipse(farthest-side 20px at center top)' -Fail Property shape-outside value 'ellipse(farthest-side farthest-side at top right)' \ No newline at end of file +Pass Property shape-outside value 'ellipse(10px closest-side at top right)' +Pass Property shape-outside value 'ellipse(farthest-side 20px at center top)' +Pass Property shape-outside value 'ellipse(farthest-side farthest-side at top right)' \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/inset-function-valid.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/inset-function-valid.txt index 9bbc964a0c2..0c710c269c2 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/inset-function-valid.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/inset-function-valid.txt @@ -2,12 +2,13 @@ Harness status: OK Found 11 tests -11 Fail +1 Pass +10 Fail Fail e.style['shape-outside'] = "inset(100%)" should set the property value Fail e.style['shape-outside'] = "inset(0 1px)" should set the property value Fail e.style['shape-outside'] = "inset(0px 1px 2%)" should set the property value Fail e.style['shape-outside'] = "inset(-20px -20px 2%)" should set the property value -Fail e.style['shape-outside'] = "inset(0px 1px 2% 3em)" should set the property value +Pass e.style['shape-outside'] = "inset(0px 1px 2% 3em)" should set the property value Fail e.style['shape-outside'] = "inset(0px calc(100% - 20px) 2% 3em)" should set the property value Fail e.style['shape-outside'] = "inset(0px round 100%)" should set the property value Fail e.style['shape-outside'] = "inset(0px round 0 1px)" should set the property value diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/polygon-function-valid.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/polygon-function-valid.txt index 36c798cf7d8..0f695da2ce9 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/polygon-function-valid.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/polygon-function-valid.txt @@ -2,8 +2,9 @@ Harness status: OK Found 4 tests -4 Fail +1 Pass +3 Fail Fail e.style['shape-outside'] = "polygon(1% 2%)" should set the property value Fail e.style['shape-outside'] = "polygon(calc(100% - 20px) calc(30% + 10px))" should set the property value Fail e.style['shape-outside'] = "polygon(nonzero, 1px 2px, 3em 4em)" should set the property value -Fail e.style['shape-outside'] = "polygon(evenodd, 1px 2px, 3em 4em, 5pt 6%)" should set the property value \ No newline at end of file +Pass e.style['shape-outside'] = "polygon(evenodd, 1px 2px, 3em 4em, 5pt 6%)" should set the property value \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/xywh-function-valid.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/xywh-function-valid.txt index 9df9375c56c..494c394ea02 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/xywh-function-valid.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/shape-functions/xywh-function-valid.txt @@ -2,8 +2,9 @@ Harness status: OK Found 7 tests -7 Fail -Fail e.style['shape-outside'] = "xywh(0px 1px 2% 3em)" should set the property value +1 Pass +6 Fail +Pass e.style['shape-outside'] = "xywh(0px 1px 2% 3em)" should set the property value Fail e.style['shape-outside'] = "xywh(0px calc(100% - 20px) 2% 3em)" should set the property value Fail e.style['shape-outside'] = "xywh(10px 20px 30px 25px round 100%)" should set the property value Fail e.style['shape-outside'] = "xywh(10px 20px 30px 25px round 0 1px)" should set the property value From 0e82ab2966d914211b6e8242e31f7953decb5f82 Mon Sep 17 00:00:00 2001 From: Callum Law Date: Fri, 17 Oct 2025 02:15:11 +1300 Subject: [PATCH 7/9] LibWeb: Define `` as a ValueType Since `` is used across multiple properties it makes sense to have it defined as a value. --- Libraries/LibWeb/CSS/Parser/Parser.h | 2 +- .../LibWeb/CSS/Parser/PropertyParsing.cpp | 23 +----- Libraries/LibWeb/CSS/Parser/ValueParsing.cpp | 17 +++++ Libraries/LibWeb/CSS/Properties.json | 24 +++---- Libraries/LibWeb/CSS/ValueType.cpp | 4 ++ Libraries/LibWeb/CSS/ValueType.h | 1 + .../LibWeb/GenerateCSSPropertyID.cpp | 71 +++++++++---------- 7 files changed, 68 insertions(+), 74 deletions(-) diff --git a/Libraries/LibWeb/CSS/Parser/Parser.h b/Libraries/LibWeb/CSS/Parser/Parser.h index acc048957db..3e711781c9c 100644 --- a/Libraries/LibWeb/CSS/Parser/Parser.h +++ b/Libraries/LibWeb/CSS/Parser/Parser.h @@ -398,6 +398,7 @@ private: RefPtr parse_contain_value(TokenStream&); RefPtr parse_container_type_value(TokenStream&); RefPtr parse_opentype_tag_value(TokenStream&); + RefPtr parse_opacity_value(TokenStream&); RefPtr parse_font_source_value(TokenStream&); RefPtr parse_anchor(TokenStream&); @@ -460,7 +461,6 @@ private: RefPtr parse_list_style_value(TokenStream&); RefPtr parse_mask_value(TokenStream&); RefPtr parse_math_depth_value(TokenStream&); - RefPtr parse_opacity_value(PropertyID property_id, TokenStream&); RefPtr parse_overflow_value(TokenStream&); RefPtr parse_paint_order_value(TokenStream&); RefPtr parse_place_content_value(TokenStream&); diff --git a/Libraries/LibWeb/CSS/Parser/PropertyParsing.cpp b/Libraries/LibWeb/CSS/Parser/PropertyParsing.cpp index 92b295c4d19..44738afb88c 100644 --- a/Libraries/LibWeb/CSS/Parser/PropertyParsing.cpp +++ b/Libraries/LibWeb/CSS/Parser/PropertyParsing.cpp @@ -172,6 +172,8 @@ Optional Parser::parse_css_value_for_properties(Readon return parsed.release_value(); if (auto parsed = parse_for_type(ValueType::Ratio); parsed.has_value()) return parsed.release_value(); + if (auto parsed = parse_for_type(ValueType::Opacity); parsed.has_value()) + return parsed.release_value(); if (auto parsed = parse_for_type(ValueType::OpentypeTag); parsed.has_value()) return parsed.release_value(); if (auto parsed = parse_for_type(ValueType::Rect); parsed.has_value()) @@ -721,14 +723,6 @@ Parser::ParseErrorOr> Parser::parse_css_value(Pr if (auto parsed_value = parse_comma_separated_value_list(tokens, [this, property_id](auto& tokens) { return parse_single_background_size_value(property_id, tokens); })) return parsed_value.release_nonnull(); return ParseError::SyntaxError; - case PropertyID::Opacity: - case PropertyID::FillOpacity: - case PropertyID::FloodOpacity: - case PropertyID::StopOpacity: - case PropertyID::StrokeOpacity: - if (auto parsed_value = parse_opacity_value(property_id, tokens); parsed_value && !tokens.has_next_token()) - return parsed_value.release_nonnull(); - return ParseError::SyntaxError; // FIXME: This can be removed once we have generic logic for parsing "positional-value-list-shorthand"s case PropertyID::Overflow: if (auto parsed_value = parse_overflow_value(tokens); parsed_value && !tokens.has_next_token()) @@ -4061,19 +4055,6 @@ RefPtr Parser::parse_math_depth_value(TokenStream Parser::parse_opacity_value(PropertyID property_id, TokenStream& tokens) -{ - auto value = parse_css_value_for_property(property_id, tokens); - if (!value) - return nullptr; - - // Percentages map to the range [0,1] for opacity values - if (value->is_percentage()) - value = NumberStyleValue::create(value->as_percentage().percentage().as_fraction()); - - return value; -} - RefPtr Parser::parse_overflow_value(TokenStream& tokens) { auto transaction = tokens.begin_transaction(); diff --git a/Libraries/LibWeb/CSS/Parser/ValueParsing.cpp b/Libraries/LibWeb/CSS/Parser/ValueParsing.cpp index 4b4aa4bf02e..dd23451ce20 100644 --- a/Libraries/LibWeb/CSS/Parser/ValueParsing.cpp +++ b/Libraries/LibWeb/CSS/Parser/ValueParsing.cpp @@ -4458,6 +4458,21 @@ RefPtr Parser::parse_a_calculation(Vector return simplify_a_calculation_tree(*calculation_tree, context, CalculationResolutionContext {}); } +// https://drafts.csswg.org/css-color-4/#typedef-opacity-opacity-value +RefPtr Parser::parse_opacity_value(TokenStream& tokens) +{ + auto value = parse_number_percentage_value(tokens); + + if (!value) + return nullptr; + + // Percentages map to the range [0,1] for opacity values + if (value->is_percentage()) + return NumberStyleValue::create(value->as_percentage().percentage().as_fraction()); + + return value; +} + // https://drafts.csswg.org/css-fonts/#typedef-opentype-tag RefPtr Parser::parse_opentype_tag_value(TokenStream& tokens) { @@ -4869,6 +4884,8 @@ RefPtr Parser::parse_value(ValueType value_type, TokenStream value_type_from_string(StringView string) return ValueType::Length; if (string.equals_ignoring_ascii_case("number"sv)) return ValueType::Number; + if (string.equals_ignoring_ascii_case("opacity"sv)) + return ValueType::Opacity; if (string.equals_ignoring_ascii_case("opentype-tag"sv)) return ValueType::OpentypeTag; if (string.equals_ignoring_ascii_case("paint"sv)) @@ -109,6 +111,8 @@ StringView value_type_to_string(ValueType value_type) return "Length"sv; case Web::CSS::ValueType::Number: return "Number"sv; + case Web::CSS::ValueType::Opacity: + return "Opacity"sv; case Web::CSS::ValueType::OpentypeTag: return "OpenTypeTag"sv; case Web::CSS::ValueType::Paint: diff --git a/Libraries/LibWeb/CSS/ValueType.h b/Libraries/LibWeb/CSS/ValueType.h index ae352c26dc2..44f86b43af5 100644 --- a/Libraries/LibWeb/CSS/ValueType.h +++ b/Libraries/LibWeb/CSS/ValueType.h @@ -31,6 +31,7 @@ enum class ValueType : u8 { Integer, Length, Number, + Opacity, OpentypeTag, Paint, Percentage, diff --git a/Meta/Lagom/Tools/CodeGenerators/LibWeb/GenerateCSSPropertyID.cpp b/Meta/Lagom/Tools/CodeGenerators/LibWeb/GenerateCSSPropertyID.cpp index 426f80a3873..2c0631a19be 100644 --- a/Meta/Lagom/Tools/CodeGenerators/LibWeb/GenerateCSSPropertyID.cpp +++ b/Meta/Lagom/Tools/CodeGenerators/LibWeb/GenerateCSSPropertyID.cpp @@ -234,6 +234,7 @@ enum class PropertyID : @property_id_underlying_type@ { generator.set("first_inherited_longhand_property_id", title_casify(inherited_longhand_property_ids.first())); generator.set("last_inherited_longhand_property_id", title_casify(inherited_longhand_property_ids.last())); + // FIXME: property_accepts_{number,percentage}() has a different range from accepted_type_ranges() despite the names sounding similar. generator.append(R"~~~( }; @@ -923,44 +924,42 @@ AcceptedTypeRangeMap property_accepted_type_ranges(PropertyID property_id) StringBuilder ranges_builder; - // Opacity values are unique in that the range which calculated and interpolated values should be clamped - // to [0,1] is different from the range of allowed values [-∞,∞]. To handle this we set the allowed range - // in Properties.json to [-∞,∞] but overwrite it to [0,1] here. - // FIXME: This is confusing as property_accepts_{number,percentage}() has a different range from this - // despite the names sounding similar. - if (first_is_one_of(name, "opacity"sv, "fill-opacity"sv, "flood-opacity"sv, "stop-opacity"sv, "stroke-opacity"sv)) { - ranges_builder.append("{ ValueType::Number, { 0, 1 } }, { ValueType::Percentage, { 0, 100 } }"sv); - } else { - for (auto& type : valid_types.values()) { - VERIFY(type.is_string()); + for (auto& type : valid_types.values()) { + VERIFY(type.is_string()); - Vector type_parts = MUST(type.as_string().split(' ')); - - if (type_parts.size() < 2) - continue; - - auto type_name = type_parts.first(); - - if (type_name == "custom-ident") - continue; - - // Drop the brackets on the range e.g. "[-∞,∞]" -> "-∞,∞" - auto type_range = MUST(type_parts.get(1)->substring_from_byte_offset(1, type_parts.get(1)->byte_count() - 2)); - - auto limits = MUST(type_range.split(',')); - - if (limits.size() != 2) - VERIFY_NOT_REACHED(); - - // FIXME: Use min and max values for i32 instead of float where applicable (e.g. for "integer") - auto min = limits.get(0) == "-∞" ? "AK::NumericLimits::lowest()"_string : *limits.get(0); - auto max = limits.get(1) == "∞" ? "AK::NumericLimits::max()"_string : *limits.get(1); - - if (!ranges_builder.is_empty()) - ranges_builder.appendff(", "); - - ranges_builder.appendff("{{ ValueType::{}, {{ {}, {} }} }}", title_casify(type_name), min, max); + // Opacity values should have their calculated and interpolated values clamped to [0,1] which is + // different from the range of allowed values [-∞,∞]. + if (type.as_string() == "opacity"sv) { + ranges_builder.append("{ ValueType::Number, { 0, 1 } }, { ValueType::Percentage, { 0, 100 } }"sv); + continue; } + + Vector type_parts = MUST(type.as_string().split(' ')); + + if (type_parts.size() < 2) + continue; + + auto type_name = type_parts.first(); + + if (type_name == "custom-ident") + continue; + + // Drop the brackets on the range e.g. "[-∞,∞]" -> "-∞,∞" + auto type_range = MUST(type_parts.get(1)->substring_from_byte_offset(1, type_parts.get(1)->byte_count() - 2)); + + auto limits = MUST(type_range.split(',')); + + if (limits.size() != 2) + VERIFY_NOT_REACHED(); + + // FIXME: Use min and max values for i32 instead of float where applicable (e.g. for "integer") + auto min = limits.get(0) == "-∞" ? "AK::NumericLimits::lowest()"_string : *limits.get(0); + auto max = limits.get(1) == "∞" ? "AK::NumericLimits::max()"_string : *limits.get(1); + + if (!ranges_builder.is_empty()) + ranges_builder.appendff(", "); + + ranges_builder.appendff("{{ ValueType::{}, {{ {}, {} }} }}", title_casify(type_name), min, max); } property_generator.set("ranges", ranges_builder.to_string_without_validation()); From 9c7202e3f378b25231f8d3d916077d22de5f8a97 Mon Sep 17 00:00:00 2001 From: Callum Law Date: Fri, 17 Oct 2025 02:54:47 +1300 Subject: [PATCH 8/9] LibWeb: Parse the `shape-image-threshold` property --- Libraries/LibWeb/CSS/Properties.json | 9 + Libraries/LibWeb/CSS/StyleComputer.cpp | 1 + ...eclaration-has-indexed-property-getter.txt | 1 + ...upported-properties-and-default-values.txt | 2 + .../css/getComputedStyle-print-all.txt | 1 + .../css/css-cascade/all-prop-revert-layer.txt | 5 +- .../shape-image-threshold-interpolation.txt | 242 +++++++++--------- .../shape-image-threshold-computed.txt | 14 +- .../parsing/shape-image-threshold-valid.txt | 12 +- 9 files changed, 151 insertions(+), 136 deletions(-) diff --git a/Libraries/LibWeb/CSS/Properties.json b/Libraries/LibWeb/CSS/Properties.json index a57bcd094dc..e79b27f4f97 100644 --- a/Libraries/LibWeb/CSS/Properties.json +++ b/Libraries/LibWeb/CSS/Properties.json @@ -3445,6 +3445,15 @@ "none" ] }, + "shape-image-threshold": { + "affects-layout": false, + "animation-type": "by-computed-value", + "inherited": false, + "initial": "0", + "valid-types": [ + "opacity" + ] + }, "shape-outside": { "affects-layout": true, "animation-type": "by-computed-value", diff --git a/Libraries/LibWeb/CSS/StyleComputer.cpp b/Libraries/LibWeb/CSS/StyleComputer.cpp index 5b72c75183d..3e1abe00cb0 100644 --- a/Libraries/LibWeb/CSS/StyleComputer.cpp +++ b/Libraries/LibWeb/CSS/StyleComputer.cpp @@ -3254,6 +3254,7 @@ NonnullRefPtr StyleComputer::compute_value_of_property(Propert case PropertyID::Opacity: case PropertyID::StopOpacity: case PropertyID::StrokeOpacity: + case PropertyID::ShapeImageThreshold: return compute_opacity(absolutized_value); case PropertyID::PositionArea: return compute_position_area(absolutized_value); diff --git a/Tests/LibWeb/Text/expected/css/CSSStyleDeclaration-has-indexed-property-getter.txt b/Tests/LibWeb/Text/expected/css/CSSStyleDeclaration-has-indexed-property-getter.txt index 56255a19941..28f0212bfa9 100644 --- a/Tests/LibWeb/Text/expected/css/CSSStyleDeclaration-has-indexed-property-getter.txt +++ b/Tests/LibWeb/Text/expected/css/CSSStyleDeclaration-has-indexed-property-getter.txt @@ -260,6 +260,7 @@ All properties associated with getComputedStyle(document.body): "scrollbar-color", "scrollbar-gutter", "scrollbar-width", + "shape-image-threshold", "shape-outside", "stop-color", "stop-opacity", diff --git a/Tests/LibWeb/Text/expected/css/CSSStyleProperties-all-supported-properties-and-default-values.txt b/Tests/LibWeb/Text/expected/css/CSSStyleProperties-all-supported-properties-and-default-values.txt index 115945eb0f6..42af39ba9a0 100644 --- a/Tests/LibWeb/Text/expected/css/CSSStyleProperties-all-supported-properties-and-default-values.txt +++ b/Tests/LibWeb/Text/expected/css/CSSStyleProperties-all-supported-properties-and-default-values.txt @@ -697,6 +697,8 @@ All supported properties and their default values exposed from CSSStylePropertie 'scrollbar-gutter': 'auto' 'scrollbarWidth': 'auto' 'scrollbar-width': 'auto' +'shapeImageThreshold': '0' +'shape-image-threshold': '0' 'shapeOutside': 'none' 'shape-outside': 'none' 'shapeRendering': 'auto' diff --git a/Tests/LibWeb/Text/expected/css/getComputedStyle-print-all.txt b/Tests/LibWeb/Text/expected/css/getComputedStyle-print-all.txt index 6bf16cba31a..cb4bf84db28 100644 --- a/Tests/LibWeb/Text/expected/css/getComputedStyle-print-all.txt +++ b/Tests/LibWeb/Text/expected/css/getComputedStyle-print-all.txt @@ -258,6 +258,7 @@ scale: none scrollbar-color: auto scrollbar-gutter: auto scrollbar-width: auto +shape-image-threshold: 0 shape-outside: none stop-color: rgb(0, 0, 0) stop-opacity: 1 diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-cascade/all-prop-revert-layer.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-cascade/all-prop-revert-layer.txt index d904da3d3f3..12a12ddf7d5 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-cascade/all-prop-revert-layer.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-cascade/all-prop-revert-layer.txt @@ -1,8 +1,8 @@ Harness status: OK -Found 267 tests +Found 268 tests -261 Pass +262 Pass 6 Fail Pass accent-color Pass border-collapse @@ -242,6 +242,7 @@ Pass scale Pass scrollbar-color Pass scrollbar-gutter Pass scrollbar-width +Pass shape-image-threshold Pass shape-outside Pass stop-color Pass stop-opacity diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-image-threshold-interpolation.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-image-threshold-interpolation.txt index 1d04bf9100f..2d4bb563a72 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-image-threshold-interpolation.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-image-threshold-interpolation.txt @@ -2,124 +2,124 @@ Harness status: OK Found 120 tests -120 Fail -Fail CSS Transitions: property from neutral to [0.8] at (-1.5) should be [0.3] -Fail CSS Transitions: property from neutral to [0.8] at (-0.5) should be [0.5] -Fail CSS Transitions: property from neutral to [0.8] at (0) should be [0.6] -Fail CSS Transitions: property from neutral to [0.8] at (0.5) should be [0.7] -Fail CSS Transitions: property from neutral to [0.8] at (1) should be [0.8] -Fail CSS Transitions: property from neutral to [0.8] at (1.5) should be [0.9] -Fail CSS Transitions with transition: all: property from neutral to [0.8] at (-1.5) should be [0.3] -Fail CSS Transitions with transition: all: property from neutral to [0.8] at (-0.5) should be [0.5] -Fail CSS Transitions with transition: all: property from neutral to [0.8] at (0) should be [0.6] -Fail CSS Transitions with transition: all: property from neutral to [0.8] at (0.5) should be [0.7] -Fail CSS Transitions with transition: all: property from neutral to [0.8] at (1) should be [0.8] -Fail CSS Transitions with transition: all: property from neutral to [0.8] at (1.5) should be [0.9] -Fail CSS Animations: property from neutral to [0.8] at (-1.5) should be [0.3] -Fail CSS Animations: property from neutral to [0.8] at (-0.5) should be [0.5] -Fail CSS Animations: property from neutral to [0.8] at (0) should be [0.6] -Fail CSS Animations: property from neutral to [0.8] at (0.5) should be [0.7] -Fail CSS Animations: property from neutral to [0.8] at (1) should be [0.8] -Fail CSS Animations: property from neutral to [0.8] at (1.5) should be [0.9] -Fail Web Animations: property from neutral to [0.8] at (-1.5) should be [0.3] -Fail Web Animations: property from neutral to [0.8] at (-0.5) should be [0.5] -Fail Web Animations: property from neutral to [0.8] at (0) should be [0.6] -Fail Web Animations: property from neutral to [0.8] at (0.5) should be [0.7] -Fail Web Animations: property from neutral to [0.8] at (1) should be [0.8] -Fail Web Animations: property from neutral to [0.8] at (1.5) should be [0.9] -Fail CSS Transitions: property from [initial] to [0.8] at (-1.5) should be [0] -Fail CSS Transitions: property from [initial] to [0.8] at (-0.5) should be [0] -Fail CSS Transitions: property from [initial] to [0.8] at (0) should be [0] -Fail CSS Transitions: property from [initial] to [0.8] at (0.5) should be [0.4] -Fail CSS Transitions: property from [initial] to [0.8] at (1) should be [0.8] -Fail CSS Transitions: property from [initial] to [0.8] at (1.5) should be [1] -Fail CSS Transitions with transition: all: property from [initial] to [0.8] at (-1.5) should be [0] -Fail CSS Transitions with transition: all: property from [initial] to [0.8] at (-0.5) should be [0] -Fail CSS Transitions with transition: all: property from [initial] to [0.8] at (0) should be [0] -Fail CSS Transitions with transition: all: property from [initial] to [0.8] at (0.5) should be [0.4] -Fail CSS Transitions with transition: all: property from [initial] to [0.8] at (1) should be [0.8] -Fail CSS Transitions with transition: all: property from [initial] to [0.8] at (1.5) should be [1] -Fail CSS Animations: property from [initial] to [0.8] at (-1.5) should be [0] -Fail CSS Animations: property from [initial] to [0.8] at (-0.5) should be [0] -Fail CSS Animations: property from [initial] to [0.8] at (0) should be [0] -Fail CSS Animations: property from [initial] to [0.8] at (0.5) should be [0.4] -Fail CSS Animations: property from [initial] to [0.8] at (1) should be [0.8] -Fail CSS Animations: property from [initial] to [0.8] at (1.5) should be [1] -Fail Web Animations: property from [initial] to [0.8] at (-1.5) should be [0] -Fail Web Animations: property from [initial] to [0.8] at (-0.5) should be [0] -Fail Web Animations: property from [initial] to [0.8] at (0) should be [0] -Fail Web Animations: property from [initial] to [0.8] at (0.5) should be [0.4] -Fail Web Animations: property from [initial] to [0.8] at (1) should be [0.8] -Fail Web Animations: property from [initial] to [0.8] at (1.5) should be [1] -Fail CSS Transitions: property from [inherit] to [0.8] at (-1.5) should be [0] -Fail CSS Transitions: property from [inherit] to [0.8] at (-0.5) should be [0.2] -Fail CSS Transitions: property from [inherit] to [0.8] at (0) should be [0.4] -Fail CSS Transitions: property from [inherit] to [0.8] at (0.5) should be [0.6] -Fail CSS Transitions: property from [inherit] to [0.8] at (1) should be [0.8] -Fail CSS Transitions: property from [inherit] to [0.8] at (1.5) should be [1] -Fail CSS Transitions with transition: all: property from [inherit] to [0.8] at (-1.5) should be [0] -Fail CSS Transitions with transition: all: property from [inherit] to [0.8] at (-0.5) should be [0.2] -Fail CSS Transitions with transition: all: property from [inherit] to [0.8] at (0) should be [0.4] -Fail CSS Transitions with transition: all: property from [inherit] to [0.8] at (0.5) should be [0.6] -Fail CSS Transitions with transition: all: property from [inherit] to [0.8] at (1) should be [0.8] -Fail CSS Transitions with transition: all: property from [inherit] to [0.8] at (1.5) should be [1] -Fail CSS Animations: property from [inherit] to [0.8] at (-1.5) should be [0] -Fail CSS Animations: property from [inherit] to [0.8] at (-0.5) should be [0.2] -Fail CSS Animations: property from [inherit] to [0.8] at (0) should be [0.4] -Fail CSS Animations: property from [inherit] to [0.8] at (0.5) should be [0.6] -Fail CSS Animations: property from [inherit] to [0.8] at (1) should be [0.8] -Fail CSS Animations: property from [inherit] to [0.8] at (1.5) should be [1] -Fail Web Animations: property from [inherit] to [0.8] at (-1.5) should be [0] -Fail Web Animations: property from [inherit] to [0.8] at (-0.5) should be [0.2] -Fail Web Animations: property from [inherit] to [0.8] at (0) should be [0.4] -Fail Web Animations: property from [inherit] to [0.8] at (0.5) should be [0.6] -Fail Web Animations: property from [inherit] to [0.8] at (1) should be [0.8] -Fail Web Animations: property from [inherit] to [0.8] at (1.5) should be [1] -Fail CSS Transitions: property from [unset] to [0.8] at (-1.5) should be [0] -Fail CSS Transitions: property from [unset] to [0.8] at (-0.5) should be [0] -Fail CSS Transitions: property from [unset] to [0.8] at (0) should be [0] -Fail CSS Transitions: property from [unset] to [0.8] at (0.5) should be [0.4] -Fail CSS Transitions: property from [unset] to [0.8] at (1) should be [0.8] -Fail CSS Transitions: property from [unset] to [0.8] at (1.5) should be [1] -Fail CSS Transitions with transition: all: property from [unset] to [0.8] at (-1.5) should be [0] -Fail CSS Transitions with transition: all: property from [unset] to [0.8] at (-0.5) should be [0] -Fail CSS Transitions with transition: all: property from [unset] to [0.8] at (0) should be [0] -Fail CSS Transitions with transition: all: property from [unset] to [0.8] at (0.5) should be [0.4] -Fail CSS Transitions with transition: all: property from [unset] to [0.8] at (1) should be [0.8] -Fail CSS Transitions with transition: all: property from [unset] to [0.8] at (1.5) should be [1] -Fail CSS Animations: property from [unset] to [0.8] at (-1.5) should be [0] -Fail CSS Animations: property from [unset] to [0.8] at (-0.5) should be [0] -Fail CSS Animations: property from [unset] to [0.8] at (0) should be [0] -Fail CSS Animations: property from [unset] to [0.8] at (0.5) should be [0.4] -Fail CSS Animations: property from [unset] to [0.8] at (1) should be [0.8] -Fail CSS Animations: property from [unset] to [0.8] at (1.5) should be [1] -Fail Web Animations: property from [unset] to [0.8] at (-1.5) should be [0] -Fail Web Animations: property from [unset] to [0.8] at (-0.5) should be [0] -Fail Web Animations: property from [unset] to [0.8] at (0) should be [0] -Fail Web Animations: property from [unset] to [0.8] at (0.5) should be [0.4] -Fail Web Animations: property from [unset] to [0.8] at (1) should be [0.8] -Fail Web Animations: property from [unset] to [0.8] at (1.5) should be [1] -Fail CSS Transitions: property from [0.5] to [1] at (-1.5) should be [0] -Fail CSS Transitions: property from [0.5] to [1] at (-0.5) should be [0.25] -Fail CSS Transitions: property from [0.5] to [1] at (0) should be [0.5] -Fail CSS Transitions: property from [0.5] to [1] at (0.5) should be [0.75] -Fail CSS Transitions: property from [0.5] to [1] at (1) should be [1] -Fail CSS Transitions: property from [0.5] to [1] at (1.5) should be [1] -Fail CSS Transitions with transition: all: property from [0.5] to [1] at (-1.5) should be [0] -Fail CSS Transitions with transition: all: property from [0.5] to [1] at (-0.5) should be [0.25] -Fail CSS Transitions with transition: all: property from [0.5] to [1] at (0) should be [0.5] -Fail CSS Transitions with transition: all: property from [0.5] to [1] at (0.5) should be [0.75] -Fail CSS Transitions with transition: all: property from [0.5] to [1] at (1) should be [1] -Fail CSS Transitions with transition: all: property from [0.5] to [1] at (1.5) should be [1] -Fail CSS Animations: property from [0.5] to [1] at (-1.5) should be [0] -Fail CSS Animations: property from [0.5] to [1] at (-0.5) should be [0.25] -Fail CSS Animations: property from [0.5] to [1] at (0) should be [0.5] -Fail CSS Animations: property from [0.5] to [1] at (0.5) should be [0.75] -Fail CSS Animations: property from [0.5] to [1] at (1) should be [1] -Fail CSS Animations: property from [0.5] to [1] at (1.5) should be [1] -Fail Web Animations: property from [0.5] to [1] at (-1.5) should be [0] -Fail Web Animations: property from [0.5] to [1] at (-0.5) should be [0.25] -Fail Web Animations: property from [0.5] to [1] at (0) should be [0.5] -Fail Web Animations: property from [0.5] to [1] at (0.5) should be [0.75] -Fail Web Animations: property from [0.5] to [1] at (1) should be [1] -Fail Web Animations: property from [0.5] to [1] at (1.5) should be [1] \ No newline at end of file +120 Pass +Pass CSS Transitions: property from neutral to [0.8] at (-1.5) should be [0.3] +Pass CSS Transitions: property from neutral to [0.8] at (-0.5) should be [0.5] +Pass CSS Transitions: property from neutral to [0.8] at (0) should be [0.6] +Pass CSS Transitions: property from neutral to [0.8] at (0.5) should be [0.7] +Pass CSS Transitions: property from neutral to [0.8] at (1) should be [0.8] +Pass CSS Transitions: property from neutral to [0.8] at (1.5) should be [0.9] +Pass CSS Transitions with transition: all: property from neutral to [0.8] at (-1.5) should be [0.3] +Pass CSS Transitions with transition: all: property from neutral to [0.8] at (-0.5) should be [0.5] +Pass CSS Transitions with transition: all: property from neutral to [0.8] at (0) should be [0.6] +Pass CSS Transitions with transition: all: property from neutral to [0.8] at (0.5) should be [0.7] +Pass CSS Transitions with transition: all: property from neutral to [0.8] at (1) should be [0.8] +Pass CSS Transitions with transition: all: property from neutral to [0.8] at (1.5) should be [0.9] +Pass CSS Animations: property from neutral to [0.8] at (-1.5) should be [0.3] +Pass CSS Animations: property from neutral to [0.8] at (-0.5) should be [0.5] +Pass CSS Animations: property from neutral to [0.8] at (0) should be [0.6] +Pass CSS Animations: property from neutral to [0.8] at (0.5) should be [0.7] +Pass CSS Animations: property from neutral to [0.8] at (1) should be [0.8] +Pass CSS Animations: property from neutral to [0.8] at (1.5) should be [0.9] +Pass Web Animations: property from neutral to [0.8] at (-1.5) should be [0.3] +Pass Web Animations: property from neutral to [0.8] at (-0.5) should be [0.5] +Pass Web Animations: property from neutral to [0.8] at (0) should be [0.6] +Pass Web Animations: property from neutral to [0.8] at (0.5) should be [0.7] +Pass Web Animations: property from neutral to [0.8] at (1) should be [0.8] +Pass Web Animations: property from neutral to [0.8] at (1.5) should be [0.9] +Pass CSS Transitions: property from [initial] to [0.8] at (-1.5) should be [0] +Pass CSS Transitions: property from [initial] to [0.8] at (-0.5) should be [0] +Pass CSS Transitions: property from [initial] to [0.8] at (0) should be [0] +Pass CSS Transitions: property from [initial] to [0.8] at (0.5) should be [0.4] +Pass CSS Transitions: property from [initial] to [0.8] at (1) should be [0.8] +Pass CSS Transitions: property from [initial] to [0.8] at (1.5) should be [1] +Pass CSS Transitions with transition: all: property from [initial] to [0.8] at (-1.5) should be [0] +Pass CSS Transitions with transition: all: property from [initial] to [0.8] at (-0.5) should be [0] +Pass CSS Transitions with transition: all: property from [initial] to [0.8] at (0) should be [0] +Pass CSS Transitions with transition: all: property from [initial] to [0.8] at (0.5) should be [0.4] +Pass CSS Transitions with transition: all: property from [initial] to [0.8] at (1) should be [0.8] +Pass CSS Transitions with transition: all: property from [initial] to [0.8] at (1.5) should be [1] +Pass CSS Animations: property from [initial] to [0.8] at (-1.5) should be [0] +Pass CSS Animations: property from [initial] to [0.8] at (-0.5) should be [0] +Pass CSS Animations: property from [initial] to [0.8] at (0) should be [0] +Pass CSS Animations: property from [initial] to [0.8] at (0.5) should be [0.4] +Pass CSS Animations: property from [initial] to [0.8] at (1) should be [0.8] +Pass CSS Animations: property from [initial] to [0.8] at (1.5) should be [1] +Pass Web Animations: property from [initial] to [0.8] at (-1.5) should be [0] +Pass Web Animations: property from [initial] to [0.8] at (-0.5) should be [0] +Pass Web Animations: property from [initial] to [0.8] at (0) should be [0] +Pass Web Animations: property from [initial] to [0.8] at (0.5) should be [0.4] +Pass Web Animations: property from [initial] to [0.8] at (1) should be [0.8] +Pass Web Animations: property from [initial] to [0.8] at (1.5) should be [1] +Pass CSS Transitions: property from [inherit] to [0.8] at (-1.5) should be [0] +Pass CSS Transitions: property from [inherit] to [0.8] at (-0.5) should be [0.2] +Pass CSS Transitions: property from [inherit] to [0.8] at (0) should be [0.4] +Pass CSS Transitions: property from [inherit] to [0.8] at (0.5) should be [0.6] +Pass CSS Transitions: property from [inherit] to [0.8] at (1) should be [0.8] +Pass CSS Transitions: property from [inherit] to [0.8] at (1.5) should be [1] +Pass CSS Transitions with transition: all: property from [inherit] to [0.8] at (-1.5) should be [0] +Pass CSS Transitions with transition: all: property from [inherit] to [0.8] at (-0.5) should be [0.2] +Pass CSS Transitions with transition: all: property from [inherit] to [0.8] at (0) should be [0.4] +Pass CSS Transitions with transition: all: property from [inherit] to [0.8] at (0.5) should be [0.6] +Pass CSS Transitions with transition: all: property from [inherit] to [0.8] at (1) should be [0.8] +Pass CSS Transitions with transition: all: property from [inherit] to [0.8] at (1.5) should be [1] +Pass CSS Animations: property from [inherit] to [0.8] at (-1.5) should be [0] +Pass CSS Animations: property from [inherit] to [0.8] at (-0.5) should be [0.2] +Pass CSS Animations: property from [inherit] to [0.8] at (0) should be [0.4] +Pass CSS Animations: property from [inherit] to [0.8] at (0.5) should be [0.6] +Pass CSS Animations: property from [inherit] to [0.8] at (1) should be [0.8] +Pass CSS Animations: property from [inherit] to [0.8] at (1.5) should be [1] +Pass Web Animations: property from [inherit] to [0.8] at (-1.5) should be [0] +Pass Web Animations: property from [inherit] to [0.8] at (-0.5) should be [0.2] +Pass Web Animations: property from [inherit] to [0.8] at (0) should be [0.4] +Pass Web Animations: property from [inherit] to [0.8] at (0.5) should be [0.6] +Pass Web Animations: property from [inherit] to [0.8] at (1) should be [0.8] +Pass Web Animations: property from [inherit] to [0.8] at (1.5) should be [1] +Pass CSS Transitions: property from [unset] to [0.8] at (-1.5) should be [0] +Pass CSS Transitions: property from [unset] to [0.8] at (-0.5) should be [0] +Pass CSS Transitions: property from [unset] to [0.8] at (0) should be [0] +Pass CSS Transitions: property from [unset] to [0.8] at (0.5) should be [0.4] +Pass CSS Transitions: property from [unset] to [0.8] at (1) should be [0.8] +Pass CSS Transitions: property from [unset] to [0.8] at (1.5) should be [1] +Pass CSS Transitions with transition: all: property from [unset] to [0.8] at (-1.5) should be [0] +Pass CSS Transitions with transition: all: property from [unset] to [0.8] at (-0.5) should be [0] +Pass CSS Transitions with transition: all: property from [unset] to [0.8] at (0) should be [0] +Pass CSS Transitions with transition: all: property from [unset] to [0.8] at (0.5) should be [0.4] +Pass CSS Transitions with transition: all: property from [unset] to [0.8] at (1) should be [0.8] +Pass CSS Transitions with transition: all: property from [unset] to [0.8] at (1.5) should be [1] +Pass CSS Animations: property from [unset] to [0.8] at (-1.5) should be [0] +Pass CSS Animations: property from [unset] to [0.8] at (-0.5) should be [0] +Pass CSS Animations: property from [unset] to [0.8] at (0) should be [0] +Pass CSS Animations: property from [unset] to [0.8] at (0.5) should be [0.4] +Pass CSS Animations: property from [unset] to [0.8] at (1) should be [0.8] +Pass CSS Animations: property from [unset] to [0.8] at (1.5) should be [1] +Pass Web Animations: property from [unset] to [0.8] at (-1.5) should be [0] +Pass Web Animations: property from [unset] to [0.8] at (-0.5) should be [0] +Pass Web Animations: property from [unset] to [0.8] at (0) should be [0] +Pass Web Animations: property from [unset] to [0.8] at (0.5) should be [0.4] +Pass Web Animations: property from [unset] to [0.8] at (1) should be [0.8] +Pass Web Animations: property from [unset] to [0.8] at (1.5) should be [1] +Pass CSS Transitions: property from [0.5] to [1] at (-1.5) should be [0] +Pass CSS Transitions: property from [0.5] to [1] at (-0.5) should be [0.25] +Pass CSS Transitions: property from [0.5] to [1] at (0) should be [0.5] +Pass CSS Transitions: property from [0.5] to [1] at (0.5) should be [0.75] +Pass CSS Transitions: property from [0.5] to [1] at (1) should be [1] +Pass CSS Transitions: property from [0.5] to [1] at (1.5) should be [1] +Pass CSS Transitions with transition: all: property from [0.5] to [1] at (-1.5) should be [0] +Pass CSS Transitions with transition: all: property from [0.5] to [1] at (-0.5) should be [0.25] +Pass CSS Transitions with transition: all: property from [0.5] to [1] at (0) should be [0.5] +Pass CSS Transitions with transition: all: property from [0.5] to [1] at (0.5) should be [0.75] +Pass CSS Transitions with transition: all: property from [0.5] to [1] at (1) should be [1] +Pass CSS Transitions with transition: all: property from [0.5] to [1] at (1.5) should be [1] +Pass CSS Animations: property from [0.5] to [1] at (-1.5) should be [0] +Pass CSS Animations: property from [0.5] to [1] at (-0.5) should be [0.25] +Pass CSS Animations: property from [0.5] to [1] at (0) should be [0.5] +Pass CSS Animations: property from [0.5] to [1] at (0.5) should be [0.75] +Pass CSS Animations: property from [0.5] to [1] at (1) should be [1] +Pass CSS Animations: property from [0.5] to [1] at (1.5) should be [1] +Pass Web Animations: property from [0.5] to [1] at (-1.5) should be [0] +Pass Web Animations: property from [0.5] to [1] at (-0.5) should be [0.25] +Pass Web Animations: property from [0.5] to [1] at (0) should be [0.5] +Pass Web Animations: property from [0.5] to [1] at (0.5) should be [0.75] +Pass Web Animations: property from [0.5] to [1] at (1) should be [1] +Pass Web Animations: property from [0.5] to [1] at (1.5) should be [1] \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-image-threshold-computed.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-image-threshold-computed.txt index 944aa52572b..d6e4492c818 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-image-threshold-computed.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-image-threshold-computed.txt @@ -2,10 +2,10 @@ Harness status: OK Found 6 tests -6 Fail -Fail Property shape-image-threshold value '-7' -Fail Property shape-image-threshold value '0.5' -Fail Property shape-image-threshold value '12.5' -Fail Property shape-image-threshold value '-100%' -Fail Property shape-image-threshold value '50%' -Fail Property shape-image-threshold value '300%' \ No newline at end of file +6 Pass +Pass Property shape-image-threshold value '-7' +Pass Property shape-image-threshold value '0.5' +Pass Property shape-image-threshold value '12.5' +Pass Property shape-image-threshold value '-100%' +Pass Property shape-image-threshold value '50%' +Pass Property shape-image-threshold value '300%' \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-image-threshold-valid.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-image-threshold-valid.txt index eb40b7ea8bf..d61e1f8b3ea 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-image-threshold-valid.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-image-threshold-valid.txt @@ -2,9 +2,9 @@ Harness status: OK Found 5 tests -5 Fail -Fail e.style['shape-image-threshold'] = "12.5" should set the property value -Fail e.style['shape-image-threshold'] = "-7" should set the property value -Fail e.style['shape-image-threshold'] = "-100%" should set the property value -Fail e.style['shape-image-threshold'] = "50%" should set the property value -Fail e.style['shape-image-threshold'] = "300%" should set the property value \ No newline at end of file +5 Pass +Pass e.style['shape-image-threshold'] = "12.5" should set the property value +Pass e.style['shape-image-threshold'] = "-7" should set the property value +Pass e.style['shape-image-threshold'] = "-100%" should set the property value +Pass e.style['shape-image-threshold'] = "50%" should set the property value +Pass e.style['shape-image-threshold'] = "300%" should set the property value \ No newline at end of file From 1a3635cda573bea2f2fcb190d3a4d536964b59cd Mon Sep 17 00:00:00 2001 From: Callum Law Date: Fri, 17 Oct 2025 03:28:07 +1300 Subject: [PATCH 9/9] LibWeb: Parse the `shape-margin` property --- Libraries/LibWeb/CSS/Properties.json | 10 + ...eclaration-has-indexed-property-getter.txt | 1 + ...upported-properties-and-default-values.txt | 2 + .../css/getComputedStyle-print-all.txt | 1 + .../css/css-cascade/all-prop-revert-layer.txt | 5 +- .../animation/shape-margin-composition.txt | 35 +-- .../animation/shape-margin-interpolation.txt | 242 +++++++++--------- .../parsing/shape-margin-computed.txt | 8 +- .../css-shapes/parsing/shape-margin-valid.txt | 10 +- 9 files changed, 165 insertions(+), 149 deletions(-) diff --git a/Libraries/LibWeb/CSS/Properties.json b/Libraries/LibWeb/CSS/Properties.json index e79b27f4f97..a8aae1d6395 100644 --- a/Libraries/LibWeb/CSS/Properties.json +++ b/Libraries/LibWeb/CSS/Properties.json @@ -3454,6 +3454,16 @@ "opacity" ] }, + "shape-margin": { + "animation-type": "by-computed-value", + "inherited": false, + "initial": "0", + "valid-types": [ + "length [0,∞]", + "percentage [0,∞]" + ], + "percentages-resolve-to": "length" + }, "shape-outside": { "affects-layout": true, "animation-type": "by-computed-value", diff --git a/Tests/LibWeb/Text/expected/css/CSSStyleDeclaration-has-indexed-property-getter.txt b/Tests/LibWeb/Text/expected/css/CSSStyleDeclaration-has-indexed-property-getter.txt index 28f0212bfa9..1eee28bd9f6 100644 --- a/Tests/LibWeb/Text/expected/css/CSSStyleDeclaration-has-indexed-property-getter.txt +++ b/Tests/LibWeb/Text/expected/css/CSSStyleDeclaration-has-indexed-property-getter.txt @@ -261,6 +261,7 @@ All properties associated with getComputedStyle(document.body): "scrollbar-gutter", "scrollbar-width", "shape-image-threshold", + "shape-margin", "shape-outside", "stop-color", "stop-opacity", diff --git a/Tests/LibWeb/Text/expected/css/CSSStyleProperties-all-supported-properties-and-default-values.txt b/Tests/LibWeb/Text/expected/css/CSSStyleProperties-all-supported-properties-and-default-values.txt index 42af39ba9a0..847010e64dc 100644 --- a/Tests/LibWeb/Text/expected/css/CSSStyleProperties-all-supported-properties-and-default-values.txt +++ b/Tests/LibWeb/Text/expected/css/CSSStyleProperties-all-supported-properties-and-default-values.txt @@ -699,6 +699,8 @@ All supported properties and their default values exposed from CSSStylePropertie 'scrollbar-width': 'auto' 'shapeImageThreshold': '0' 'shape-image-threshold': '0' +'shapeMargin': '0px' +'shape-margin': '0px' 'shapeOutside': 'none' 'shape-outside': 'none' 'shapeRendering': 'auto' diff --git a/Tests/LibWeb/Text/expected/css/getComputedStyle-print-all.txt b/Tests/LibWeb/Text/expected/css/getComputedStyle-print-all.txt index cb4bf84db28..adbc649d9c5 100644 --- a/Tests/LibWeb/Text/expected/css/getComputedStyle-print-all.txt +++ b/Tests/LibWeb/Text/expected/css/getComputedStyle-print-all.txt @@ -259,6 +259,7 @@ scrollbar-color: auto scrollbar-gutter: auto scrollbar-width: auto shape-image-threshold: 0 +shape-margin: 0px shape-outside: none stop-color: rgb(0, 0, 0) stop-opacity: 1 diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-cascade/all-prop-revert-layer.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-cascade/all-prop-revert-layer.txt index 12a12ddf7d5..c066f1b75e0 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-cascade/all-prop-revert-layer.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-cascade/all-prop-revert-layer.txt @@ -1,8 +1,8 @@ Harness status: OK -Found 268 tests +Found 269 tests -262 Pass +263 Pass 6 Fail Pass accent-color Pass border-collapse @@ -243,6 +243,7 @@ Pass scrollbar-color Pass scrollbar-gutter Pass scrollbar-width Pass shape-image-threshold +Pass shape-margin Pass shape-outside Pass stop-color Pass stop-opacity diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-margin-composition.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-margin-composition.txt index c5a82fad1c3..137ec8f4890 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-margin-composition.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-margin-composition.txt @@ -2,24 +2,25 @@ Harness status: OK Found 20 tests -20 Fail -Fail Compositing: property underlying [50px] from add [100px] to add [200px] at (-0.3) should be [120px] -Fail Compositing: property underlying [50px] from add [100px] to add [200px] at (0) should be [150px] -Fail Compositing: property underlying [50px] from add [100px] to add [200px] at (0.5) should be [200px] -Fail Compositing: property underlying [50px] from add [100px] to add [200px] at (1) should be [250px] -Fail Compositing: property underlying [50px] from add [100px] to add [200px] at (1.5) should be [300px] -Fail Compositing: property underlying [100px] from add [10px] to add [2px] at (-0.5) should be [114px] -Fail Compositing: property underlying [100px] from add [10px] to add [2px] at (0) should be [110px] -Fail Compositing: property underlying [100px] from add [10px] to add [2px] at (0.5) should be [106px] -Fail Compositing: property underlying [100px] from add [10px] to add [2px] at (1) should be [102px] -Fail Compositing: property underlying [100px] from add [10px] to add [2px] at (1.5) should be [98px] +16 Pass +4 Fail +Pass Compositing: property underlying [50px] from add [100px] to add [200px] at (-0.3) should be [120px] +Pass Compositing: property underlying [50px] from add [100px] to add [200px] at (0) should be [150px] +Pass Compositing: property underlying [50px] from add [100px] to add [200px] at (0.5) should be [200px] +Pass Compositing: property underlying [50px] from add [100px] to add [200px] at (1) should be [250px] +Pass Compositing: property underlying [50px] from add [100px] to add [200px] at (1.5) should be [300px] +Pass Compositing: property underlying [100px] from add [10px] to add [2px] at (-0.5) should be [114px] +Pass Compositing: property underlying [100px] from add [10px] to add [2px] at (0) should be [110px] +Pass Compositing: property underlying [100px] from add [10px] to add [2px] at (0.5) should be [106px] +Pass Compositing: property underlying [100px] from add [10px] to add [2px] at (1) should be [102px] +Pass Compositing: property underlying [100px] from add [10px] to add [2px] at (1.5) should be [98px] Fail Compositing: property underlying [10%] from add [100px] to add [20%] at (-0.3) should be [calc(130px + 4%)] Fail Compositing: property underlying [10%] from add [100px] to add [20%] at (0) should be [calc(100px + 10%)] Fail Compositing: property underlying [10%] from add [100px] to add [20%] at (0.5) should be [calc(50px + 20%)] -Fail Compositing: property underlying [10%] from add [100px] to add [20%] at (1) should be [30%] +Pass Compositing: property underlying [10%] from add [100px] to add [20%] at (1) should be [30%] Fail Compositing: property underlying [10%] from add [100px] to add [20%] at (1.5) should be [calc(-50px + 40%)] -Fail Compositing: property underlying [50px] from add [100px] to replace [200px] at (-0.3) should be [135px] -Fail Compositing: property underlying [50px] from add [100px] to replace [200px] at (0) should be [150px] -Fail Compositing: property underlying [50px] from add [100px] to replace [200px] at (0.5) should be [175px] -Fail Compositing: property underlying [50px] from add [100px] to replace [200px] at (1) should be [200px] -Fail Compositing: property underlying [50px] from add [100px] to replace [200px] at (1.5) should be [225px] \ No newline at end of file +Pass Compositing: property underlying [50px] from add [100px] to replace [200px] at (-0.3) should be [135px] +Pass Compositing: property underlying [50px] from add [100px] to replace [200px] at (0) should be [150px] +Pass Compositing: property underlying [50px] from add [100px] to replace [200px] at (0.5) should be [175px] +Pass Compositing: property underlying [50px] from add [100px] to replace [200px] at (1) should be [200px] +Pass Compositing: property underlying [50px] from add [100px] to replace [200px] at (1.5) should be [225px] \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-margin-interpolation.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-margin-interpolation.txt index 1ee035fb1fc..cebf4da7950 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-margin-interpolation.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/animation/shape-margin-interpolation.txt @@ -2,124 +2,124 @@ Harness status: OK Found 120 tests -120 Fail -Fail CSS Transitions: property from neutral to [20px] at (-0.3) should be [7px] -Fail CSS Transitions: property from neutral to [20px] at (0) should be [10px] -Fail CSS Transitions: property from neutral to [20px] at (0.3) should be [13px] -Fail CSS Transitions: property from neutral to [20px] at (0.6) should be [16px] -Fail CSS Transitions: property from neutral to [20px] at (1) should be [20px] -Fail CSS Transitions: property from neutral to [20px] at (1.5) should be [25px] -Fail CSS Transitions with transition: all: property from neutral to [20px] at (-0.3) should be [7px] -Fail CSS Transitions with transition: all: property from neutral to [20px] at (0) should be [10px] -Fail CSS Transitions with transition: all: property from neutral to [20px] at (0.3) should be [13px] -Fail CSS Transitions with transition: all: property from neutral to [20px] at (0.6) should be [16px] -Fail CSS Transitions with transition: all: property from neutral to [20px] at (1) should be [20px] -Fail CSS Transitions with transition: all: property from neutral to [20px] at (1.5) should be [25px] -Fail CSS Animations: property from neutral to [20px] at (-0.3) should be [7px] -Fail CSS Animations: property from neutral to [20px] at (0) should be [10px] -Fail CSS Animations: property from neutral to [20px] at (0.3) should be [13px] -Fail CSS Animations: property from neutral to [20px] at (0.6) should be [16px] -Fail CSS Animations: property from neutral to [20px] at (1) should be [20px] -Fail CSS Animations: property from neutral to [20px] at (1.5) should be [25px] -Fail Web Animations: property from neutral to [20px] at (-0.3) should be [7px] -Fail Web Animations: property from neutral to [20px] at (0) should be [10px] -Fail Web Animations: property from neutral to [20px] at (0.3) should be [13px] -Fail Web Animations: property from neutral to [20px] at (0.6) should be [16px] -Fail Web Animations: property from neutral to [20px] at (1) should be [20px] -Fail Web Animations: property from neutral to [20px] at (1.5) should be [25px] -Fail CSS Transitions: property from [initial] to [20px] at (-0.3) should be [0px] -Fail CSS Transitions: property from [initial] to [20px] at (0) should be [0px] -Fail CSS Transitions: property from [initial] to [20px] at (0.3) should be [6px] -Fail CSS Transitions: property from [initial] to [20px] at (0.6) should be [12px] -Fail CSS Transitions: property from [initial] to [20px] at (1) should be [20px] -Fail CSS Transitions: property from [initial] to [20px] at (1.5) should be [30px] -Fail CSS Transitions with transition: all: property from [initial] to [20px] at (-0.3) should be [0px] -Fail CSS Transitions with transition: all: property from [initial] to [20px] at (0) should be [0px] -Fail CSS Transitions with transition: all: property from [initial] to [20px] at (0.3) should be [6px] -Fail CSS Transitions with transition: all: property from [initial] to [20px] at (0.6) should be [12px] -Fail CSS Transitions with transition: all: property from [initial] to [20px] at (1) should be [20px] -Fail CSS Transitions with transition: all: property from [initial] to [20px] at (1.5) should be [30px] -Fail CSS Animations: property from [initial] to [20px] at (-0.3) should be [0px] -Fail CSS Animations: property from [initial] to [20px] at (0) should be [0px] -Fail CSS Animations: property from [initial] to [20px] at (0.3) should be [6px] -Fail CSS Animations: property from [initial] to [20px] at (0.6) should be [12px] -Fail CSS Animations: property from [initial] to [20px] at (1) should be [20px] -Fail CSS Animations: property from [initial] to [20px] at (1.5) should be [30px] -Fail Web Animations: property from [initial] to [20px] at (-0.3) should be [0px] -Fail Web Animations: property from [initial] to [20px] at (0) should be [0px] -Fail Web Animations: property from [initial] to [20px] at (0.3) should be [6px] -Fail Web Animations: property from [initial] to [20px] at (0.6) should be [12px] -Fail Web Animations: property from [initial] to [20px] at (1) should be [20px] -Fail Web Animations: property from [initial] to [20px] at (1.5) should be [30px] -Fail CSS Transitions: property from [inherit] to [20px] at (-0.3) should be [33px] -Fail CSS Transitions: property from [inherit] to [20px] at (0) should be [30px] -Fail CSS Transitions: property from [inherit] to [20px] at (0.3) should be [27px] -Fail CSS Transitions: property from [inherit] to [20px] at (0.6) should be [24px] -Fail CSS Transitions: property from [inherit] to [20px] at (1) should be [20px] -Fail CSS Transitions: property from [inherit] to [20px] at (1.5) should be [15px] -Fail CSS Transitions with transition: all: property from [inherit] to [20px] at (-0.3) should be [33px] -Fail CSS Transitions with transition: all: property from [inherit] to [20px] at (0) should be [30px] -Fail CSS Transitions with transition: all: property from [inherit] to [20px] at (0.3) should be [27px] -Fail CSS Transitions with transition: all: property from [inherit] to [20px] at (0.6) should be [24px] -Fail CSS Transitions with transition: all: property from [inherit] to [20px] at (1) should be [20px] -Fail CSS Transitions with transition: all: property from [inherit] to [20px] at (1.5) should be [15px] -Fail CSS Animations: property from [inherit] to [20px] at (-0.3) should be [33px] -Fail CSS Animations: property from [inherit] to [20px] at (0) should be [30px] -Fail CSS Animations: property from [inherit] to [20px] at (0.3) should be [27px] -Fail CSS Animations: property from [inherit] to [20px] at (0.6) should be [24px] -Fail CSS Animations: property from [inherit] to [20px] at (1) should be [20px] -Fail CSS Animations: property from [inherit] to [20px] at (1.5) should be [15px] -Fail Web Animations: property from [inherit] to [20px] at (-0.3) should be [33px] -Fail Web Animations: property from [inherit] to [20px] at (0) should be [30px] -Fail Web Animations: property from [inherit] to [20px] at (0.3) should be [27px] -Fail Web Animations: property from [inherit] to [20px] at (0.6) should be [24px] -Fail Web Animations: property from [inherit] to [20px] at (1) should be [20px] -Fail Web Animations: property from [inherit] to [20px] at (1.5) should be [15px] -Fail CSS Transitions: property from [unset] to [20px] at (-0.3) should be [0px] -Fail CSS Transitions: property from [unset] to [20px] at (0) should be [0px] -Fail CSS Transitions: property from [unset] to [20px] at (0.3) should be [6px] -Fail CSS Transitions: property from [unset] to [20px] at (0.6) should be [12px] -Fail CSS Transitions: property from [unset] to [20px] at (1) should be [20px] -Fail CSS Transitions: property from [unset] to [20px] at (1.5) should be [30px] -Fail CSS Transitions with transition: all: property from [unset] to [20px] at (-0.3) should be [0px] -Fail CSS Transitions with transition: all: property from [unset] to [20px] at (0) should be [0px] -Fail CSS Transitions with transition: all: property from [unset] to [20px] at (0.3) should be [6px] -Fail CSS Transitions with transition: all: property from [unset] to [20px] at (0.6) should be [12px] -Fail CSS Transitions with transition: all: property from [unset] to [20px] at (1) should be [20px] -Fail CSS Transitions with transition: all: property from [unset] to [20px] at (1.5) should be [30px] -Fail CSS Animations: property from [unset] to [20px] at (-0.3) should be [0px] -Fail CSS Animations: property from [unset] to [20px] at (0) should be [0px] -Fail CSS Animations: property from [unset] to [20px] at (0.3) should be [6px] -Fail CSS Animations: property from [unset] to [20px] at (0.6) should be [12px] -Fail CSS Animations: property from [unset] to [20px] at (1) should be [20px] -Fail CSS Animations: property from [unset] to [20px] at (1.5) should be [30px] -Fail Web Animations: property from [unset] to [20px] at (-0.3) should be [0px] -Fail Web Animations: property from [unset] to [20px] at (0) should be [0px] -Fail Web Animations: property from [unset] to [20px] at (0.3) should be [6px] -Fail Web Animations: property from [unset] to [20px] at (0.6) should be [12px] -Fail Web Animations: property from [unset] to [20px] at (1) should be [20px] -Fail Web Animations: property from [unset] to [20px] at (1.5) should be [30px] -Fail CSS Transitions: property from [0px] to [100px] at (-0.3) should be [0px] -Fail CSS Transitions: property from [0px] to [100px] at (0) should be [0px] -Fail CSS Transitions: property from [0px] to [100px] at (0.3) should be [30px] -Fail CSS Transitions: property from [0px] to [100px] at (0.6) should be [60px] -Fail CSS Transitions: property from [0px] to [100px] at (1) should be [100px] -Fail CSS Transitions: property from [0px] to [100px] at (1.5) should be [150px] -Fail CSS Transitions with transition: all: property from [0px] to [100px] at (-0.3) should be [0px] -Fail CSS Transitions with transition: all: property from [0px] to [100px] at (0) should be [0px] -Fail CSS Transitions with transition: all: property from [0px] to [100px] at (0.3) should be [30px] -Fail CSS Transitions with transition: all: property from [0px] to [100px] at (0.6) should be [60px] -Fail CSS Transitions with transition: all: property from [0px] to [100px] at (1) should be [100px] -Fail CSS Transitions with transition: all: property from [0px] to [100px] at (1.5) should be [150px] -Fail CSS Animations: property from [0px] to [100px] at (-0.3) should be [0px] -Fail CSS Animations: property from [0px] to [100px] at (0) should be [0px] -Fail CSS Animations: property from [0px] to [100px] at (0.3) should be [30px] -Fail CSS Animations: property from [0px] to [100px] at (0.6) should be [60px] -Fail CSS Animations: property from [0px] to [100px] at (1) should be [100px] -Fail CSS Animations: property from [0px] to [100px] at (1.5) should be [150px] -Fail Web Animations: property from [0px] to [100px] at (-0.3) should be [0px] -Fail Web Animations: property from [0px] to [100px] at (0) should be [0px] -Fail Web Animations: property from [0px] to [100px] at (0.3) should be [30px] -Fail Web Animations: property from [0px] to [100px] at (0.6) should be [60px] -Fail Web Animations: property from [0px] to [100px] at (1) should be [100px] -Fail Web Animations: property from [0px] to [100px] at (1.5) should be [150px] \ No newline at end of file +120 Pass +Pass CSS Transitions: property from neutral to [20px] at (-0.3) should be [7px] +Pass CSS Transitions: property from neutral to [20px] at (0) should be [10px] +Pass CSS Transitions: property from neutral to [20px] at (0.3) should be [13px] +Pass CSS Transitions: property from neutral to [20px] at (0.6) should be [16px] +Pass CSS Transitions: property from neutral to [20px] at (1) should be [20px] +Pass CSS Transitions: property from neutral to [20px] at (1.5) should be [25px] +Pass CSS Transitions with transition: all: property from neutral to [20px] at (-0.3) should be [7px] +Pass CSS Transitions with transition: all: property from neutral to [20px] at (0) should be [10px] +Pass CSS Transitions with transition: all: property from neutral to [20px] at (0.3) should be [13px] +Pass CSS Transitions with transition: all: property from neutral to [20px] at (0.6) should be [16px] +Pass CSS Transitions with transition: all: property from neutral to [20px] at (1) should be [20px] +Pass CSS Transitions with transition: all: property from neutral to [20px] at (1.5) should be [25px] +Pass CSS Animations: property from neutral to [20px] at (-0.3) should be [7px] +Pass CSS Animations: property from neutral to [20px] at (0) should be [10px] +Pass CSS Animations: property from neutral to [20px] at (0.3) should be [13px] +Pass CSS Animations: property from neutral to [20px] at (0.6) should be [16px] +Pass CSS Animations: property from neutral to [20px] at (1) should be [20px] +Pass CSS Animations: property from neutral to [20px] at (1.5) should be [25px] +Pass Web Animations: property from neutral to [20px] at (-0.3) should be [7px] +Pass Web Animations: property from neutral to [20px] at (0) should be [10px] +Pass Web Animations: property from neutral to [20px] at (0.3) should be [13px] +Pass Web Animations: property from neutral to [20px] at (0.6) should be [16px] +Pass Web Animations: property from neutral to [20px] at (1) should be [20px] +Pass Web Animations: property from neutral to [20px] at (1.5) should be [25px] +Pass CSS Transitions: property from [initial] to [20px] at (-0.3) should be [0px] +Pass CSS Transitions: property from [initial] to [20px] at (0) should be [0px] +Pass CSS Transitions: property from [initial] to [20px] at (0.3) should be [6px] +Pass CSS Transitions: property from [initial] to [20px] at (0.6) should be [12px] +Pass CSS Transitions: property from [initial] to [20px] at (1) should be [20px] +Pass CSS Transitions: property from [initial] to [20px] at (1.5) should be [30px] +Pass CSS Transitions with transition: all: property from [initial] to [20px] at (-0.3) should be [0px] +Pass CSS Transitions with transition: all: property from [initial] to [20px] at (0) should be [0px] +Pass CSS Transitions with transition: all: property from [initial] to [20px] at (0.3) should be [6px] +Pass CSS Transitions with transition: all: property from [initial] to [20px] at (0.6) should be [12px] +Pass CSS Transitions with transition: all: property from [initial] to [20px] at (1) should be [20px] +Pass CSS Transitions with transition: all: property from [initial] to [20px] at (1.5) should be [30px] +Pass CSS Animations: property from [initial] to [20px] at (-0.3) should be [0px] +Pass CSS Animations: property from [initial] to [20px] at (0) should be [0px] +Pass CSS Animations: property from [initial] to [20px] at (0.3) should be [6px] +Pass CSS Animations: property from [initial] to [20px] at (0.6) should be [12px] +Pass CSS Animations: property from [initial] to [20px] at (1) should be [20px] +Pass CSS Animations: property from [initial] to [20px] at (1.5) should be [30px] +Pass Web Animations: property from [initial] to [20px] at (-0.3) should be [0px] +Pass Web Animations: property from [initial] to [20px] at (0) should be [0px] +Pass Web Animations: property from [initial] to [20px] at (0.3) should be [6px] +Pass Web Animations: property from [initial] to [20px] at (0.6) should be [12px] +Pass Web Animations: property from [initial] to [20px] at (1) should be [20px] +Pass Web Animations: property from [initial] to [20px] at (1.5) should be [30px] +Pass CSS Transitions: property from [inherit] to [20px] at (-0.3) should be [33px] +Pass CSS Transitions: property from [inherit] to [20px] at (0) should be [30px] +Pass CSS Transitions: property from [inherit] to [20px] at (0.3) should be [27px] +Pass CSS Transitions: property from [inherit] to [20px] at (0.6) should be [24px] +Pass CSS Transitions: property from [inherit] to [20px] at (1) should be [20px] +Pass CSS Transitions: property from [inherit] to [20px] at (1.5) should be [15px] +Pass CSS Transitions with transition: all: property from [inherit] to [20px] at (-0.3) should be [33px] +Pass CSS Transitions with transition: all: property from [inherit] to [20px] at (0) should be [30px] +Pass CSS Transitions with transition: all: property from [inherit] to [20px] at (0.3) should be [27px] +Pass CSS Transitions with transition: all: property from [inherit] to [20px] at (0.6) should be [24px] +Pass CSS Transitions with transition: all: property from [inherit] to [20px] at (1) should be [20px] +Pass CSS Transitions with transition: all: property from [inherit] to [20px] at (1.5) should be [15px] +Pass CSS Animations: property from [inherit] to [20px] at (-0.3) should be [33px] +Pass CSS Animations: property from [inherit] to [20px] at (0) should be [30px] +Pass CSS Animations: property from [inherit] to [20px] at (0.3) should be [27px] +Pass CSS Animations: property from [inherit] to [20px] at (0.6) should be [24px] +Pass CSS Animations: property from [inherit] to [20px] at (1) should be [20px] +Pass CSS Animations: property from [inherit] to [20px] at (1.5) should be [15px] +Pass Web Animations: property from [inherit] to [20px] at (-0.3) should be [33px] +Pass Web Animations: property from [inherit] to [20px] at (0) should be [30px] +Pass Web Animations: property from [inherit] to [20px] at (0.3) should be [27px] +Pass Web Animations: property from [inherit] to [20px] at (0.6) should be [24px] +Pass Web Animations: property from [inherit] to [20px] at (1) should be [20px] +Pass Web Animations: property from [inherit] to [20px] at (1.5) should be [15px] +Pass CSS Transitions: property from [unset] to [20px] at (-0.3) should be [0px] +Pass CSS Transitions: property from [unset] to [20px] at (0) should be [0px] +Pass CSS Transitions: property from [unset] to [20px] at (0.3) should be [6px] +Pass CSS Transitions: property from [unset] to [20px] at (0.6) should be [12px] +Pass CSS Transitions: property from [unset] to [20px] at (1) should be [20px] +Pass CSS Transitions: property from [unset] to [20px] at (1.5) should be [30px] +Pass CSS Transitions with transition: all: property from [unset] to [20px] at (-0.3) should be [0px] +Pass CSS Transitions with transition: all: property from [unset] to [20px] at (0) should be [0px] +Pass CSS Transitions with transition: all: property from [unset] to [20px] at (0.3) should be [6px] +Pass CSS Transitions with transition: all: property from [unset] to [20px] at (0.6) should be [12px] +Pass CSS Transitions with transition: all: property from [unset] to [20px] at (1) should be [20px] +Pass CSS Transitions with transition: all: property from [unset] to [20px] at (1.5) should be [30px] +Pass CSS Animations: property from [unset] to [20px] at (-0.3) should be [0px] +Pass CSS Animations: property from [unset] to [20px] at (0) should be [0px] +Pass CSS Animations: property from [unset] to [20px] at (0.3) should be [6px] +Pass CSS Animations: property from [unset] to [20px] at (0.6) should be [12px] +Pass CSS Animations: property from [unset] to [20px] at (1) should be [20px] +Pass CSS Animations: property from [unset] to [20px] at (1.5) should be [30px] +Pass Web Animations: property from [unset] to [20px] at (-0.3) should be [0px] +Pass Web Animations: property from [unset] to [20px] at (0) should be [0px] +Pass Web Animations: property from [unset] to [20px] at (0.3) should be [6px] +Pass Web Animations: property from [unset] to [20px] at (0.6) should be [12px] +Pass Web Animations: property from [unset] to [20px] at (1) should be [20px] +Pass Web Animations: property from [unset] to [20px] at (1.5) should be [30px] +Pass CSS Transitions: property from [0px] to [100px] at (-0.3) should be [0px] +Pass CSS Transitions: property from [0px] to [100px] at (0) should be [0px] +Pass CSS Transitions: property from [0px] to [100px] at (0.3) should be [30px] +Pass CSS Transitions: property from [0px] to [100px] at (0.6) should be [60px] +Pass CSS Transitions: property from [0px] to [100px] at (1) should be [100px] +Pass CSS Transitions: property from [0px] to [100px] at (1.5) should be [150px] +Pass CSS Transitions with transition: all: property from [0px] to [100px] at (-0.3) should be [0px] +Pass CSS Transitions with transition: all: property from [0px] to [100px] at (0) should be [0px] +Pass CSS Transitions with transition: all: property from [0px] to [100px] at (0.3) should be [30px] +Pass CSS Transitions with transition: all: property from [0px] to [100px] at (0.6) should be [60px] +Pass CSS Transitions with transition: all: property from [0px] to [100px] at (1) should be [100px] +Pass CSS Transitions with transition: all: property from [0px] to [100px] at (1.5) should be [150px] +Pass CSS Animations: property from [0px] to [100px] at (-0.3) should be [0px] +Pass CSS Animations: property from [0px] to [100px] at (0) should be [0px] +Pass CSS Animations: property from [0px] to [100px] at (0.3) should be [30px] +Pass CSS Animations: property from [0px] to [100px] at (0.6) should be [60px] +Pass CSS Animations: property from [0px] to [100px] at (1) should be [100px] +Pass CSS Animations: property from [0px] to [100px] at (1.5) should be [150px] +Pass Web Animations: property from [0px] to [100px] at (-0.3) should be [0px] +Pass Web Animations: property from [0px] to [100px] at (0) should be [0px] +Pass Web Animations: property from [0px] to [100px] at (0.3) should be [30px] +Pass Web Animations: property from [0px] to [100px] at (0.6) should be [60px] +Pass Web Animations: property from [0px] to [100px] at (1) should be [100px] +Pass Web Animations: property from [0px] to [100px] at (1.5) should be [150px] \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-margin-computed.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-margin-computed.txt index 1fa7991166c..932ca083dbd 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-margin-computed.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-margin-computed.txt @@ -2,7 +2,7 @@ Harness status: OK Found 3 tests -3 Fail -Fail Property shape-margin value 'calc(10px + 0.5em)' -Fail Property shape-margin value 'calc(10px - 0.5em)' -Fail Property shape-margin value '50%' \ No newline at end of file +3 Pass +Pass Property shape-margin value 'calc(10px + 0.5em)' +Pass Property shape-margin value 'calc(10px - 0.5em)' +Pass Property shape-margin value '50%' \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-margin-valid.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-margin-valid.txt index 64d1dc8749d..4858393386d 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-margin-valid.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-shapes/parsing/shape-margin-valid.txt @@ -2,8 +2,8 @@ Harness status: OK Found 4 tests -4 Fail -Fail e.style['shape-margin'] = "0" should set the property value -Fail e.style['shape-margin'] = "10px" should set the property value -Fail e.style['shape-margin'] = "20em" should set the property value -Fail e.style['shape-margin'] = "37.5%" should set the property value \ No newline at end of file +4 Pass +Pass e.style['shape-margin'] = "0" should set the property value +Pass e.style['shape-margin'] = "10px" should set the property value +Pass e.style['shape-margin'] = "20em" should set the property value +Pass e.style['shape-margin'] = "37.5%" should set the property value \ No newline at end of file