From 04622f39409083de59d7c9002cc38d22a58348bb Mon Sep 17 00:00:00 2001 From: Sam Atkins Date: Thu, 28 Aug 2025 13:02:52 +0100 Subject: [PATCH] LibWeb/CSS: Use LengthPercentageOrAuto for background sizes ...instead of `auto` Lengths. This also fixes interpolating between two `auto` ``s, which fixes a lot of animation tests for both `background-size` and `mask`. --- Libraries/LibWeb/CSS/ComputedValues.h | 4 +- Libraries/LibWeb/CSS/Interpolation.cpp | 16 +- .../LibWeb/CSS/Parser/PropertyParsing.cpp | 12 +- .../StyleValues/BackgroundSizeStyleValue.cpp | 12 +- .../StyleValues/BackgroundSizeStyleValue.h | 12 +- .../LibWeb/Painting/BackgroundPainting.cpp | 4 +- .../background-size-interpolation.txt | 328 +++++++++--------- .../animations/mask-no-interpolation.txt | 31 +- 8 files changed, 218 insertions(+), 201 deletions(-) diff --git a/Libraries/LibWeb/CSS/ComputedValues.h b/Libraries/LibWeb/CSS/ComputedValues.h index 363b05490af..8b08e6b3e2a 100644 --- a/Libraries/LibWeb/CSS/ComputedValues.h +++ b/Libraries/LibWeb/CSS/ComputedValues.h @@ -344,8 +344,8 @@ struct BackgroundLayerData { CSS::PositionEdge position_edge_y { CSS::PositionEdge::Top }; CSS::LengthPercentage position_offset_y { CSS::Length::make_px(0) }; CSS::BackgroundSize size_type { CSS::BackgroundSize::LengthPercentage }; - CSS::LengthPercentage size_x { CSS::Length::make_auto() }; - CSS::LengthPercentage size_y { CSS::Length::make_auto() }; + CSS::LengthPercentageOrAuto size_x { CSS::LengthPercentageOrAuto::make_auto() }; + CSS::LengthPercentageOrAuto size_y { CSS::LengthPercentageOrAuto::make_auto() }; CSS::Repetition repeat_x { CSS::Repetition::Repeat }; CSS::Repetition repeat_y { CSS::Repetition::Repeat }; CSS::MixBlendMode blend_mode { CSS::MixBlendMode::Normal }; diff --git a/Libraries/LibWeb/CSS/Interpolation.cpp b/Libraries/LibWeb/CSS/Interpolation.cpp index 72328c8d947..ffbd7752aba 100644 --- a/Libraries/LibWeb/CSS/Interpolation.cpp +++ b/Libraries/LibWeb/CSS/Interpolation.cpp @@ -1100,6 +1100,18 @@ static RefPtr interpolate_value_impl(DOM::Element& element, Ca return Length::make_px(interpolate_raw(from.length().raw_value(), to.length().raw_value(), delta)); if (from.is_percentage() && to.is_percentage()) return Percentage(interpolate_raw(from.percentage().value(), to.percentage().value(), delta)); + // FIXME: Interpolate calculations + return {}; + }; + + static auto interpolate_length_percentage_or_auto = [](LengthPercentageOrAuto const& from, LengthPercentageOrAuto const& to, float delta) -> Optional { + if (from.is_auto() && to.is_auto()) + return LengthPercentageOrAuto::make_auto(); + if (from.is_length() && to.is_length()) + return Length::make_px(interpolate_raw(from.length().raw_value(), to.length().raw_value(), delta)); + if (from.is_percentage() && to.is_percentage()) + return Percentage(interpolate_raw(from.percentage().value(), to.percentage().value(), delta)); + // FIXME: Interpolate calculations return {}; }; @@ -1107,8 +1119,8 @@ static RefPtr interpolate_value_impl(DOM::Element& element, Ca case StyleValue::Type::Angle: return AngleStyleValue::create(Angle::make_degrees(interpolate_raw(from.as_angle().angle().to_degrees(), to.as_angle().angle().to_degrees(), delta))); case StyleValue::Type::BackgroundSize: { - auto interpolated_x = interpolate_length_percentage(from.as_background_size().size_x(), to.as_background_size().size_x(), delta); - auto interpolated_y = interpolate_length_percentage(from.as_background_size().size_y(), to.as_background_size().size_y(), delta); + auto interpolated_x = interpolate_length_percentage_or_auto(from.as_background_size().size_x(), to.as_background_size().size_x(), delta); + auto interpolated_y = interpolate_length_percentage_or_auto(from.as_background_size().size_y(), to.as_background_size().size_y(), delta); if (!interpolated_x.has_value() || !interpolated_y.has_value()) return {}; diff --git a/Libraries/LibWeb/CSS/Parser/PropertyParsing.cpp b/Libraries/LibWeb/CSS/Parser/PropertyParsing.cpp index cc16d62007d..e553579deee 100644 --- a/Libraries/LibWeb/CSS/Parser/PropertyParsing.cpp +++ b/Libraries/LibWeb/CSS/Parser/PropertyParsing.cpp @@ -1477,9 +1477,9 @@ RefPtr Parser::parse_single_background_size_value(PropertyID p { auto transaction = tokens.begin_transaction(); - auto get_length_percentage = [](StyleValue const& style_value) -> Optional { + auto get_length_percentage_or_auto = [](StyleValue const& style_value) -> Optional { if (style_value.has_auto()) - return LengthPercentage { Length::make_auto() }; + return LengthPercentageOrAuto::make_auto(); if (style_value.is_percentage()) return LengthPercentage { style_value.as_percentage().percentage() }; if (style_value.is_length()) @@ -1501,8 +1501,8 @@ RefPtr Parser::parse_single_background_size_value(PropertyID p auto maybe_y_value = parse_css_value_for_property(property, tokens); if (!maybe_y_value) { - auto y_value = LengthPercentage { Length::make_auto() }; - auto x_size = get_length_percentage(*x_value); + auto y_value = LengthPercentageOrAuto::make_auto(); + auto x_size = get_length_percentage_or_auto(*x_value); if (!x_size.has_value()) return nullptr; @@ -1511,8 +1511,8 @@ RefPtr Parser::parse_single_background_size_value(PropertyID p } auto y_value = maybe_y_value.release_nonnull(); - auto x_size = get_length_percentage(*x_value); - auto y_size = get_length_percentage(*y_value); + auto x_size = get_length_percentage_or_auto(*x_value); + auto y_size = get_length_percentage_or_auto(*y_value); if (!x_size.has_value() || !y_size.has_value()) return nullptr; diff --git a/Libraries/LibWeb/CSS/StyleValues/BackgroundSizeStyleValue.cpp b/Libraries/LibWeb/CSS/StyleValues/BackgroundSizeStyleValue.cpp index 73dde83e9b9..6c29e088f70 100644 --- a/Libraries/LibWeb/CSS/StyleValues/BackgroundSizeStyleValue.cpp +++ b/Libraries/LibWeb/CSS/StyleValues/BackgroundSizeStyleValue.cpp @@ -11,7 +11,7 @@ namespace Web::CSS { -BackgroundSizeStyleValue::BackgroundSizeStyleValue(LengthPercentage size_x, LengthPercentage size_y) +BackgroundSizeStyleValue::BackgroundSizeStyleValue(LengthPercentageOrAuto size_x, LengthPercentageOrAuto size_y) : StyleValueWithDefaultOperators(Type::BackgroundSize) , m_properties { .size_x = move(size_x), .size_y = move(size_y) } { @@ -28,8 +28,14 @@ String BackgroundSizeStyleValue::to_string(SerializationMode mode) const ValueComparingNonnullRefPtr BackgroundSizeStyleValue::absolutized(CSSPixelRect const& viewport_rect, Length::FontMetrics const& font_metrics, Length::FontMetrics const& root_font_metrics) const { - auto absolutized_size_x = m_properties.size_x.absolutized(viewport_rect, font_metrics, root_font_metrics); - auto absolutized_size_y = m_properties.size_y.absolutized(viewport_rect, font_metrics, root_font_metrics); + auto absolutize = [&](auto& size) -> LengthPercentageOrAuto { + if (size.is_auto()) + return size; + return size.length_percentage().absolutized(viewport_rect, font_metrics, root_font_metrics); + }; + + auto absolutized_size_x = absolutize(m_properties.size_x); + auto absolutized_size_y = absolutize(m_properties.size_y); if (absolutized_size_x == m_properties.size_x && absolutized_size_y == m_properties.size_y) return *this; diff --git a/Libraries/LibWeb/CSS/StyleValues/BackgroundSizeStyleValue.h b/Libraries/LibWeb/CSS/StyleValues/BackgroundSizeStyleValue.h index 8584d3b8526..0c9fc26199f 100644 --- a/Libraries/LibWeb/CSS/StyleValues/BackgroundSizeStyleValue.h +++ b/Libraries/LibWeb/CSS/StyleValues/BackgroundSizeStyleValue.h @@ -18,14 +18,14 @@ namespace Web::CSS { // NOTE: This is not used for identifier sizes, like `cover` and `contain`. class BackgroundSizeStyleValue final : public StyleValueWithDefaultOperators { public: - static ValueComparingNonnullRefPtr create(LengthPercentage size_x, LengthPercentage size_y) + static ValueComparingNonnullRefPtr create(LengthPercentageOrAuto size_x, LengthPercentageOrAuto size_y) { return adopt_ref(*new (nothrow) BackgroundSizeStyleValue(size_x, size_y)); } virtual ~BackgroundSizeStyleValue() override; - LengthPercentage size_x() const { return m_properties.size_x; } - LengthPercentage size_y() const { return m_properties.size_y; } + LengthPercentageOrAuto size_x() const { return m_properties.size_x; } + LengthPercentageOrAuto size_y() const { return m_properties.size_y; } virtual String to_string(SerializationMode) const override; virtual ValueComparingNonnullRefPtr absolutized(CSSPixelRect const& viewport_rect, Length::FontMetrics const& font_metrics, Length::FontMetrics const& root_font_metrics) const override; @@ -33,11 +33,11 @@ public: bool properties_equal(BackgroundSizeStyleValue const& other) const { return m_properties == other.m_properties; } private: - BackgroundSizeStyleValue(LengthPercentage size_x, LengthPercentage size_y); + BackgroundSizeStyleValue(LengthPercentageOrAuto size_x, LengthPercentageOrAuto size_y); struct Properties { - LengthPercentage size_x; - LengthPercentage size_y; + LengthPercentageOrAuto size_x; + LengthPercentageOrAuto size_y; bool operator==(Properties const&) const = default; } m_properties; }; diff --git a/Libraries/LibWeb/Painting/BackgroundPainting.cpp b/Libraries/LibWeb/Painting/BackgroundPainting.cpp index 146a58b61a8..9c5738c61d6 100644 --- a/Libraries/LibWeb/Painting/BackgroundPainting.cpp +++ b/Libraries/LibWeb/Painting/BackgroundPainting.cpp @@ -369,9 +369,9 @@ ResolvedBackground resolve_background_layers(Vector co Optional specified_height {}; if (layer.size_type == CSS::BackgroundSize::LengthPercentage) { if (!layer.size_x.is_auto()) - specified_width = layer.size_x.to_px(paintable_box.layout_node(), background_positioning_area.width()); + specified_width = layer.size_x.length_percentage().to_px(paintable_box.layout_node(), background_positioning_area.width()); if (!layer.size_y.is_auto()) - specified_height = layer.size_y.to_px(paintable_box.layout_node(), background_positioning_area.height()); + specified_height = layer.size_y.length_percentage().to_px(paintable_box.layout_node(), background_positioning_area.height()); } auto concrete_image_size = CSS::run_default_sizing_algorithm( specified_width, specified_height, diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-backgrounds/animations/background-size-interpolation.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-backgrounds/animations/background-size-interpolation.txt index 068df091fea..73f782a1784 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-backgrounds/animations/background-size-interpolation.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-backgrounds/animations/background-size-interpolation.txt @@ -2,8 +2,8 @@ Harness status: OK Found 364 tests -110 Pass -254 Fail +272 Pass +92 Fail Fail CSS Transitions: property from neutral to [20px 20px, 0px 0px] at (-0.25) should be [ 7.5px 7.5px, 12.5px 12.5px, 7.5px 7.5px, 12.5px 12.5px] Pass CSS Transitions: property from neutral to [20px 20px, 0px 0px] at (0) should be [10.0px 10.0px, 10.0px 10.0px, 10.0px 10.0px, 10.0px 10.0px] Fail CSS Transitions: property from neutral to [20px 20px, 0px 0px] at (0.25) should be [12.5px 12.5px, 7.5px 7.5px, 12.5px 12.5px, 7.5px 7.5px] @@ -32,48 +32,48 @@ Fail Web Animations: property from neutral to [20px 20px, 0px Fail Web Animations: property from neutral to [20px 20px, 0px 0px] at (0.75) should be [17.5px 17.5px, 2.5px 2.5px, 17.5px 17.5px, 2.5px 2.5px] Fail Web Animations: property from neutral to [20px 20px, 0px 0px] at (1) should be [20.0px 20.0px, 0.0px 0.0px, 20.0px 20.0px, 0.0px 0.0px] Fail Web Animations: property from neutral to [20px 20px, 0px 0px] at (1.25) should be [22.5px 22.5px, 0.0px 0.0px, 22.5px 22.5px, 0.0px 0.0px] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [20px 20px, 0px 0px] at (-0.3) should be [initial] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [20px 20px, 0px 0px] at (0) should be [initial] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [20px 20px, 0px 0px] at (0.3) should be [initial] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [20px 20px, 0px 0px] at (0.5) should be [20px 20px, 0px 0px] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [20px 20px, 0px 0px] at (0.6) should be [20px 20px, 0px 0px] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [20px 20px, 0px 0px] at (-0.3) should be [initial] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [20px 20px, 0px 0px] at (0) should be [initial] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [20px 20px, 0px 0px] at (0.3) should be [initial] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [20px 20px, 0px 0px] at (0.5) should be [20px 20px, 0px 0px] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [20px 20px, 0px 0px] at (0.6) should be [20px 20px, 0px 0px] Pass CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [20px 20px, 0px 0px] at (1) should be [20px 20px, 0px 0px] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [20px 20px, 0px 0px] at (1.5) should be [20px 20px, 0px 0px] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [20px 20px, 0px 0px] at (-0.3) should be [initial] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [20px 20px, 0px 0px] at (0) should be [initial] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [20px 20px, 0px 0px] at (0.3) should be [initial] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [20px 20px, 0px 0px] at (0.5) should be [20px 20px, 0px 0px] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [20px 20px, 0px 0px] at (0.6) should be [20px 20px, 0px 0px] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [20px 20px, 0px 0px] at (1.5) should be [20px 20px, 0px 0px] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [20px 20px, 0px 0px] at (-0.3) should be [initial] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [20px 20px, 0px 0px] at (0) should be [initial] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [20px 20px, 0px 0px] at (0.3) should be [initial] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [20px 20px, 0px 0px] at (0.5) should be [20px 20px, 0px 0px] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [20px 20px, 0px 0px] at (0.6) should be [20px 20px, 0px 0px] Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [20px 20px, 0px 0px] at (1) should be [20px 20px, 0px 0px] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [20px 20px, 0px 0px] at (1.5) should be [20px 20px, 0px 0px] -Fail CSS Transitions: property from [initial] to [20px 20px, 0px 0px] at (-0.3) should be [20px 20px, 0px 0px] -Fail CSS Transitions: property from [initial] to [20px 20px, 0px 0px] at (0) should be [20px 20px, 0px 0px] -Fail CSS Transitions: property from [initial] to [20px 20px, 0px 0px] at (0.3) should be [20px 20px, 0px 0px] -Fail CSS Transitions: property from [initial] to [20px 20px, 0px 0px] at (0.5) should be [20px 20px, 0px 0px] -Fail CSS Transitions: property from [initial] to [20px 20px, 0px 0px] at (0.6) should be [20px 20px, 0px 0px] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [20px 20px, 0px 0px] at (1.5) should be [20px 20px, 0px 0px] +Pass CSS Transitions: property from [initial] to [20px 20px, 0px 0px] at (-0.3) should be [20px 20px, 0px 0px] +Pass CSS Transitions: property from [initial] to [20px 20px, 0px 0px] at (0) should be [20px 20px, 0px 0px] +Pass CSS Transitions: property from [initial] to [20px 20px, 0px 0px] at (0.3) should be [20px 20px, 0px 0px] +Pass CSS Transitions: property from [initial] to [20px 20px, 0px 0px] at (0.5) should be [20px 20px, 0px 0px] +Pass CSS Transitions: property from [initial] to [20px 20px, 0px 0px] at (0.6) should be [20px 20px, 0px 0px] Pass CSS Transitions: property from [initial] to [20px 20px, 0px 0px] at (1) should be [20px 20px, 0px 0px] -Fail CSS Transitions: property from [initial] to [20px 20px, 0px 0px] at (1.5) should be [20px 20px, 0px 0px] -Fail CSS Transitions with transition: all: property from [initial] to [20px 20px, 0px 0px] at (-0.3) should be [20px 20px, 0px 0px] -Fail CSS Transitions with transition: all: property from [initial] to [20px 20px, 0px 0px] at (0) should be [20px 20px, 0px 0px] -Fail CSS Transitions with transition: all: property from [initial] to [20px 20px, 0px 0px] at (0.3) should be [20px 20px, 0px 0px] -Fail CSS Transitions with transition: all: property from [initial] to [20px 20px, 0px 0px] at (0.5) should be [20px 20px, 0px 0px] -Fail CSS Transitions with transition: all: property from [initial] to [20px 20px, 0px 0px] at (0.6) should be [20px 20px, 0px 0px] +Pass CSS Transitions: property from [initial] to [20px 20px, 0px 0px] at (1.5) should be [20px 20px, 0px 0px] +Pass CSS Transitions with transition: all: property from [initial] to [20px 20px, 0px 0px] at (-0.3) should be [20px 20px, 0px 0px] +Pass CSS Transitions with transition: all: property from [initial] to [20px 20px, 0px 0px] at (0) should be [20px 20px, 0px 0px] +Pass CSS Transitions with transition: all: property from [initial] to [20px 20px, 0px 0px] at (0.3) should be [20px 20px, 0px 0px] +Pass CSS Transitions with transition: all: property from [initial] to [20px 20px, 0px 0px] at (0.5) should be [20px 20px, 0px 0px] +Pass CSS Transitions with transition: all: property from [initial] to [20px 20px, 0px 0px] at (0.6) should be [20px 20px, 0px 0px] Pass CSS Transitions with transition: all: property from [initial] to [20px 20px, 0px 0px] at (1) should be [20px 20px, 0px 0px] -Fail CSS Transitions with transition: all: property from [initial] to [20px 20px, 0px 0px] at (1.5) should be [20px 20px, 0px 0px] -Fail CSS Animations: property from [initial] to [20px 20px, 0px 0px] at (-0.3) should be [initial] -Fail CSS Animations: property from [initial] to [20px 20px, 0px 0px] at (0) should be [initial] -Fail CSS Animations: property from [initial] to [20px 20px, 0px 0px] at (0.3) should be [initial] -Fail CSS Animations: property from [initial] to [20px 20px, 0px 0px] at (0.5) should be [20px 20px, 0px 0px] -Fail CSS Animations: property from [initial] to [20px 20px, 0px 0px] at (0.6) should be [20px 20px, 0px 0px] +Pass CSS Transitions with transition: all: property from [initial] to [20px 20px, 0px 0px] at (1.5) should be [20px 20px, 0px 0px] +Pass CSS Animations: property from [initial] to [20px 20px, 0px 0px] at (-0.3) should be [initial] +Pass CSS Animations: property from [initial] to [20px 20px, 0px 0px] at (0) should be [initial] +Pass CSS Animations: property from [initial] to [20px 20px, 0px 0px] at (0.3) should be [initial] +Pass CSS Animations: property from [initial] to [20px 20px, 0px 0px] at (0.5) should be [20px 20px, 0px 0px] +Pass CSS Animations: property from [initial] to [20px 20px, 0px 0px] at (0.6) should be [20px 20px, 0px 0px] Pass CSS Animations: property from [initial] to [20px 20px, 0px 0px] at (1) should be [20px 20px, 0px 0px] -Fail CSS Animations: property from [initial] to [20px 20px, 0px 0px] at (1.5) should be [20px 20px, 0px 0px] -Fail Web Animations: property from [initial] to [20px 20px, 0px 0px] at (-0.3) should be [initial] -Fail Web Animations: property from [initial] to [20px 20px, 0px 0px] at (0) should be [initial] -Fail Web Animations: property from [initial] to [20px 20px, 0px 0px] at (0.3) should be [initial] -Fail Web Animations: property from [initial] to [20px 20px, 0px 0px] at (0.5) should be [20px 20px, 0px 0px] -Fail Web Animations: property from [initial] to [20px 20px, 0px 0px] at (0.6) should be [20px 20px, 0px 0px] +Pass CSS Animations: property from [initial] to [20px 20px, 0px 0px] at (1.5) should be [20px 20px, 0px 0px] +Pass Web Animations: property from [initial] to [20px 20px, 0px 0px] at (-0.3) should be [initial] +Pass Web Animations: property from [initial] to [20px 20px, 0px 0px] at (0) should be [initial] +Pass Web Animations: property from [initial] to [20px 20px, 0px 0px] at (0.3) should be [initial] +Pass Web Animations: property from [initial] to [20px 20px, 0px 0px] at (0.5) should be [20px 20px, 0px 0px] +Pass Web Animations: property from [initial] to [20px 20px, 0px 0px] at (0.6) should be [20px 20px, 0px 0px] Pass Web Animations: property from [initial] to [20px 20px, 0px 0px] at (1) should be [20px 20px, 0px 0px] -Fail Web Animations: property from [initial] to [20px 20px, 0px 0px] at (1.5) should be [20px 20px, 0px 0px] +Pass Web Animations: property from [initial] to [20px 20px, 0px 0px] at (1.5) should be [20px 20px, 0px 0px] Fail CSS Transitions: property from [inherit] to [20px 20px, 0px 0px] at (-0.25) should be [120px 120px, 125px 125px, 120px 120px, 125px 125px] Pass CSS Transitions: property from [inherit] to [20px 20px, 0px 0px] at (0) should be [100px 100px, 100px 100px, 100px 100px, 100px 100px] Fail CSS Transitions: property from [inherit] to [20px 20px, 0px 0px] at (0.25) should be [ 80px 80px, 75px 75px, 80px 80px, 75px 75px] @@ -102,76 +102,76 @@ Fail Web Animations: property from [inherit] to [20px 20px, 0p Fail Web Animations: property from [inherit] to [20px 20px, 0px 0px] at (0.75) should be [ 40px 40px, 25px 25px, 40px 40px, 25px 25px] Fail Web Animations: property from [inherit] to [20px 20px, 0px 0px] at (1) should be [ 20px 20px, 0px 0px, 20px 20px, 0px 0px] Fail Web Animations: property from [inherit] to [20px 20px, 0px 0px] at (1.25) should be [ 0px 0px, 0px 0px, 0px 0px, 0px 0px] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [20px 20px, 0px 0px] at (-0.3) should be [unset] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [20px 20px, 0px 0px] at (0) should be [unset] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [20px 20px, 0px 0px] at (0.3) should be [unset] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [20px 20px, 0px 0px] at (0.5) should be [20px 20px, 0px 0px] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [20px 20px, 0px 0px] at (0.6) should be [20px 20px, 0px 0px] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [20px 20px, 0px 0px] at (-0.3) should be [unset] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [20px 20px, 0px 0px] at (0) should be [unset] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [20px 20px, 0px 0px] at (0.3) should be [unset] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [20px 20px, 0px 0px] at (0.5) should be [20px 20px, 0px 0px] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [20px 20px, 0px 0px] at (0.6) should be [20px 20px, 0px 0px] Pass CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [20px 20px, 0px 0px] at (1) should be [20px 20px, 0px 0px] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [20px 20px, 0px 0px] at (1.5) should be [20px 20px, 0px 0px] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [20px 20px, 0px 0px] at (-0.3) should be [unset] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [20px 20px, 0px 0px] at (0) should be [unset] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [20px 20px, 0px 0px] at (0.3) should be [unset] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [20px 20px, 0px 0px] at (0.5) should be [20px 20px, 0px 0px] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [20px 20px, 0px 0px] at (0.6) should be [20px 20px, 0px 0px] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [20px 20px, 0px 0px] at (1.5) should be [20px 20px, 0px 0px] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [20px 20px, 0px 0px] at (-0.3) should be [unset] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [20px 20px, 0px 0px] at (0) should be [unset] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [20px 20px, 0px 0px] at (0.3) should be [unset] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [20px 20px, 0px 0px] at (0.5) should be [20px 20px, 0px 0px] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [20px 20px, 0px 0px] at (0.6) should be [20px 20px, 0px 0px] Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [20px 20px, 0px 0px] at (1) should be [20px 20px, 0px 0px] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [20px 20px, 0px 0px] at (1.5) should be [20px 20px, 0px 0px] -Fail CSS Transitions: property from [unset] to [20px 20px, 0px 0px] at (-0.3) should be [20px 20px, 0px 0px] -Fail CSS Transitions: property from [unset] to [20px 20px, 0px 0px] at (0) should be [20px 20px, 0px 0px] -Fail CSS Transitions: property from [unset] to [20px 20px, 0px 0px] at (0.3) should be [20px 20px, 0px 0px] -Fail CSS Transitions: property from [unset] to [20px 20px, 0px 0px] at (0.5) should be [20px 20px, 0px 0px] -Fail CSS Transitions: property from [unset] to [20px 20px, 0px 0px] at (0.6) should be [20px 20px, 0px 0px] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [20px 20px, 0px 0px] at (1.5) should be [20px 20px, 0px 0px] +Pass CSS Transitions: property from [unset] to [20px 20px, 0px 0px] at (-0.3) should be [20px 20px, 0px 0px] +Pass CSS Transitions: property from [unset] to [20px 20px, 0px 0px] at (0) should be [20px 20px, 0px 0px] +Pass CSS Transitions: property from [unset] to [20px 20px, 0px 0px] at (0.3) should be [20px 20px, 0px 0px] +Pass CSS Transitions: property from [unset] to [20px 20px, 0px 0px] at (0.5) should be [20px 20px, 0px 0px] +Pass CSS Transitions: property from [unset] to [20px 20px, 0px 0px] at (0.6) should be [20px 20px, 0px 0px] Pass CSS Transitions: property from [unset] to [20px 20px, 0px 0px] at (1) should be [20px 20px, 0px 0px] -Fail CSS Transitions: property from [unset] to [20px 20px, 0px 0px] at (1.5) should be [20px 20px, 0px 0px] -Fail CSS Transitions with transition: all: property from [unset] to [20px 20px, 0px 0px] at (-0.3) should be [20px 20px, 0px 0px] -Fail CSS Transitions with transition: all: property from [unset] to [20px 20px, 0px 0px] at (0) should be [20px 20px, 0px 0px] -Fail CSS Transitions with transition: all: property from [unset] to [20px 20px, 0px 0px] at (0.3) should be [20px 20px, 0px 0px] -Fail CSS Transitions with transition: all: property from [unset] to [20px 20px, 0px 0px] at (0.5) should be [20px 20px, 0px 0px] -Fail CSS Transitions with transition: all: property from [unset] to [20px 20px, 0px 0px] at (0.6) should be [20px 20px, 0px 0px] +Pass CSS Transitions: property from [unset] to [20px 20px, 0px 0px] at (1.5) should be [20px 20px, 0px 0px] +Pass CSS Transitions with transition: all: property from [unset] to [20px 20px, 0px 0px] at (-0.3) should be [20px 20px, 0px 0px] +Pass CSS Transitions with transition: all: property from [unset] to [20px 20px, 0px 0px] at (0) should be [20px 20px, 0px 0px] +Pass CSS Transitions with transition: all: property from [unset] to [20px 20px, 0px 0px] at (0.3) should be [20px 20px, 0px 0px] +Pass CSS Transitions with transition: all: property from [unset] to [20px 20px, 0px 0px] at (0.5) should be [20px 20px, 0px 0px] +Pass CSS Transitions with transition: all: property from [unset] to [20px 20px, 0px 0px] at (0.6) should be [20px 20px, 0px 0px] Pass CSS Transitions with transition: all: property from [unset] to [20px 20px, 0px 0px] at (1) should be [20px 20px, 0px 0px] -Fail CSS Transitions with transition: all: property from [unset] to [20px 20px, 0px 0px] at (1.5) should be [20px 20px, 0px 0px] -Fail CSS Animations: property from [unset] to [20px 20px, 0px 0px] at (-0.3) should be [unset] -Fail CSS Animations: property from [unset] to [20px 20px, 0px 0px] at (0) should be [unset] -Fail CSS Animations: property from [unset] to [20px 20px, 0px 0px] at (0.3) should be [unset] -Fail CSS Animations: property from [unset] to [20px 20px, 0px 0px] at (0.5) should be [20px 20px, 0px 0px] -Fail CSS Animations: property from [unset] to [20px 20px, 0px 0px] at (0.6) should be [20px 20px, 0px 0px] +Pass CSS Transitions with transition: all: property from [unset] to [20px 20px, 0px 0px] at (1.5) should be [20px 20px, 0px 0px] +Pass CSS Animations: property from [unset] to [20px 20px, 0px 0px] at (-0.3) should be [unset] +Pass CSS Animations: property from [unset] to [20px 20px, 0px 0px] at (0) should be [unset] +Pass CSS Animations: property from [unset] to [20px 20px, 0px 0px] at (0.3) should be [unset] +Pass CSS Animations: property from [unset] to [20px 20px, 0px 0px] at (0.5) should be [20px 20px, 0px 0px] +Pass CSS Animations: property from [unset] to [20px 20px, 0px 0px] at (0.6) should be [20px 20px, 0px 0px] Pass CSS Animations: property from [unset] to [20px 20px, 0px 0px] at (1) should be [20px 20px, 0px 0px] -Fail CSS Animations: property from [unset] to [20px 20px, 0px 0px] at (1.5) should be [20px 20px, 0px 0px] -Fail Web Animations: property from [unset] to [20px 20px, 0px 0px] at (-0.3) should be [unset] -Fail Web Animations: property from [unset] to [20px 20px, 0px 0px] at (0) should be [unset] -Fail Web Animations: property from [unset] to [20px 20px, 0px 0px] at (0.3) should be [unset] -Fail Web Animations: property from [unset] to [20px 20px, 0px 0px] at (0.5) should be [20px 20px, 0px 0px] -Fail Web Animations: property from [unset] to [20px 20px, 0px 0px] at (0.6) should be [20px 20px, 0px 0px] +Pass CSS Animations: property from [unset] to [20px 20px, 0px 0px] at (1.5) should be [20px 20px, 0px 0px] +Pass Web Animations: property from [unset] to [20px 20px, 0px 0px] at (-0.3) should be [unset] +Pass Web Animations: property from [unset] to [20px 20px, 0px 0px] at (0) should be [unset] +Pass Web Animations: property from [unset] to [20px 20px, 0px 0px] at (0.3) should be [unset] +Pass Web Animations: property from [unset] to [20px 20px, 0px 0px] at (0.5) should be [20px 20px, 0px 0px] +Pass Web Animations: property from [unset] to [20px 20px, 0px 0px] at (0.6) should be [20px 20px, 0px 0px] Pass Web Animations: property from [unset] to [20px 20px, 0px 0px] at (1) should be [20px 20px, 0px 0px] -Fail Web Animations: property from [unset] to [20px 20px, 0px 0px] at (1.5) should be [20px 20px, 0px 0px] +Pass Web Animations: property from [unset] to [20px 20px, 0px 0px] at (1.5) should be [20px 20px, 0px 0px] Fail CSS Transitions: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (-0.25) should be [ 0px auto, 0px 0px, contain, cover] -Fail CSS Transitions: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (0) should be [ 0px auto, 0px 0px, contain, cover] -Fail CSS Transitions: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (0.25) should be [10px auto, 10px 10px, contain, cover] -Fail CSS Transitions: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (0.5) should be [20px auto, 20px 20px, contain, cover] -Fail CSS Transitions: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (0.75) should be [30px auto, 30px 30px, contain, cover] -Fail CSS Transitions: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (1) should be [40px auto, 40px 40px, contain, cover] -Fail CSS Transitions: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (1.25) should be [50px auto, 50px 50px, contain, cover] +Pass CSS Transitions: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (0) should be [ 0px auto, 0px 0px, contain, cover] +Pass CSS Transitions: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (0.25) should be [10px auto, 10px 10px, contain, cover] +Pass CSS Transitions: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (0.5) should be [20px auto, 20px 20px, contain, cover] +Pass CSS Transitions: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (0.75) should be [30px auto, 30px 30px, contain, cover] +Pass CSS Transitions: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (1) should be [40px auto, 40px 40px, contain, cover] +Pass CSS Transitions: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (1.25) should be [50px auto, 50px 50px, contain, cover] Fail CSS Transitions with transition: all: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (-0.25) should be [ 0px auto, 0px 0px, contain, cover] -Fail CSS Transitions with transition: all: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (0) should be [ 0px auto, 0px 0px, contain, cover] -Fail CSS Transitions with transition: all: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (0.25) should be [10px auto, 10px 10px, contain, cover] -Fail CSS Transitions with transition: all: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (0.5) should be [20px auto, 20px 20px, contain, cover] -Fail CSS Transitions with transition: all: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (0.75) should be [30px auto, 30px 30px, contain, cover] -Fail CSS Transitions with transition: all: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (1) should be [40px auto, 40px 40px, contain, cover] -Fail CSS Transitions with transition: all: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (1.25) should be [50px auto, 50px 50px, contain, cover] +Pass CSS Transitions with transition: all: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (0) should be [ 0px auto, 0px 0px, contain, cover] +Pass CSS Transitions with transition: all: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (0.25) should be [10px auto, 10px 10px, contain, cover] +Pass CSS Transitions with transition: all: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (0.5) should be [20px auto, 20px 20px, contain, cover] +Pass CSS Transitions with transition: all: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (0.75) should be [30px auto, 30px 30px, contain, cover] +Pass CSS Transitions with transition: all: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (1) should be [40px auto, 40px 40px, contain, cover] +Pass CSS Transitions with transition: all: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (1.25) should be [50px auto, 50px 50px, contain, cover] Fail CSS Animations: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (-0.25) should be [ 0px auto, 0px 0px, contain, cover] -Fail CSS Animations: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (0) should be [ 0px auto, 0px 0px, contain, cover] -Fail CSS Animations: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (0.25) should be [10px auto, 10px 10px, contain, cover] -Fail CSS Animations: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (0.5) should be [20px auto, 20px 20px, contain, cover] -Fail CSS Animations: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (0.75) should be [30px auto, 30px 30px, contain, cover] -Fail CSS Animations: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (1) should be [40px auto, 40px 40px, contain, cover] -Fail CSS Animations: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (1.25) should be [50px auto, 50px 50px, contain, cover] +Pass CSS Animations: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (0) should be [ 0px auto, 0px 0px, contain, cover] +Pass CSS Animations: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (0.25) should be [10px auto, 10px 10px, contain, cover] +Pass CSS Animations: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (0.5) should be [20px auto, 20px 20px, contain, cover] +Pass CSS Animations: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (0.75) should be [30px auto, 30px 30px, contain, cover] +Pass CSS Animations: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (1) should be [40px auto, 40px 40px, contain, cover] +Pass CSS Animations: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (1.25) should be [50px auto, 50px 50px, contain, cover] Fail Web Animations: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (-0.25) should be [ 0px auto, 0px 0px, contain, cover] -Fail Web Animations: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (0) should be [ 0px auto, 0px 0px, contain, cover] -Fail Web Animations: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (0.25) should be [10px auto, 10px 10px, contain, cover] -Fail Web Animations: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (0.5) should be [20px auto, 20px 20px, contain, cover] -Fail Web Animations: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (0.75) should be [30px auto, 30px 30px, contain, cover] -Fail Web Animations: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (1) should be [40px auto, 40px 40px, contain, cover] -Fail Web Animations: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (1.25) should be [50px auto, 50px 50px, contain, cover] +Pass Web Animations: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (0) should be [ 0px auto, 0px 0px, contain, cover] +Pass Web Animations: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (0.25) should be [10px auto, 10px 10px, contain, cover] +Pass Web Animations: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (0.5) should be [20px auto, 20px 20px, contain, cover] +Pass Web Animations: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (0.75) should be [30px auto, 30px 30px, contain, cover] +Pass Web Animations: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (1) should be [40px auto, 40px 40px, contain, cover] +Pass Web Animations: property from [0px auto, 0px 0px, contain, cover] to [40px auto, 40px 40px, contain, cover] at (1.25) should be [50px auto, 50px 50px, contain, cover] Pass CSS Transitions with transition-behavior:allow-discrete: property from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (-0.3) should be [0px 0px, 0px 0px, contain, cover] Pass CSS Transitions with transition-behavior:allow-discrete: property from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (0) should be [0px 0px, 0px 0px, contain, cover] Pass CSS Transitions with transition-behavior:allow-discrete: property from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (0.3) should be [0px 0px, 0px 0px, contain, cover] @@ -214,48 +214,48 @@ Pass Web Animations: property from [0px 0px, 0px 0px, contain, Pass Web Animations: property from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (0.6) should be [40px 40px, 40px 40px, cover, contain] Pass Web Animations: property from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (1) should be [40px 40px, 40px 40px, cover, contain] Pass Web Animations: property from [0px 0px, 0px 0px, contain, cover] to [40px 40px, 40px 40px, cover, contain] at (1.5) should be [40px 40px, 40px 40px, cover, contain] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (-0.3) should be [0px auto, 0px 0px] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0) should be [0px auto, 0px 0px] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.3) should be [0px auto, 0px 0px] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.5) should be [auto 40px, 40px 40px] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.6) should be [auto 40px, 40px 40px] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (1) should be [auto 40px, 40px 40px] -Fail CSS Transitions with transition-behavior:allow-discrete: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (1.5) should be [auto 40px, 40px 40px] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (-0.3) should be [0px auto, 0px 0px] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0) should be [0px auto, 0px 0px] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.3) should be [0px auto, 0px 0px] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.5) should be [auto 40px, 40px 40px] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.6) should be [auto 40px, 40px 40px] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (1) should be [auto 40px, 40px 40px] -Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (1.5) should be [auto 40px, 40px 40px] -Fail CSS Transitions: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (-0.3) should be [auto 40px, 40px 40px] -Fail CSS Transitions: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0) should be [auto 40px, 40px 40px] -Fail CSS Transitions: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.3) should be [auto 40px, 40px 40px] -Fail CSS Transitions: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.5) should be [auto 40px, 40px 40px] -Fail CSS Transitions: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.6) should be [auto 40px, 40px 40px] -Fail CSS Transitions: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (1) should be [auto 40px, 40px 40px] -Fail CSS Transitions: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (1.5) should be [auto 40px, 40px 40px] -Fail CSS Transitions with transition: all: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (-0.3) should be [auto 40px, 40px 40px] -Fail CSS Transitions with transition: all: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0) should be [auto 40px, 40px 40px] -Fail CSS Transitions with transition: all: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.3) should be [auto 40px, 40px 40px] -Fail CSS Transitions with transition: all: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.5) should be [auto 40px, 40px 40px] -Fail CSS Transitions with transition: all: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.6) should be [auto 40px, 40px 40px] -Fail CSS Transitions with transition: all: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (1) should be [auto 40px, 40px 40px] -Fail CSS Transitions with transition: all: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (1.5) should be [auto 40px, 40px 40px] -Fail CSS Animations: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (-0.3) should be [0px auto, 0px 0px] -Fail CSS Animations: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0) should be [0px auto, 0px 0px] -Fail CSS Animations: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.3) should be [0px auto, 0px 0px] -Fail CSS Animations: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.5) should be [auto 40px, 40px 40px] -Fail CSS Animations: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.6) should be [auto 40px, 40px 40px] -Fail CSS Animations: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (1) should be [auto 40px, 40px 40px] -Fail CSS Animations: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (1.5) should be [auto 40px, 40px 40px] -Fail Web Animations: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (-0.3) should be [0px auto, 0px 0px] -Fail Web Animations: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0) should be [0px auto, 0px 0px] -Fail Web Animations: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.3) should be [0px auto, 0px 0px] -Fail Web Animations: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.5) should be [auto 40px, 40px 40px] -Fail Web Animations: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.6) should be [auto 40px, 40px 40px] -Fail Web Animations: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (1) should be [auto 40px, 40px 40px] -Fail Web Animations: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (1.5) should be [auto 40px, 40px 40px] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (-0.3) should be [0px auto, 0px 0px] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0) should be [0px auto, 0px 0px] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.3) should be [0px auto, 0px 0px] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.5) should be [auto 40px, 40px 40px] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.6) should be [auto 40px, 40px 40px] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (1) should be [auto 40px, 40px 40px] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (1.5) should be [auto 40px, 40px 40px] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (-0.3) should be [0px auto, 0px 0px] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0) should be [0px auto, 0px 0px] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.3) should be [0px auto, 0px 0px] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.5) should be [auto 40px, 40px 40px] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.6) should be [auto 40px, 40px 40px] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (1) should be [auto 40px, 40px 40px] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (1.5) should be [auto 40px, 40px 40px] +Pass CSS Transitions: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (-0.3) should be [auto 40px, 40px 40px] +Pass CSS Transitions: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0) should be [auto 40px, 40px 40px] +Pass CSS Transitions: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.3) should be [auto 40px, 40px 40px] +Pass CSS Transitions: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.5) should be [auto 40px, 40px 40px] +Pass CSS Transitions: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.6) should be [auto 40px, 40px 40px] +Pass CSS Transitions: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (1) should be [auto 40px, 40px 40px] +Pass CSS Transitions: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (1.5) should be [auto 40px, 40px 40px] +Pass CSS Transitions with transition: all: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (-0.3) should be [auto 40px, 40px 40px] +Pass CSS Transitions with transition: all: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0) should be [auto 40px, 40px 40px] +Pass CSS Transitions with transition: all: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.3) should be [auto 40px, 40px 40px] +Pass CSS Transitions with transition: all: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.5) should be [auto 40px, 40px 40px] +Pass CSS Transitions with transition: all: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.6) should be [auto 40px, 40px 40px] +Pass CSS Transitions with transition: all: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (1) should be [auto 40px, 40px 40px] +Pass CSS Transitions with transition: all: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (1.5) should be [auto 40px, 40px 40px] +Pass CSS Animations: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (-0.3) should be [0px auto, 0px 0px] +Pass CSS Animations: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0) should be [0px auto, 0px 0px] +Pass CSS Animations: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.3) should be [0px auto, 0px 0px] +Pass CSS Animations: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.5) should be [auto 40px, 40px 40px] +Pass CSS Animations: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.6) should be [auto 40px, 40px 40px] +Pass CSS Animations: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (1) should be [auto 40px, 40px 40px] +Pass CSS Animations: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (1.5) should be [auto 40px, 40px 40px] +Pass Web Animations: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (-0.3) should be [0px auto, 0px 0px] +Pass Web Animations: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0) should be [0px auto, 0px 0px] +Pass Web Animations: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.3) should be [0px auto, 0px 0px] +Pass Web Animations: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.5) should be [auto 40px, 40px 40px] +Pass Web Animations: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (0.6) should be [auto 40px, 40px 40px] +Pass Web Animations: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (1) should be [auto 40px, 40px 40px] +Pass Web Animations: property from [0px auto, 0px 0px] to [auto 40px, 40px 40px] at (1.5) should be [auto 40px, 40px 40px] Fail CSS Transitions: property from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (-0.25) should be [ 0px 0px, 0px 0px, 0px 0px, 0px 0px] Pass CSS Transitions: property from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (0) should be [ 0px 0px, 0px 0px, 0px 0px, 0px 0px] Pass CSS Transitions: property from [0px 0px, 0px 0px, 0px 0px, 0px 0px] to [20px 20px, 40px 40px, 60px 60px, 100px 100px] at (0.25) should be [ 5px 5px, 10px 10px, 15px 15px, 25px 25px] @@ -313,33 +313,33 @@ Pass Web Animations: property from [0px 0px] to [80px 80px] at Pass Web Animations: property from [0px 0px] to [80px 80px] at (1) should be [ 80px 80px, 80px 80px, 80px 80px, 80px 80px] Pass Web Animations: property from [0px 0px] to [80px 80px] at (1.25) should be [100px 100px, 100px 100px, 100px 100px, 100px 100px] Fail CSS Transitions: property from [0px] to [80px] at (-0.25) should be [ 0px, 0px, 0px, 0px] -Fail CSS Transitions: property from [0px] to [80px] at (0) should be [ 0px, 0px, 0px, 0px] -Fail CSS Transitions: property from [0px] to [80px] at (0.25) should be [ 20px, 20px, 20px, 20px] -Fail CSS Transitions: property from [0px] to [80px] at (0.5) should be [ 40px, 40px, 40px, 40px] -Fail CSS Transitions: property from [0px] to [80px] at (0.75) should be [ 60px, 60px, 60px, 60px] -Fail CSS Transitions: property from [0px] to [80px] at (1) should be [ 80px, 80px, 80px, 80px] -Fail CSS Transitions: property from [0px] to [80px] at (1.25) should be [100px, 100px, 100px, 100px] +Pass CSS Transitions: property from [0px] to [80px] at (0) should be [ 0px, 0px, 0px, 0px] +Pass CSS Transitions: property from [0px] to [80px] at (0.25) should be [ 20px, 20px, 20px, 20px] +Pass CSS Transitions: property from [0px] to [80px] at (0.5) should be [ 40px, 40px, 40px, 40px] +Pass CSS Transitions: property from [0px] to [80px] at (0.75) should be [ 60px, 60px, 60px, 60px] +Pass CSS Transitions: property from [0px] to [80px] at (1) should be [ 80px, 80px, 80px, 80px] +Pass CSS Transitions: property from [0px] to [80px] at (1.25) should be [100px, 100px, 100px, 100px] Fail CSS Transitions with transition: all: property from [0px] to [80px] at (-0.25) should be [ 0px, 0px, 0px, 0px] -Fail CSS Transitions with transition: all: property from [0px] to [80px] at (0) should be [ 0px, 0px, 0px, 0px] -Fail CSS Transitions with transition: all: property from [0px] to [80px] at (0.25) should be [ 20px, 20px, 20px, 20px] -Fail CSS Transitions with transition: all: property from [0px] to [80px] at (0.5) should be [ 40px, 40px, 40px, 40px] -Fail CSS Transitions with transition: all: property from [0px] to [80px] at (0.75) should be [ 60px, 60px, 60px, 60px] -Fail CSS Transitions with transition: all: property from [0px] to [80px] at (1) should be [ 80px, 80px, 80px, 80px] -Fail CSS Transitions with transition: all: property from [0px] to [80px] at (1.25) should be [100px, 100px, 100px, 100px] +Pass CSS Transitions with transition: all: property from [0px] to [80px] at (0) should be [ 0px, 0px, 0px, 0px] +Pass CSS Transitions with transition: all: property from [0px] to [80px] at (0.25) should be [ 20px, 20px, 20px, 20px] +Pass CSS Transitions with transition: all: property from [0px] to [80px] at (0.5) should be [ 40px, 40px, 40px, 40px] +Pass CSS Transitions with transition: all: property from [0px] to [80px] at (0.75) should be [ 60px, 60px, 60px, 60px] +Pass CSS Transitions with transition: all: property from [0px] to [80px] at (1) should be [ 80px, 80px, 80px, 80px] +Pass CSS Transitions with transition: all: property from [0px] to [80px] at (1.25) should be [100px, 100px, 100px, 100px] Fail CSS Animations: property from [0px] to [80px] at (-0.25) should be [ 0px, 0px, 0px, 0px] -Fail CSS Animations: property from [0px] to [80px] at (0) should be [ 0px, 0px, 0px, 0px] -Fail CSS Animations: property from [0px] to [80px] at (0.25) should be [ 20px, 20px, 20px, 20px] -Fail CSS Animations: property from [0px] to [80px] at (0.5) should be [ 40px, 40px, 40px, 40px] -Fail CSS Animations: property from [0px] to [80px] at (0.75) should be [ 60px, 60px, 60px, 60px] -Fail CSS Animations: property from [0px] to [80px] at (1) should be [ 80px, 80px, 80px, 80px] -Fail CSS Animations: property from [0px] to [80px] at (1.25) should be [100px, 100px, 100px, 100px] +Pass CSS Animations: property from [0px] to [80px] at (0) should be [ 0px, 0px, 0px, 0px] +Pass CSS Animations: property from [0px] to [80px] at (0.25) should be [ 20px, 20px, 20px, 20px] +Pass CSS Animations: property from [0px] to [80px] at (0.5) should be [ 40px, 40px, 40px, 40px] +Pass CSS Animations: property from [0px] to [80px] at (0.75) should be [ 60px, 60px, 60px, 60px] +Pass CSS Animations: property from [0px] to [80px] at (1) should be [ 80px, 80px, 80px, 80px] +Pass CSS Animations: property from [0px] to [80px] at (1.25) should be [100px, 100px, 100px, 100px] Fail Web Animations: property from [0px] to [80px] at (-0.25) should be [ 0px, 0px, 0px, 0px] -Fail Web Animations: property from [0px] to [80px] at (0) should be [ 0px, 0px, 0px, 0px] -Fail Web Animations: property from [0px] to [80px] at (0.25) should be [ 20px, 20px, 20px, 20px] -Fail Web Animations: property from [0px] to [80px] at (0.5) should be [ 40px, 40px, 40px, 40px] -Fail Web Animations: property from [0px] to [80px] at (0.75) should be [ 60px, 60px, 60px, 60px] -Fail Web Animations: property from [0px] to [80px] at (1) should be [ 80px, 80px, 80px, 80px] -Fail Web Animations: property from [0px] to [80px] at (1.25) should be [100px, 100px, 100px, 100px] +Pass Web Animations: property from [0px] to [80px] at (0) should be [ 0px, 0px, 0px, 0px] +Pass Web Animations: property from [0px] to [80px] at (0.25) should be [ 20px, 20px, 20px, 20px] +Pass Web Animations: property from [0px] to [80px] at (0.5) should be [ 40px, 40px, 40px, 40px] +Pass Web Animations: property from [0px] to [80px] at (0.75) should be [ 60px, 60px, 60px, 60px] +Pass Web Animations: property from [0px] to [80px] at (1) should be [ 80px, 80px, 80px, 80px] +Pass Web Animations: property from [0px] to [80px] at (1.25) should be [100px, 100px, 100px, 100px] Fail CSS Transitions: property from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (-0.25) should be [ 0px 0px, 80px 0px, 0px 0px, 90px 0px] Fail CSS Transitions: property from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (0) should be [ 0px 0px, 80px 0px, 0px 0px, 80px 0px] Fail CSS Transitions: property from [0px 0px, 80px 0px] to [40px 40px, 80px 80px, 0px 80px] at (0.25) should be [10px 10px, 80px 20px, 0px 20px, 70px 10px] diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-masking/animations/mask-no-interpolation.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-masking/animations/mask-no-interpolation.txt index 1183c5805a4..e721abf7dee 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-masking/animations/mask-no-interpolation.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-masking/animations/mask-no-interpolation.txt @@ -2,8 +2,7 @@ Harness status: OK Found 42 tests -28 Pass -14 Fail +42 Pass Pass CSS Transitions with transition-behavior:allow-discrete: property from [none] to [url(mask.png)] at (-0.3) should be [none] Pass CSS Transitions with transition-behavior:allow-discrete: property from [none] to [url(mask.png)] at (0) should be [none] Pass CSS Transitions with transition-behavior:allow-discrete: property from [none] to [url(mask.png)] at (0.3) should be [none] @@ -32,17 +31,17 @@ Pass CSS Transitions with transition: all: property from [none] to [url(m Pass CSS Transitions with transition: all: property from [none] to [url(mask.png)] at (0.6) should be [url(mask.png)] Pass CSS Transitions with transition: all: property from [none] to [url(mask.png)] at (1) should be [url(mask.png)] Pass CSS Transitions with transition: all: property from [none] to [url(mask.png)] at (1.5) should be [url(mask.png)] -Fail CSS Animations: property from [none] to [url(mask.png)] at (-0.3) should be [none] -Fail CSS Animations: property from [none] to [url(mask.png)] at (0) should be [none] -Fail CSS Animations: property from [none] to [url(mask.png)] at (0.3) should be [none] -Fail CSS Animations: property from [none] to [url(mask.png)] at (0.5) should be [url(mask.png)] -Fail CSS Animations: property from [none] to [url(mask.png)] at (0.6) should be [url(mask.png)] -Fail CSS Animations: property from [none] to [url(mask.png)] at (1) should be [url(mask.png)] -Fail CSS Animations: property from [none] to [url(mask.png)] at (1.5) should be [url(mask.png)] -Fail Web Animations: property from [none] to [url(mask.png)] at (-0.3) should be [none] -Fail Web Animations: property from [none] to [url(mask.png)] at (0) should be [none] -Fail Web Animations: property from [none] to [url(mask.png)] at (0.3) should be [none] -Fail Web Animations: property from [none] to [url(mask.png)] at (0.5) should be [url(mask.png)] -Fail Web Animations: property from [none] to [url(mask.png)] at (0.6) should be [url(mask.png)] -Fail Web Animations: property from [none] to [url(mask.png)] at (1) should be [url(mask.png)] -Fail Web Animations: property from [none] to [url(mask.png)] at (1.5) should be [url(mask.png)] \ No newline at end of file +Pass CSS Animations: property from [none] to [url(mask.png)] at (-0.3) should be [none] +Pass CSS Animations: property from [none] to [url(mask.png)] at (0) should be [none] +Pass CSS Animations: property from [none] to [url(mask.png)] at (0.3) should be [none] +Pass CSS Animations: property from [none] to [url(mask.png)] at (0.5) should be [url(mask.png)] +Pass CSS Animations: property from [none] to [url(mask.png)] at (0.6) should be [url(mask.png)] +Pass CSS Animations: property from [none] to [url(mask.png)] at (1) should be [url(mask.png)] +Pass CSS Animations: property from [none] to [url(mask.png)] at (1.5) should be [url(mask.png)] +Pass Web Animations: property from [none] to [url(mask.png)] at (-0.3) should be [none] +Pass Web Animations: property from [none] to [url(mask.png)] at (0) should be [none] +Pass Web Animations: property from [none] to [url(mask.png)] at (0.3) should be [none] +Pass Web Animations: property from [none] to [url(mask.png)] at (0.5) should be [url(mask.png)] +Pass Web Animations: property from [none] to [url(mask.png)] at (0.6) should be [url(mask.png)] +Pass Web Animations: property from [none] to [url(mask.png)] at (1) should be [url(mask.png)] +Pass Web Animations: property from [none] to [url(mask.png)] at (1.5) should be [url(mask.png)] \ No newline at end of file