From 0d15cc4672b82577924c3ba214251f7994213dfa Mon Sep 17 00:00:00 2001 From: Glenn Skrzypczak Date: Mon, 25 Nov 2024 13:51:19 +0100 Subject: [PATCH] LibWeb/Animation: Fall back to discrete animation in more cases Use discrete animation when the number of components or the types of corresponding components do not match. This commit does not cover all cases, but adds FIXME comments in the appropriate places. --- Libraries/LibWeb/CSS/Interpolation.cpp | 26 +- .../animations/clip-interpolation.txt | 335 ++++++++++++++++++ .../animations/clip-interpolation.html | 117 ++++++ 3 files changed, 470 insertions(+), 8 deletions(-) create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-masking/animations/clip-interpolation.txt create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-masking/animations/clip-interpolation.html diff --git a/Libraries/LibWeb/CSS/Interpolation.cpp b/Libraries/LibWeb/CSS/Interpolation.cpp index 47d88f006e..1747fc5479 100644 --- a/Libraries/LibWeb/CSS/Interpolation.cpp +++ b/Libraries/LibWeb/CSS/Interpolation.cpp @@ -572,8 +572,9 @@ NonnullRefPtr interpolate_value(DOM::Element& element, CSSS case CSSStyleValue::Type::Integer: return IntegerStyleValue::create(interpolate_raw(from.as_integer().integer(), to.as_integer().integer(), delta)); case CSSStyleValue::Type::Length: { - auto& from_length = from.as_length().length(); - auto& to_length = to.as_length().length(); + // FIXME: Absolutize values + auto const& from_length = from.as_length().length(); + auto const& to_length = to.as_length().length(); return LengthStyleValue::create(Length(interpolate_raw(from_length.raw_value(), to_length.raw_value(), delta), from_length.type())); } case CSSStyleValue::Type::Number: @@ -583,8 +584,8 @@ NonnullRefPtr interpolate_value(DOM::Element& element, CSSS case CSSStyleValue::Type::Position: { // https://www.w3.org/TR/css-values-4/#combine-positions // FIXME: Interpolation of is defined as the independent interpolation of each component (x, y) normalized as an offset from the top left corner as a . - auto& from_position = from.as_position(); - auto& to_position = to.as_position(); + auto const& from_position = from.as_position(); + auto const& to_position = to.as_position(); return PositionStyleValue::create( interpolate_value(element, from_position.edge_x(), to_position.edge_x(), delta)->as_edge(), interpolate_value(element, from_position.edge_y(), to_position.edge_y(), delta)->as_edge()); @@ -606,6 +607,12 @@ NonnullRefPtr interpolate_value(DOM::Element& element, CSSS case CSSStyleValue::Type::Rect: { auto from_rect = from.as_rect().rect(); auto to_rect = to.as_rect().rect(); + + if (from_rect.top_edge.is_auto() != to_rect.top_edge.is_auto() || from_rect.right_edge.is_auto() != to_rect.right_edge.is_auto() || from_rect.bottom_edge.is_auto() != to_rect.bottom_edge.is_auto() || from_rect.left_edge.is_auto() != to_rect.left_edge.is_auto()) { + return delta >= 0.5f ? to : from; + } + + // FIXME: Absolutize values return RectStyleValue::create({ Length(interpolate_raw(from_rect.top_edge.raw_value(), to_rect.top_edge.raw_value(), delta), from_rect.top_edge.type()), Length(interpolate_raw(from_rect.right_edge.raw_value(), to_rect.right_edge.raw_value(), delta), from_rect.right_edge.type()), @@ -616,11 +623,14 @@ NonnullRefPtr interpolate_value(DOM::Element& element, CSSS case CSSStyleValue::Type::Transformation: VERIFY_NOT_REACHED(); case CSSStyleValue::Type::ValueList: { - auto& from_list = from.as_value_list(); - auto& to_list = to.as_value_list(); + auto const& from_list = from.as_value_list(); + auto const& to_list = to.as_value_list(); if (from_list.size() != to_list.size()) - return from; + return delta >= 0.5f ? to : from; + // FIXME: If the number of components or the types of corresponding components do not match, + // or if any component value uses discrete animation and the two corresponding values do not match, + // then the property values combine as discrete. StyleValueVector interpolated_values; interpolated_values.ensure_capacity(from_list.size()); for (size_t i = 0; i < from_list.size(); ++i) @@ -629,7 +639,7 @@ NonnullRefPtr interpolate_value(DOM::Element& element, CSSS return StyleValueList::create(move(interpolated_values), from_list.separator()); } default: - return from; + return delta >= 0.5f ? to : from; } } diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-masking/animations/clip-interpolation.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-masking/animations/clip-interpolation.txt new file mode 100644 index 0000000000..62704690f8 --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-masking/animations/clip-interpolation.txt @@ -0,0 +1,335 @@ +Summary + +Harness status: OK + +Rerun + +Found 324 tests + +248 Pass +76 Fail +Details +Result Test Name MessageFail CSS Transitions: property from neutral to [rect(20px, 20px, 20px, 20px)] at (-1) should be [rect(-20px 180px -20px 180px)] +Fail CSS Transitions: property from neutral to [rect(20px, 20px, 20px, 20px)] at (0) should be [rect(0px 100px 0px 100px)] +Fail CSS Transitions: property from neutral to [rect(20px, 20px, 20px, 20px)] at (0.25) should be [rect(5px 80px 5px 80px)] +Fail CSS Transitions: property from neutral to [rect(20px, 20px, 20px, 20px)] at (0.75) should be [rect(15px 40px 15px 40px)] +Pass CSS Transitions: property from neutral to [rect(20px, 20px, 20px, 20px)] at (1) should be [rect(20px 20px 20px 20px)] +Fail CSS Transitions: property from neutral to [rect(20px, 20px, 20px, 20px)] at (2) should be [rect(40px -60px 40px -60px)] +Fail CSS Transitions with transition: all: property from neutral to [rect(20px, 20px, 20px, 20px)] at (-1) should be [rect(-20px 180px -20px 180px)] +Fail CSS Transitions with transition: all: property from neutral to [rect(20px, 20px, 20px, 20px)] at (0) should be [rect(0px 100px 0px 100px)] +Fail CSS Transitions with transition: all: property from neutral to [rect(20px, 20px, 20px, 20px)] at (0.25) should be [rect(5px 80px 5px 80px)] +Fail CSS Transitions with transition: all: property from neutral to [rect(20px, 20px, 20px, 20px)] at (0.75) should be [rect(15px 40px 15px 40px)] +Pass CSS Transitions with transition: all: property from neutral to [rect(20px, 20px, 20px, 20px)] at (1) should be [rect(20px 20px 20px 20px)] +Fail CSS Transitions with transition: all: property from neutral to [rect(20px, 20px, 20px, 20px)] at (2) should be [rect(40px -60px 40px -60px)] +Fail CSS Animations: property from neutral to [rect(20px, 20px, 20px, 20px)] at (-1) should be [rect(-20px 180px -20px 180px)] +Fail CSS Animations: property from neutral to [rect(20px, 20px, 20px, 20px)] at (0) should be [rect(0px 100px 0px 100px)] +Fail CSS Animations: property from neutral to [rect(20px, 20px, 20px, 20px)] at (0.25) should be [rect(5px 80px 5px 80px)] +Fail CSS Animations: property from neutral to [rect(20px, 20px, 20px, 20px)] at (0.75) should be [rect(15px 40px 15px 40px)] +Pass CSS Animations: property from neutral to [rect(20px, 20px, 20px, 20px)] at (1) should be [rect(20px 20px 20px 20px)] +Fail CSS Animations: property from neutral to [rect(20px, 20px, 20px, 20px)] at (2) should be [rect(40px -60px 40px -60px)] +Fail Web Animations: property from neutral to [rect(20px, 20px, 20px, 20px)] at (-1) should be [rect(-20px 180px -20px 180px)] +Fail Web Animations: property from neutral to [rect(20px, 20px, 20px, 20px)] at (0) should be [rect(0px 100px 0px 100px)] +Fail Web Animations: property from neutral to [rect(20px, 20px, 20px, 20px)] at (0.25) should be [rect(5px 80px 5px 80px)] +Fail Web Animations: property from neutral to [rect(20px, 20px, 20px, 20px)] at (0.75) should be [rect(15px 40px 15px 40px)] +Pass Web Animations: property from neutral to [rect(20px, 20px, 20px, 20px)] at (1) should be [rect(20px 20px 20px 20px)] +Fail Web Animations: property from neutral to [rect(20px, 20px, 20px, 20px)] at (2) should be [rect(40px -60px 40px -60px)] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (-0.3) should be [initial] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (0) should be [initial] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (0.3) should be [initial] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (0.5) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (0.6) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (1) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (1.5) should be [rect(20px, 20px, 20px, 20px)] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (-0.3) should be [initial] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (0) should be [initial] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (0.3) should be [initial] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (0.5) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (0.6) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (1) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (1.5) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (-0.3) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (0) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (0.3) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (0.5) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (0.6) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (1) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (1.5) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions with transition: all: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (-0.3) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions with transition: all: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (0) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions with transition: all: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (0.3) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions with transition: all: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (0.5) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions with transition: all: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (0.6) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions with transition: all: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (1) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions with transition: all: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (1.5) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Animations: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (-0.3) should be [initial] +Pass CSS Animations: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (0) should be [initial] +Pass CSS Animations: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (0.3) should be [initial] +Pass CSS Animations: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (0.5) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Animations: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (0.6) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Animations: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (1) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Animations: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (1.5) should be [rect(20px, 20px, 20px, 20px)] +Pass Web Animations: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (-0.3) should be [initial] +Pass Web Animations: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (0) should be [initial] +Pass Web Animations: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (0.3) should be [initial] +Pass Web Animations: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (0.5) should be [rect(20px, 20px, 20px, 20px)] +Pass Web Animations: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (0.6) should be [rect(20px, 20px, 20px, 20px)] +Pass Web Animations: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (1) should be [rect(20px, 20px, 20px, 20px)] +Pass Web Animations: property from [initial] to [rect(20px, 20px, 20px, 20px)] at (1.5) should be [rect(20px, 20px, 20px, 20px)] +Fail CSS Transitions: property from [inherit] to [rect(20px, 20px, 20px, 20px)] at (-1) should be [rect(180px -20px 180px -20px)] +Fail CSS Transitions: property from [inherit] to [rect(20px, 20px, 20px, 20px)] at (0) should be [rect(100px 0px 100px 0px)] +Fail CSS Transitions: property from [inherit] to [rect(20px, 20px, 20px, 20px)] at (0.25) should be [rect(80px 5px 80px 5px)] +Fail CSS Transitions: property from [inherit] to [rect(20px, 20px, 20px, 20px)] at (0.75) should be [rect(40px 15px 40px 15px)] +Pass CSS Transitions: property from [inherit] to [rect(20px, 20px, 20px, 20px)] at (1) should be [rect(20px 20px 20px 20px)] +Fail CSS Transitions: property from [inherit] to [rect(20px, 20px, 20px, 20px)] at (2) should be [rect(-60px 40px -60px 40px)] +Fail CSS Transitions with transition: all: property from [inherit] to [rect(20px, 20px, 20px, 20px)] at (-1) should be [rect(180px -20px 180px -20px)] +Fail CSS Transitions with transition: all: property from [inherit] to [rect(20px, 20px, 20px, 20px)] at (0) should be [rect(100px 0px 100px 0px)] +Fail CSS Transitions with transition: all: property from [inherit] to [rect(20px, 20px, 20px, 20px)] at (0.25) should be [rect(80px 5px 80px 5px)] +Fail CSS Transitions with transition: all: property from [inherit] to [rect(20px, 20px, 20px, 20px)] at (0.75) should be [rect(40px 15px 40px 15px)] +Pass CSS Transitions with transition: all: property from [inherit] to [rect(20px, 20px, 20px, 20px)] at (1) should be [rect(20px 20px 20px 20px)] +Fail CSS Transitions with transition: all: property from [inherit] to [rect(20px, 20px, 20px, 20px)] at (2) should be [rect(-60px 40px -60px 40px)] +Pass CSS Animations: property from [inherit] to [rect(20px, 20px, 20px, 20px)] at (-1) should be [rect(180px -20px 180px -20px)] +Pass CSS Animations: property from [inherit] to [rect(20px, 20px, 20px, 20px)] at (0) should be [rect(100px 0px 100px 0px)] +Pass CSS Animations: property from [inherit] to [rect(20px, 20px, 20px, 20px)] at (0.25) should be [rect(80px 5px 80px 5px)] +Pass CSS Animations: property from [inherit] to [rect(20px, 20px, 20px, 20px)] at (0.75) should be [rect(40px 15px 40px 15px)] +Pass CSS Animations: property from [inherit] to [rect(20px, 20px, 20px, 20px)] at (1) should be [rect(20px 20px 20px 20px)] +Pass CSS Animations: property from [inherit] to [rect(20px, 20px, 20px, 20px)] at (2) should be [rect(-60px 40px -60px 40px)] +Pass Web Animations: property from [inherit] to [rect(20px, 20px, 20px, 20px)] at (-1) should be [rect(180px -20px 180px -20px)] +Pass Web Animations: property from [inherit] to [rect(20px, 20px, 20px, 20px)] at (0) should be [rect(100px 0px 100px 0px)] +Pass Web Animations: property from [inherit] to [rect(20px, 20px, 20px, 20px)] at (0.25) should be [rect(80px 5px 80px 5px)] +Pass Web Animations: property from [inherit] to [rect(20px, 20px, 20px, 20px)] at (0.75) should be [rect(40px 15px 40px 15px)] +Pass Web Animations: property from [inherit] to [rect(20px, 20px, 20px, 20px)] at (1) should be [rect(20px 20px 20px 20px)] +Pass Web Animations: property from [inherit] to [rect(20px, 20px, 20px, 20px)] at (2) should be [rect(-60px 40px -60px 40px)] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (-0.3) should be [unset] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (0) should be [unset] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (0.3) should be [unset] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (0.5) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (0.6) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (1) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (1.5) should be [rect(20px, 20px, 20px, 20px)] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (-0.3) should be [unset] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (0) should be [unset] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (0.3) should be [unset] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (0.5) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (0.6) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (1) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (1.5) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (-0.3) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (0) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (0.3) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (0.5) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (0.6) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (1) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (1.5) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions with transition: all: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (-0.3) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions with transition: all: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (0) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions with transition: all: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (0.3) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions with transition: all: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (0.5) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions with transition: all: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (0.6) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions with transition: all: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (1) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Transitions with transition: all: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (1.5) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Animations: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (-0.3) should be [unset] +Pass CSS Animations: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (0) should be [unset] +Pass CSS Animations: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (0.3) should be [unset] +Pass CSS Animations: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (0.5) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Animations: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (0.6) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Animations: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (1) should be [rect(20px, 20px, 20px, 20px)] +Pass CSS Animations: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (1.5) should be [rect(20px, 20px, 20px, 20px)] +Pass Web Animations: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (-0.3) should be [unset] +Pass Web Animations: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (0) should be [unset] +Pass Web Animations: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (0.3) should be [unset] +Pass Web Animations: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (0.5) should be [rect(20px, 20px, 20px, 20px)] +Pass Web Animations: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (0.6) should be [rect(20px, 20px, 20px, 20px)] +Pass Web Animations: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (1) should be [rect(20px, 20px, 20px, 20px)] +Pass Web Animations: property from [unset] to [rect(20px, 20px, 20px, 20px)] at (1.5) should be [rect(20px, 20px, 20px, 20px)] +Fail CSS Transitions: property from [rect(0px, 75px, 80px, 10px)] to [rect(0px, 100px, 90px, 5px)] at (-1) should be [rect(0px, 50px, 70px, 15px)] +Fail CSS Transitions: property from [rect(0px, 75px, 80px, 10px)] to [rect(0px, 100px, 90px, 5px)] at (0) should be [rect(0px, 75px, 80px, 10px)] +Fail CSS Transitions: property from [rect(0px, 75px, 80px, 10px)] to [rect(0px, 100px, 90px, 5px)] at (0.25) should be [rect(0px, 81.25px, 82.5px, 8.75px)] +Fail CSS Transitions: property from [rect(0px, 75px, 80px, 10px)] to [rect(0px, 100px, 90px, 5px)] at (0.75) should be [rect(0px, 93.75px, 87.5px, 6.25px)] +Pass CSS Transitions: property from [rect(0px, 75px, 80px, 10px)] to [rect(0px, 100px, 90px, 5px)] at (1) should be [rect(0px, 100px, 90px, 5px)] +Fail CSS Transitions: property from [rect(0px, 75px, 80px, 10px)] to [rect(0px, 100px, 90px, 5px)] at (2) should be [rect(0px, 125px, 100px, 0px)] +Fail CSS Transitions with transition: all: property from [rect(0px, 75px, 80px, 10px)] to [rect(0px, 100px, 90px, 5px)] at (-1) should be [rect(0px, 50px, 70px, 15px)] +Fail CSS Transitions with transition: all: property from [rect(0px, 75px, 80px, 10px)] to [rect(0px, 100px, 90px, 5px)] at (0) should be [rect(0px, 75px, 80px, 10px)] +Fail CSS Transitions with transition: all: property from [rect(0px, 75px, 80px, 10px)] to [rect(0px, 100px, 90px, 5px)] at (0.25) should be [rect(0px, 81.25px, 82.5px, 8.75px)] +Fail CSS Transitions with transition: all: property from [rect(0px, 75px, 80px, 10px)] to [rect(0px, 100px, 90px, 5px)] at (0.75) should be [rect(0px, 93.75px, 87.5px, 6.25px)] +Pass CSS Transitions with transition: all: property from [rect(0px, 75px, 80px, 10px)] to [rect(0px, 100px, 90px, 5px)] at (1) should be [rect(0px, 100px, 90px, 5px)] +Fail CSS Transitions with transition: all: property from [rect(0px, 75px, 80px, 10px)] to [rect(0px, 100px, 90px, 5px)] at (2) should be [rect(0px, 125px, 100px, 0px)] +Pass CSS Animations: property from [rect(0px, 75px, 80px, 10px)] to [rect(0px, 100px, 90px, 5px)] at (-1) should be [rect(0px, 50px, 70px, 15px)] +Pass CSS Animations: property from [rect(0px, 75px, 80px, 10px)] to [rect(0px, 100px, 90px, 5px)] at (0) should be [rect(0px, 75px, 80px, 10px)] +Pass CSS Animations: property from [rect(0px, 75px, 80px, 10px)] to [rect(0px, 100px, 90px, 5px)] at (0.25) should be [rect(0px, 81.25px, 82.5px, 8.75px)] +Pass CSS Animations: property from [rect(0px, 75px, 80px, 10px)] to [rect(0px, 100px, 90px, 5px)] at (0.75) should be [rect(0px, 93.75px, 87.5px, 6.25px)] +Pass CSS Animations: property from [rect(0px, 75px, 80px, 10px)] to [rect(0px, 100px, 90px, 5px)] at (1) should be [rect(0px, 100px, 90px, 5px)] +Pass CSS Animations: property from [rect(0px, 75px, 80px, 10px)] to [rect(0px, 100px, 90px, 5px)] at (2) should be [rect(0px, 125px, 100px, 0px)] +Pass Web Animations: property from [rect(0px, 75px, 80px, 10px)] to [rect(0px, 100px, 90px, 5px)] at (-1) should be [rect(0px, 50px, 70px, 15px)] +Pass Web Animations: property from [rect(0px, 75px, 80px, 10px)] to [rect(0px, 100px, 90px, 5px)] at (0) should be [rect(0px, 75px, 80px, 10px)] +Pass Web Animations: property from [rect(0px, 75px, 80px, 10px)] to [rect(0px, 100px, 90px, 5px)] at (0.25) should be [rect(0px, 81.25px, 82.5px, 8.75px)] +Pass Web Animations: property from [rect(0px, 75px, 80px, 10px)] to [rect(0px, 100px, 90px, 5px)] at (0.75) should be [rect(0px, 93.75px, 87.5px, 6.25px)] +Pass Web Animations: property from [rect(0px, 75px, 80px, 10px)] to [rect(0px, 100px, 90px, 5px)] at (1) should be [rect(0px, 100px, 90px, 5px)] +Pass Web Animations: property from [rect(0px, 75px, 80px, 10px)] to [rect(0px, 100px, 90px, 5px)] at (2) should be [rect(0px, 125px, 100px, 0px)] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (-0.3) should be [rect(auto, auto, auto, 10px)] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (0) should be [rect(auto, auto, auto, 10px)] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (0.3) should be [rect(auto, auto, auto, 10px)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (0.5) should be [rect(20px, 50px, 50px, auto)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (0.6) should be [rect(20px, 50px, 50px, auto)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (1) should be [rect(20px, 50px, 50px, auto)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (1.5) should be [rect(20px, 50px, 50px, auto)] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (-0.3) should be [rect(auto, auto, auto, 10px)] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (0) should be [rect(auto, auto, auto, 10px)] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (0.3) should be [rect(auto, auto, auto, 10px)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (0.5) should be [rect(20px, 50px, 50px, auto)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (0.6) should be [rect(20px, 50px, 50px, auto)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (1) should be [rect(20px, 50px, 50px, auto)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (1.5) should be [rect(20px, 50px, 50px, auto)] +Pass CSS Transitions: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (-0.3) should be [rect(20px, 50px, 50px, auto)] +Pass CSS Transitions: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (0) should be [rect(20px, 50px, 50px, auto)] +Pass CSS Transitions: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (0.3) should be [rect(20px, 50px, 50px, auto)] +Pass CSS Transitions: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (0.5) should be [rect(20px, 50px, 50px, auto)] +Pass CSS Transitions: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (0.6) should be [rect(20px, 50px, 50px, auto)] +Pass CSS Transitions: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (1) should be [rect(20px, 50px, 50px, auto)] +Pass CSS Transitions: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (1.5) should be [rect(20px, 50px, 50px, auto)] +Pass CSS Transitions with transition: all: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (-0.3) should be [rect(20px, 50px, 50px, auto)] +Pass CSS Transitions with transition: all: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (0) should be [rect(20px, 50px, 50px, auto)] +Pass CSS Transitions with transition: all: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (0.3) should be [rect(20px, 50px, 50px, auto)] +Pass CSS Transitions with transition: all: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (0.5) should be [rect(20px, 50px, 50px, auto)] +Pass CSS Transitions with transition: all: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (0.6) should be [rect(20px, 50px, 50px, auto)] +Pass CSS Transitions with transition: all: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (1) should be [rect(20px, 50px, 50px, auto)] +Pass CSS Transitions with transition: all: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (1.5) should be [rect(20px, 50px, 50px, auto)] +Pass CSS Animations: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (-0.3) should be [rect(auto, auto, auto, 10px)] +Pass CSS Animations: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (0) should be [rect(auto, auto, auto, 10px)] +Pass CSS Animations: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (0.3) should be [rect(auto, auto, auto, 10px)] +Pass CSS Animations: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (0.5) should be [rect(20px, 50px, 50px, auto)] +Pass CSS Animations: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (0.6) should be [rect(20px, 50px, 50px, auto)] +Pass CSS Animations: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (1) should be [rect(20px, 50px, 50px, auto)] +Pass CSS Animations: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (1.5) should be [rect(20px, 50px, 50px, auto)] +Pass Web Animations: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (-0.3) should be [rect(auto, auto, auto, 10px)] +Pass Web Animations: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (0) should be [rect(auto, auto, auto, 10px)] +Pass Web Animations: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (0.3) should be [rect(auto, auto, auto, 10px)] +Pass Web Animations: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (0.5) should be [rect(20px, 50px, 50px, auto)] +Pass Web Animations: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (0.6) should be [rect(20px, 50px, 50px, auto)] +Pass Web Animations: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (1) should be [rect(20px, 50px, 50px, auto)] +Pass Web Animations: property from [rect(auto, auto, auto, 10px)] to [rect(20px, 50px, 50px, auto)] at (1.5) should be [rect(20px, 50px, 50px, auto)] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (-0.3) should be [rect(auto, 0px, auto, 10px)] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (0) should be [rect(auto, 0px, auto, 10px)] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (0.3) should be [rect(auto, 0px, auto, 10px)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (0.5) should be [rect(auto, 50px, 50px, auto)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (0.6) should be [rect(auto, 50px, 50px, auto)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (1) should be [rect(auto, 50px, 50px, auto)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (1.5) should be [rect(auto, 50px, 50px, auto)] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (-0.3) should be [rect(auto, 0px, auto, 10px)] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (0) should be [rect(auto, 0px, auto, 10px)] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (0.3) should be [rect(auto, 0px, auto, 10px)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (0.5) should be [rect(auto, 50px, 50px, auto)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (0.6) should be [rect(auto, 50px, 50px, auto)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (1) should be [rect(auto, 50px, 50px, auto)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (1.5) should be [rect(auto, 50px, 50px, auto)] +Pass CSS Transitions: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (-0.3) should be [rect(auto, 50px, 50px, auto)] +Pass CSS Transitions: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (0) should be [rect(auto, 50px, 50px, auto)] +Pass CSS Transitions: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (0.3) should be [rect(auto, 50px, 50px, auto)] +Pass CSS Transitions: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (0.5) should be [rect(auto, 50px, 50px, auto)] +Pass CSS Transitions: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (0.6) should be [rect(auto, 50px, 50px, auto)] +Pass CSS Transitions: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (1) should be [rect(auto, 50px, 50px, auto)] +Pass CSS Transitions: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (1.5) should be [rect(auto, 50px, 50px, auto)] +Pass CSS Transitions with transition: all: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (-0.3) should be [rect(auto, 50px, 50px, auto)] +Pass CSS Transitions with transition: all: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (0) should be [rect(auto, 50px, 50px, auto)] +Pass CSS Transitions with transition: all: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (0.3) should be [rect(auto, 50px, 50px, auto)] +Pass CSS Transitions with transition: all: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (0.5) should be [rect(auto, 50px, 50px, auto)] +Pass CSS Transitions with transition: all: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (0.6) should be [rect(auto, 50px, 50px, auto)] +Pass CSS Transitions with transition: all: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (1) should be [rect(auto, 50px, 50px, auto)] +Pass CSS Transitions with transition: all: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (1.5) should be [rect(auto, 50px, 50px, auto)] +Pass CSS Animations: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (-0.3) should be [rect(auto, 0px, auto, 10px)] +Pass CSS Animations: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (0) should be [rect(auto, 0px, auto, 10px)] +Pass CSS Animations: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (0.3) should be [rect(auto, 0px, auto, 10px)] +Pass CSS Animations: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (0.5) should be [rect(auto, 50px, 50px, auto)] +Pass CSS Animations: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (0.6) should be [rect(auto, 50px, 50px, auto)] +Pass CSS Animations: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (1) should be [rect(auto, 50px, 50px, auto)] +Pass CSS Animations: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (1.5) should be [rect(auto, 50px, 50px, auto)] +Pass Web Animations: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (-0.3) should be [rect(auto, 0px, auto, 10px)] +Pass Web Animations: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (0) should be [rect(auto, 0px, auto, 10px)] +Pass Web Animations: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (0.3) should be [rect(auto, 0px, auto, 10px)] +Pass Web Animations: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (0.5) should be [rect(auto, 50px, 50px, auto)] +Pass Web Animations: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (0.6) should be [rect(auto, 50px, 50px, auto)] +Pass Web Animations: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (1) should be [rect(auto, 50px, 50px, auto)] +Pass Web Animations: property from [rect(auto, 0px, auto, 10px)] to [rect(auto, 50px, 50px, auto)] at (1.5) should be [rect(auto, 50px, 50px, auto)] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (-0.3) should be [auto] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (0) should be [auto] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (0.3) should be [auto] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (0.5) should be [rect(0px, 50px, 50px, 0px)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (0.6) should be [rect(0px, 50px, 50px, 0px)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (1) should be [rect(0px, 50px, 50px, 0px)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (1.5) should be [rect(0px, 50px, 50px, 0px)] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (-0.3) should be [auto] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (0) should be [auto] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (0.3) should be [auto] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (0.5) should be [rect(0px, 50px, 50px, 0px)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (0.6) should be [rect(0px, 50px, 50px, 0px)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (1) should be [rect(0px, 50px, 50px, 0px)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (1.5) should be [rect(0px, 50px, 50px, 0px)] +Pass CSS Transitions: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (-0.3) should be [rect(0px, 50px, 50px, 0px)] +Pass CSS Transitions: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (0) should be [rect(0px, 50px, 50px, 0px)] +Pass CSS Transitions: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (0.3) should be [rect(0px, 50px, 50px, 0px)] +Pass CSS Transitions: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (0.5) should be [rect(0px, 50px, 50px, 0px)] +Pass CSS Transitions: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (0.6) should be [rect(0px, 50px, 50px, 0px)] +Pass CSS Transitions: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (1) should be [rect(0px, 50px, 50px, 0px)] +Pass CSS Transitions: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (1.5) should be [rect(0px, 50px, 50px, 0px)] +Pass CSS Transitions with transition: all: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (-0.3) should be [rect(0px, 50px, 50px, 0px)] +Pass CSS Transitions with transition: all: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (0) should be [rect(0px, 50px, 50px, 0px)] +Pass CSS Transitions with transition: all: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (0.3) should be [rect(0px, 50px, 50px, 0px)] +Pass CSS Transitions with transition: all: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (0.5) should be [rect(0px, 50px, 50px, 0px)] +Pass CSS Transitions with transition: all: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (0.6) should be [rect(0px, 50px, 50px, 0px)] +Pass CSS Transitions with transition: all: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (1) should be [rect(0px, 50px, 50px, 0px)] +Pass CSS Transitions with transition: all: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (1.5) should be [rect(0px, 50px, 50px, 0px)] +Pass CSS Animations: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (-0.3) should be [auto] +Pass CSS Animations: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (0) should be [auto] +Pass CSS Animations: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (0.3) should be [auto] +Pass CSS Animations: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (0.5) should be [rect(0px, 50px, 50px, 0px)] +Pass CSS Animations: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (0.6) should be [rect(0px, 50px, 50px, 0px)] +Pass CSS Animations: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (1) should be [rect(0px, 50px, 50px, 0px)] +Pass CSS Animations: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (1.5) should be [rect(0px, 50px, 50px, 0px)] +Pass Web Animations: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (-0.3) should be [auto] +Pass Web Animations: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (0) should be [auto] +Pass Web Animations: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (0.3) should be [auto] +Pass Web Animations: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (0.5) should be [rect(0px, 50px, 50px, 0px)] +Pass Web Animations: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (0.6) should be [rect(0px, 50px, 50px, 0px)] +Pass Web Animations: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (1) should be [rect(0px, 50px, 50px, 0px)] +Pass Web Animations: property from [auto] to [rect(0px, 50px, 50px, 0px)] at (1.5) should be [rect(0px, 50px, 50px, 0px)] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (-0.3) should be [rect(0px, 50px, 50px, 0px)] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (0) should be [rect(0px, 50px, 50px, 0px)] +Fail CSS Transitions with transition-behavior:allow-discrete: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (0.3) should be [rect(0px, 50px, 50px, 0px)] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (0.5) should be [auto] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (0.6) should be [auto] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (1) should be [auto] +Pass CSS Transitions with transition-behavior:allow-discrete: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (1.5) should be [auto] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (-0.3) should be [rect(0px, 50px, 50px, 0px)] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (0) should be [rect(0px, 50px, 50px, 0px)] +Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (0.3) should be [rect(0px, 50px, 50px, 0px)] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (0.5) should be [auto] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (0.6) should be [auto] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (1) should be [auto] +Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (1.5) should be [auto] +Pass CSS Transitions: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (-0.3) should be [auto] +Pass CSS Transitions: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (0) should be [auto] +Pass CSS Transitions: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (0.3) should be [auto] +Pass CSS Transitions: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (0.5) should be [auto] +Pass CSS Transitions: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (0.6) should be [auto] +Pass CSS Transitions: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (1) should be [auto] +Pass CSS Transitions: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (1.5) should be [auto] +Pass CSS Transitions with transition: all: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (-0.3) should be [auto] +Pass CSS Transitions with transition: all: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (0) should be [auto] +Pass CSS Transitions with transition: all: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (0.3) should be [auto] +Pass CSS Transitions with transition: all: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (0.5) should be [auto] +Pass CSS Transitions with transition: all: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (0.6) should be [auto] +Pass CSS Transitions with transition: all: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (1) should be [auto] +Pass CSS Transitions with transition: all: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (1.5) should be [auto] +Pass CSS Animations: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (-0.3) should be [rect(0px, 50px, 50px, 0px)] +Pass CSS Animations: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (0) should be [rect(0px, 50px, 50px, 0px)] +Pass CSS Animations: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (0.3) should be [rect(0px, 50px, 50px, 0px)] +Pass CSS Animations: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (0.5) should be [auto] +Pass CSS Animations: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (0.6) should be [auto] +Pass CSS Animations: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (1) should be [auto] +Pass CSS Animations: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (1.5) should be [auto] +Pass Web Animations: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (-0.3) should be [rect(0px, 50px, 50px, 0px)] +Pass Web Animations: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (0) should be [rect(0px, 50px, 50px, 0px)] +Pass Web Animations: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (0.3) should be [rect(0px, 50px, 50px, 0px)] +Pass Web Animations: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (0.5) should be [auto] +Pass Web Animations: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (0.6) should be [auto] +Pass Web Animations: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (1) should be [auto] +Pass Web Animations: property from [rect(0px, 50px, 50px, 0px)] to [auto] at (1.5) should be [auto] \ No newline at end of file diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-masking/animations/clip-interpolation.html b/Tests/LibWeb/Text/input/wpt-import/css/css-masking/animations/clip-interpolation.html new file mode 100644 index 0000000000..4863ebef5e --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-masking/animations/clip-interpolation.html @@ -0,0 +1,117 @@ + + +clip interpolation + + + + + + + + + + + +