tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit ef698e4dd79ee23661f5f3776233feb33b7efbd3
parent c2079e4df72488ce4cbea17b0a0a96d7c1825d38
Author: Serban Stanca <sstanca@mozilla.com>
Date:   Thu,  4 Dec 2025 20:25:58 +0200

Revert "Bug 2002614 - Fix <relative-control-point>'s underpermissive interpolation. r=firefox-style-system-reviewers,emilio" for causing build bustages in SVGPathData.cpp.

This reverts commit 28249dccc9b988be3d3d8765d043ffab2339d6d3.

Diffstat:
Mdom/svg/SVGAnimatedPathSegList.cpp | 2+-
Mdom/svg/SVGPathData.cpp | 49+++++++++++++++++++++++++++----------------------
Mdom/svg/SVGPathSegUtils.cpp | 21++++++++++++++-------
Mlayout/style/ServoStyleConstsInlines.h | 15++++++++++++---
Mservo/components/style/values/generics/basic_shape.rs | 31++++++++++++++++++-------------
Mservo/components/style/values/specified/basic_shape.rs | 10++--------
Mservo/components/style/values/specified/svg_path.rs | 36++++++++++++++++--------------------
Mservo/ports/geckolib/cbindgen.toml | 6+++---
Atesting/web-platform/meta/css/css-masking/animations/clip-path-interpolation-shape-control-points.html.ini | 1470+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
9 files changed, 1563 insertions(+), 77 deletions(-)

diff --git a/dom/svg/SVGAnimatedPathSegList.cpp b/dom/svg/SVGAnimatedPathSegList.cpp @@ -44,7 +44,7 @@ static StyleCurveControlPoint<float> MakeControlPoint(PositionType type, return StyleCurveControlPoint<float>::Absolute({x, y}); } else { const auto rcp = - StyleRelativeControlPoint<float>{{x, y}, StyleControlReference::Start}; + StyleRelativeControlPoint<float>{{x, y}, StyleControlReference::None}; return StyleCurveControlPoint<float>::Relative(rcp); } } diff --git a/dom/svg/SVGPathData.cpp b/dom/svg/SVGPathData.cpp @@ -260,12 +260,12 @@ static already_AddRefed<Path> BuildPathInternal( break; } case Command::Tag::CubicCurve: + isRelative = cmd.cubic_curve.point.IsByCoordinate(); segEnd = cmd.cubic_curve.point.ToGfxPoint(aPercentageBasis); - segEnd = - cmd.cubic_curve.point.IsByCoordinate() ? segEnd + segStart : segEnd; - cp1 = cmd.cubic_curve.control1.ToGfxPoint(segStart, segEnd, + segEnd = isRelative ? segEnd + segStart : segEnd; + cp1 = cmd.cubic_curve.control1.ToGfxPoint(segStart, segEnd, isRelative, aPercentageBasis); - cp2 = cmd.cubic_curve.control2.ToGfxPoint(segStart, segEnd, + cp2 = cmd.cubic_curve.control2.ToGfxPoint(segStart, segEnd, isRelative, aPercentageBasis); if (segEnd != segStart || segEnd != cp1 || segEnd != cp2) { @@ -275,11 +275,11 @@ static already_AddRefed<Path> BuildPathInternal( break; case Command::Tag::QuadCurve: + isRelative = cmd.quad_curve.point.IsByCoordinate(); segEnd = cmd.quad_curve.point.ToGfxPoint(aPercentageBasis); - segEnd = cmd.quad_curve.point.IsByCoordinate() - ? segEnd + segStart - : segEnd; // set before setting tcp2! - cp1 = cmd.quad_curve.control1.ToGfxPoint(segStart, segEnd, + segEnd = isRelative ? segEnd + segStart + : segEnd; // set before setting tcp2! + cp1 = cmd.quad_curve.control1.ToGfxPoint(segStart, segEnd, isRelative, aPercentageBasis); // Convert quadratic curve to cubic curve: @@ -345,11 +345,11 @@ static already_AddRefed<Path> BuildPathInternal( break; } case Command::Tag::SmoothCubic: + isRelative = cmd.smooth_cubic.point.IsByCoordinate(); segEnd = cmd.smooth_cubic.point.ToGfxPoint(aPercentageBasis); - segEnd = cmd.smooth_cubic.point.IsByCoordinate() ? segEnd + segStart - : segEnd; + segEnd = isRelative ? segEnd + segStart : segEnd; cp1 = prevSeg && prevSeg->IsCubicType() ? segStart * 2 - cp2 : segStart; - cp2 = cmd.smooth_cubic.control2.ToGfxPoint(segStart, segEnd, + cp2 = cmd.smooth_cubic.control2.ToGfxPoint(segStart, segEnd, isRelative, aPercentageBasis); if (segEnd != segStart || segEnd != cp1 || segEnd != cp2) { @@ -530,6 +530,7 @@ void SVGPathData::GetMarkerPositioningData(Span<const StylePathCommand> aPath, Point& segStart = prevSegEnd; Point segEnd; float segStartAngle, segEndAngle; + bool isRelative = false; switch (cmd.tag) // to find segStartAngle, segEnd and segEndAngle { @@ -554,13 +555,15 @@ void SVGPathData::GetMarkerPositioningData(Span<const StylePathCommand> aPath, break; } case StylePathCommand::Tag::CubicCurve: { + isRelative = cmd.cubic_curve.point.IsByCoordinate(); segEnd = cmd.cubic_curve.point.ToGfxPoint() * aZoom; - segEnd = - cmd.cubic_curve.point.IsByCoordinate() ? segEnd + segStart : segEnd; + segEnd = isRelative ? segEnd + segStart : segEnd; Point cp1 = - cmd.cubic_curve.control1.ToGfxPoint(segStart, segEnd) * aZoom; + cmd.cubic_curve.control1.ToGfxPoint(segStart, segEnd, isRelative) * + aZoom; Point cp2 = - cmd.cubic_curve.control2.ToGfxPoint(segStart, segEnd) * aZoom; + cmd.cubic_curve.control2.ToGfxPoint(segStart, segEnd, isRelative) * + aZoom; prevCP = cp2; segStartAngle = AngleOfVector( @@ -570,12 +573,13 @@ void SVGPathData::GetMarkerPositioningData(Span<const StylePathCommand> aPath, break; } case StylePathCommand::Tag::QuadCurve: { + isRelative = cmd.quad_curve.point.IsByCoordinate(); segEnd = cmd.quad_curve.point.ToGfxPoint() * aZoom; - segEnd = cmd.quad_curve.point.IsByCoordinate() - ? segEnd + segStart - : segEnd; // set before setting tcp2! + segEnd = isRelative ? segEnd + segStart + : segEnd; // set before setting tcp2! Point cp1 = - cmd.quad_curve.control1.ToGfxPoint(segStart, segEnd) * aZoom; + cmd.quad_curve.control1.ToGfxPoint(segStart, segEnd, isRelative) * + aZoom; prevCP = cp1; segStartAngle = AngleOfVector(cp1 == segStart ? segEnd : cp1, segStart); @@ -649,11 +653,12 @@ void SVGPathData::GetMarkerPositioningData(Span<const StylePathCommand> aPath, const Point& cp1 = prevSeg && prevSeg->IsCubicType() ? segStart * 2 - prevCP : segStart; + isRelative = cmd.smooth_cubic.point.IsByCoordinate(); segEnd = cmd.smooth_cubic.point.ToGfxPoint() * aZoom; - segEnd = cmd.smooth_cubic.point.IsByCoordinate() ? segEnd + segStart - : segEnd; + segEnd = isRelative ? segEnd + segStart : segEnd; Point cp2 = - cmd.smooth_cubic.control2.ToGfxPoint(segStart, segEnd) * aZoom; + cmd.smooth_cubic.control2.ToGfxPoint(segStart, segEnd, isRelative) * + aZoom; prevCP = cp2; segStartAngle = AngleOfVector( diff --git a/dom/svg/SVGPathSegUtils.cpp b/dom/svg/SVGPathSegUtils.cpp @@ -129,12 +129,15 @@ void SVGPathSegUtils::TraversePathSegment(const StylePathCommand& aCommand, break; } case StylePathCommand::Tag::CubicCurve: { - Point to = aCommand.cubic_curve.point.IsByCoordinate() + const bool isRelative = aCommand.cubic_curve.point.IsByCoordinate(); + Point to = isRelative ? aState.pos + aCommand.cubic_curve.point.ToGfxPoint() : aCommand.cubic_curve.point.ToGfxPoint(); if (aState.ShouldUpdateLengthAndControlPoints()) { - Point cp1 = aCommand.cubic_curve.control1.ToGfxPoint(aState.pos, to); - Point cp2 = aCommand.cubic_curve.control2.ToGfxPoint(aState.pos, to); + Point cp1 = aCommand.cubic_curve.control1.ToGfxPoint(aState.pos, to, + isRelative); + Point cp2 = aCommand.cubic_curve.control2.ToGfxPoint(aState.pos, to, + isRelative); aState.length += (float)CalcLengthOfCubicBezier(aState.pos, cp1, cp2, to); aState.cp2 = cp2; @@ -144,11 +147,13 @@ void SVGPathSegUtils::TraversePathSegment(const StylePathCommand& aCommand, break; } case StylePathCommand::Tag::QuadCurve: { - Point to = aCommand.quad_curve.point.IsByCoordinate() + const bool isRelative = aCommand.quad_curve.point.IsByCoordinate(); + Point to = isRelative ? aState.pos + aCommand.quad_curve.point.ToGfxPoint() : aCommand.quad_curve.point.ToGfxPoint(); if (aState.ShouldUpdateLengthAndControlPoints()) { - Point cp = aCommand.quad_curve.control1.ToGfxPoint(aState.pos, to); + Point cp = + aCommand.quad_curve.control1.ToGfxPoint(aState.pos, to, isRelative); aState.length += (float)CalcLengthOfQuadraticBezier(aState.pos, cp, to); aState.cp1 = cp; aState.cp2 = to; @@ -205,12 +210,14 @@ void SVGPathSegUtils::TraversePathSegment(const StylePathCommand& aCommand, break; } case StylePathCommand::Tag::SmoothCubic: { - Point to = aCommand.smooth_cubic.point.IsByCoordinate() + const bool isRelative = aCommand.smooth_cubic.point.IsByCoordinate(); + Point to = isRelative ? aState.pos + aCommand.smooth_cubic.point.ToGfxPoint() : aCommand.smooth_cubic.point.ToGfxPoint(); if (aState.ShouldUpdateLengthAndControlPoints()) { Point cp1 = aState.pos - (aState.cp2 - aState.pos); - Point cp2 = aCommand.smooth_cubic.control2.ToGfxPoint(aState.pos, to); + Point cp2 = aCommand.smooth_cubic.control2.ToGfxPoint(aState.pos, to, + isRelative); aState.length += (float)CalcLengthOfCubicBezier(aState.pos, cp1, cp2, to); aState.cp2 = cp2; diff --git a/layout/style/ServoStyleConstsInlines.h b/layout/style/ServoStyleConstsInlines.h @@ -1349,7 +1349,7 @@ template <> inline gfx::Point StyleControlPoint<StyleShapePosition<StyleCSSFloat>, StyleCSSFloat>::ToGfxPoint( const gfx::Point aStatePos, const gfx::Point aEndPoint, - const CSSSize* aBasis) const { + const bool isRelativeEndPoint, const CSSSize* aBasis) const { if (IsAbsolute()) { auto& pos = AsAbsolute(); return pos.ToGfxPoint(); @@ -1358,7 +1358,11 @@ StyleControlPoint<StyleShapePosition<StyleCSSFloat>, StyleCSSFloat>::ToGfxPoint( // Else auto& point = AsRelative(); auto cp = point.coord.ToGfxPoint(); - if (point.reference == StyleControlReference::Start) { + bool isRelativeDefaultCase = + point.reference == StyleControlReference::None && isRelativeEndPoint; + + if (point.reference == StyleControlReference::Start || + isRelativeDefaultCase) { return cp + aStatePos; } else if (point.reference == StyleControlReference::End) { return cp + aEndPoint; @@ -1372,6 +1376,7 @@ inline gfx::Point StyleControlPoint<StyleShapePosition<LengthPercentage>, LengthPercentage>::ToGfxPoint(const gfx::Point aStatePos, const gfx::Point aEndPoint, + const bool isRelativeEndPoint, const CSSSize* aBasis) const { MOZ_ASSERT(aBasis); if (IsAbsolute()) { @@ -1382,7 +1387,11 @@ StyleControlPoint<StyleShapePosition<LengthPercentage>, // Else auto& point = AsRelative(); auto cp = point.coord.ToGfxPoint(aBasis); - if (point.reference == StyleControlReference::Start) { + bool isRelativeDefaultCase = + point.reference == StyleControlReference::None && isRelativeEndPoint; + + if (point.reference == StyleControlReference::Start || + isRelativeDefaultCase) { return cp + aStatePos; } else if (point.reference == StyleControlReference::End) { return cp + aEndPoint; diff --git a/servo/components/style/values/generics/basic_shape.rs b/servo/components/style/values/generics/basic_shape.rs @@ -1167,7 +1167,7 @@ pub enum ControlPoint<Position, LengthPercentage> { impl<Position, LengthPercentage> ControlPoint<Position, LengthPercentage> { /// Serialize <control-point> - pub fn to_css<W>(&self, dest: &mut CssWriter<W>, is_end_point_abs: bool) -> fmt::Result + pub fn to_css<W>(&self, dest: &mut CssWriter<W>, is_endpoint_abs: bool) -> fmt::Result where W: Write, Position: ToCss, @@ -1175,7 +1175,7 @@ impl<Position, LengthPercentage> ControlPoint<Position, LengthPercentage> { { match self { ControlPoint::Absolute(pos) => pos.to_css(dest), - ControlPoint::Relative(point) => point.to_css(dest, is_end_point_abs), + ControlPoint::Relative(point) => point.to_css(dest, is_endpoint_abs), } } } @@ -1207,19 +1207,22 @@ pub struct RelativeControlPoint<LengthPercentage> { } impl<LengthPercentage: ToCss> RelativeControlPoint<LengthPercentage> { - fn to_css<W>(&self, dest: &mut CssWriter<W>, is_end_point_abs: bool) -> fmt::Result + fn to_css<W>(&self, dest: &mut CssWriter<W>, is_endpoint_abs: bool) -> fmt::Result where W: Write, { self.coord.to_css(dest)?; - match self.reference { - ControlReference::Origin if is_end_point_abs => Ok(()), - ControlReference::Start if !is_end_point_abs => Ok(()), - other => { - dest.write_str(" from ")?; - other.to_css(dest) - }, + let should_omit_reference = match self.reference { + ControlReference::None => true, + ControlReference::Start => !is_endpoint_abs, + ControlReference::Origin => is_endpoint_abs, + ControlReference::End => false, + }; + if !should_omit_reference { + dest.write_str(" from ")?; + self.reference.to_css(dest)?; } + Ok(()) } } @@ -1233,9 +1236,9 @@ impl<LengthPercentage: ComputeSquaredDistance> ComputeSquaredDistance /// Defines the point of reference for a <relative-control-point>. /// -/// When a reference is not specified, depending on whether the associated -/// <command-end-point> is absolutely or relatively positioned, the default -/// will be `Origin` or `Start`, respectively. +/// The default `None` is equivalent to `Origin` or `Start`, depending on +/// whether the associated <command-end-point> is absolutely or relatively +/// positioned, respectively. /// https://drafts.csswg.org/css-shapes/#typedef-shape-relative-control-point #[allow(missing_docs)] #[derive( @@ -1259,6 +1262,8 @@ impl<LengthPercentage: ComputeSquaredDistance> ComputeSquaredDistance )] #[repr(C)] pub enum ControlReference { + #[css(skip)] + None, Start, End, Origin, diff --git a/servo/components/style/values/specified/basic_shape.rs b/servo/components/style/values/specified/basic_shape.rs @@ -898,7 +898,6 @@ impl generic::ControlPoint<Position, LengthPercentage> { input: &mut Parser<'i, 't>, is_end_point_abs: bool, ) -> Result<Self, ParseError<'i>> { - use generic::ControlReference; let coord = input.try_parse(|i| generic::CoordinatePair::parse(context, i)); // Parse <position> @@ -909,15 +908,10 @@ impl generic::ControlPoint<Position, LengthPercentage> { // Parse <relative-control-point> = <coordinate-pair> [from [ start | end | origin ]]? let coord = coord?; - let mut reference = if is_end_point_abs { - ControlReference::Origin - } else { - ControlReference::Start - }; + let mut reference = generic::ControlReference::None; if input.try_parse(|i| i.expect_ident_matching("from")).is_ok() { - reference = ControlReference::parse(input)?; + reference = generic::ControlReference::parse(input)?; } - Ok(Self::Relative(generic::RelativeControlPoint { coord, reference, diff --git a/servo/components/style/values/specified/svg_path.rs b/servo/components/style/values/specified/svg_path.rs @@ -590,6 +590,10 @@ impl ControlPoint<ShapePosition<CSSFloat>, CSSFloat> { }; match point.reference { + ControlReference::None if !end_point.is_abs() => { + pos.horizontal += state_pos.x; + pos.vertical += state_pos.y; + }, ControlReference::Start => { pos.horizontal += state_pos.x; pos.vertical += state_pos.y; @@ -835,42 +839,42 @@ impl<'a> PathParser<'a> { /// Parse an absolute cubic Bézier curve ("C") command. fn parse_curve_abs(&mut self) -> Result<(), ()> { parse_arguments!(self, CubicCurve, [ - control1 => parse_control_point_abs, control2 => parse_control_point_abs, point => parse_command_end_abs + control1 => parse_control_point, control2 => parse_control_point, point => parse_command_end_abs ]) } /// Parse a relative cubic Bézier curve ("c") command. fn parse_curve_rel(&mut self) -> Result<(), ()> { parse_arguments!(self, CubicCurve, [ - control1 => parse_control_point_rel, control2 => parse_control_point_rel, point => parse_command_end_rel + control1 => parse_control_point, control2 => parse_control_point, point => parse_command_end_rel ]) } /// Parse an absolute smooth "curveto" ("S") command. fn parse_smooth_curve_abs(&mut self) -> Result<(), ()> { parse_arguments!(self, SmoothCubic, [ - control2 => parse_control_point_abs, point => parse_command_end_abs + control2 => parse_control_point, point => parse_command_end_abs ]) } /// Parse a relative smooth "curveto" ("s") command. fn parse_smooth_curve_rel(&mut self) -> Result<(), ()> { parse_arguments!(self, SmoothCubic, [ - control2 => parse_control_point_rel, point => parse_command_end_rel + control2 => parse_control_point, point => parse_command_end_rel ]) } /// Parse an absolute quadratic Bézier curve ("Q") command. fn parse_quadratic_bezier_curve_abs(&mut self) -> Result<(), ()> { parse_arguments!(self, QuadCurve, [ - control1 => parse_control_point_abs, point => parse_command_end_abs + control1 => parse_control_point, point => parse_command_end_abs ]) } /// Parse a relative quadratic Bézier curve ("q") command. fn parse_quadratic_bezier_curve_rel(&mut self) -> Result<(), ()> { parse_arguments!(self, QuadCurve, [ - control1 => parse_control_point_rel, point => parse_command_end_rel + control1 => parse_control_point, point => parse_command_end_rel ]) } @@ -952,25 +956,17 @@ fn parse_command_end_rel( Ok(CommandEndPoint::ByCoordinate(coord)) } -/// Parse a pair of values that describe the absolutely positioned curve control point. -fn parse_control_point_abs( - iter: &mut Peekable<Cloned<slice::Iter<u8>>>, -) -> Result<ControlPoint<ShapePosition<CSSFloat>, CSSFloat>, ()> { - let coord = parse_coord(iter)?; - Ok(ControlPoint::Relative(RelativeControlPoint { - coord, - reference: ControlReference::Origin, - })) -} - -/// Parse a pair of values that describe the relatively positioned curve control point. -fn parse_control_point_rel( +/// Parse a pair of values that describe the curve control point. +/// +/// Note: when the reference is None, the <control-point>'s reference +/// defaults to the commands coordinate mode (absolute or relative). +fn parse_control_point( iter: &mut Peekable<Cloned<slice::Iter<u8>>>, ) -> Result<ControlPoint<ShapePosition<CSSFloat>, CSSFloat>, ()> { let coord = parse_coord(iter)?; Ok(ControlPoint::Relative(RelativeControlPoint { coord, - reference: ControlReference::Start, + reference: ControlReference::None, })) } diff --git a/servo/ports/geckolib/cbindgen.toml b/servo/ports/geckolib/cbindgen.toml @@ -878,11 +878,11 @@ renaming_overrides_prefixing = true "ControlPoint" = """ inline gfx::Point ToGfxPoint( const gfx::Point aStatePos, const gfx::Point aEndPoint, - const CSSSize* aBasis = nullptr) const; + const bool isRelativeEndPoint, const CSSSize* aBasis = nullptr) const; gfx::Point ToGfxPoint( const gfx::Point aStatePos, const gfx::Point aEndPoint, - const CSSSize& aBasis) const { - return ToGfxPoint(aStatePos, aEndPoint, &aBasis); + const bool isRelativeEndPoint, const CSSSize& aBasis) const { + return ToGfxPoint(aStatePos, aEndPoint, isRelativeEndPoint, &aBasis); } """ diff --git a/testing/web-platform/meta/css/css-masking/animations/clip-path-interpolation-shape-control-points.html.ini b/testing/web-platform/meta/css/css-masking/animations/clip-path-interpolation-shape-control-points.html.ini @@ -0,0 +1,1470 @@ +[clip-path-interpolation-shape-control-points.html] + [CSS Transitions: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from origin / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px)\]] + expected: FAIL + + [CSS Transitions: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from origin / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 100px)\]] + expected: FAIL + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from origin / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px)\]] + expected: FAIL + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from origin / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 100px)\]] + expected: FAIL + + [CSS Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from origin / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 100px)\]] + expected: FAIL + + [Web Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from origin / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 100px)\]] + expected: FAIL + + [CSS Transitions: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 150px from origin)\] at (0) should be [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\]] + expected: FAIL + + [CSS Transitions: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 150px from origin)\] at (0.5) should be [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 100px)\]] + expected: FAIL + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 150px from origin)\] at (0) should be [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\]] + expected: FAIL + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 150px from origin)\] at (0.5) should be [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 100px)\]] + expected: FAIL + + [CSS Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 150px from origin)\] at (0.5) should be [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 100px)\]] + expected: FAIL + + [Web Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 150px from origin)\] at (0.5) should be [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 100px)\]] + expected: FAIL + + [CSS Transitions: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px)\] at (0) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px)\]] + expected: FAIL + + [CSS Transitions: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px)\] at (0.5) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 100px)\]] + expected: FAIL + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px)\] at (0) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px)\]] + expected: FAIL + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px)\] at (0.5) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 100px)\]] + expected: FAIL + + [CSS Animations: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px)\] at (0.5) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 100px)\]] + expected: FAIL + + [Web Animations: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px)\] at (0.5) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 100px)\]] + expected: FAIL + + [CSS Transitions: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px from start)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px)\] at (0) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px)\]] + expected: FAIL + + [CSS Transitions: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px from start)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px)\] at (0.5) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 100px)\]] + expected: FAIL + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px from start)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px)\] at (0) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px)\]] + expected: FAIL + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px from start)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px)\] at (0.5) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 100px)\]] + expected: FAIL + + [CSS Animations: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px from start)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px)\] at (0.5) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 100px)\]] + expected: FAIL + + [Web Animations: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px from start)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px)\] at (0.5) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 100px)\]] + expected: FAIL + + [CSS Transitions: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px)\] to [shape(from top left, smooth to 100% 50% with 20px 150px from origin)\] at (0) should be [shape(from top left, smooth to 100% 50% with 20px 50px)\]] + expected: FAIL + + [CSS Transitions: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px)\] to [shape(from top left, smooth to 100% 50% with 20px 150px from origin)\] at (0.5) should be [shape(from top left, smooth to 100% 50% with 20px 100px)\]] + expected: FAIL + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px)\] to [shape(from top left, smooth to 100% 50% with 20px 150px from origin)\] at (0) should be [shape(from top left, smooth to 100% 50% with 20px 50px)\]] + expected: FAIL + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px)\] to [shape(from top left, smooth to 100% 50% with 20px 150px from origin)\] at (0.5) should be [shape(from top left, smooth to 100% 50% with 20px 100px)\]] + expected: FAIL + + [CSS Animations: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px)\] to [shape(from top left, smooth to 100% 50% with 20px 150px from origin)\] at (0.5) should be [shape(from top left, smooth to 100% 50% with 20px 100px)\]] + expected: FAIL + + [Web Animations: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px)\] to [shape(from top left, smooth to 100% 50% with 20px 150px from origin)\] at (0.5) should be [shape(from top left, smooth to 100% 50% with 20px 100px)\]] + expected: FAIL + + [CSS Animations: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (0.3) should be [shape(from top left, smooth to 100% 50% with 20px 50px from start)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.6) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px from origin)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px from origin)\] at (0) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.6) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.6) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (0.6) should be [shape(from top left, smooth to 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (0.5) should be [shape(from top left, smooth by 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 150px)\] at (1) should be [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px from origin)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px from origin)\] at (1) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-behavior:allow-discrete: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (1) should be [shape(from top left, smooth to 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-behavior:allow-discrete: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (0.3) should be [shape(from top left, smooth to 100% 50% with 20px 50px from start)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (0.3) should be [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px from origin)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.5) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 100px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 150px)\] at (0.5) should be [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 100px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (0) should be [shape(from top left, smooth to 100% 50% with 20px 50px from start)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px)\] to [shape(from top left, smooth to 100% 50% with 20px 150px from origin)\] at (0) should be [shape(from top left, smooth to 100% 50% with 20px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (-0.3) should be [shape(from top left, smooth to 100% 50% with 20px 50px from start)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-behavior:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.6) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (0.5) should be [shape(from top left, smooth to 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (0.6) should be [shape(from top left, smooth by 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (0.3) should be [shape(from top left, smooth to 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-behavior:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0) should be [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px from start)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px)\] at (0) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px from start)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px)\] at (0) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (-0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (0.6) should be [shape(from top left, smooth by 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-behavior:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (0) should be [shape(from top left, smooth by 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px from start)\] at (0.5) should be [shape(from top left, smooth to 100% 50% with 20px 100px from start)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-behavior:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (1.5) should be [shape(from top left, smooth by 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (0.5) should be [shape(from top left, smooth to 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (-0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px from origin)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px from origin)\] at (0) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (0.6) should be [shape(from top left, smooth to 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.6) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.6) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px from start)\] at (1) should be [shape(from top left, smooth to 100% 50% with 20px 150px from start)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (1) should be [shape(from top left, smooth to 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px from start)\] at (0) should be [shape(from top left, smooth to 100% 50% with 20px 50px from start)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-behavior:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0) should be [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (-0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-behavior:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-behavior:allow-discrete: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (0.6) should be [shape(from top left, smooth to 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-behavior:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-behavior:allow-discrete: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (1.5) should be [shape(from top left, smooth to 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-behavior:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (-0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-behavior:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (-0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (1) should be [shape(from top left, smooth by 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (0) should be [shape(from top left, smooth to 100% 50% with 20px 50px from start)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (1) should be [shape(from top left, smooth by 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 150px)\] at (1) should be [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px from start)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px)\] at (1) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (-0.3) should be [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px from origin)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px from origin)\] at (1) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (1.5) should be [shape(from top left, smooth by 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0) should be [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (0.3) should be [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from origin / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (1.5) should be [shape(from top left, smooth by 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (0) should be [shape(from top left, smooth to 100% 50% with 20px 50px from start)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (1.5) should be [shape(from top left, smooth by 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 150px)\] at (0.5) should be [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 100px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (-0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-behavior:allow-discrete: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (0) should be [shape(from top left, smooth to 100% 50% with 20px 50px from start)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-behavior:allow-discrete: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (0.5) should be [shape(from top left, smooth by 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-behavior:allow-discrete: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (0) should be [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (-0.3) should be [shape(from top left, smooth to 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from origin / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (-0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 150px from origin)\] at (1) should be [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.6) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 150px)\] at (0.5) should be [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 100px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.6) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px from start)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px)\] at (1) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (-0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.6) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-behavior:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (-0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-behavior:allow-discrete: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (1) should be [shape(from top left, smooth by 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (-0.3) should be [shape(from top left, smooth by 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px)\] to [shape(from top left, smooth to 100% 50% with 20px 150px from origin)\] at (1) should be [shape(from top left, smooth to 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0) should be [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px from start)\] at (1) should be [shape(from top left, smooth to 100% 50% with 20px 150px from start)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (0.3) should be [shape(from top left, smooth by 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.6) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from origin / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (-0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (-0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-behavior:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (-0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px from origin)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px from origin)\] at (1) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (0) should be [shape(from top left, smooth by 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 150px)\] at (0.5) should be [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 100px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (1) should be [shape(from top left, smooth to 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px from origin)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px from origin)\] at (0) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (0.5) should be [shape(from top left, smooth by 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px from start)\] at (0.5) should be [shape(from top left, smooth to 100% 50% with 20px 100px from start)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 150px from origin)\] at (0) should be [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px)\] to [shape(from top left, smooth to 100% 50% with 20px 150px from origin)\] at (1) should be [shape(from top left, smooth to 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (1.5) should be [shape(from top left, smooth by 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px from start)\] at (0) should be [shape(from top left, smooth to 100% 50% with 20px 50px from start)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (1) should be [shape(from top left, smooth to 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-behavior:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0) should be [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px from origin)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.5) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 100px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (0) should be [shape(from top left, smooth to 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px)\] at (1) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (1.5) should be [shape(from top left, smooth to 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 150px)\] at (0) should be [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (1) should be [shape(from top left, smooth to 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (1) should be [shape(from top left, smooth by 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-behavior:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (1) should be [shape(from top left, smooth by 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (-0.3) should be [shape(from top left, smooth by 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from origin / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.6) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-behavior:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.6) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-behavior:allow-discrete: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (0.6) should be [shape(from top left, smooth by 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-behavior:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (0.3) should be [shape(from top left, smooth by 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 150px)\] at (0) should be [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-behavior:allow-discrete: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (-0.3) should be [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (-0.3) should be [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 150px)\] at (0) should be [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (-0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (-0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.6) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px from origin)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.5) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 100px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-behavior:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 150px)\] at (0) should be [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (0.5) should be [shape(from top left, smooth to 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (0.3) should be [shape(from top left, smooth to 100% 50% with 20px 50px from start)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 150px from origin)\] at (1) should be [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (0.6) should be [shape(from top left, smooth by 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-behavior:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (-0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-behavior:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (-0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (0.3) should be [shape(from top left, smooth to 100% 50% with 20px 50px from start)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (0.6) should be [shape(from top left, smooth by 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px from start)\] at (0) should be [shape(from top left, smooth to 100% 50% with 20px 50px from start)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (0) should be [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 150px from origin)\] at (1) should be [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px)\] at (1) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-behavior:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0) should be [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.6) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-behavior:allow-discrete: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (0.5) should be [shape(from top left, smooth to 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.6) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px)\] at (0) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px)\] at (1) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px)\] at (1) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0) should be [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px from start)\] at (1) should be [shape(from top left, smooth to 100% 50% with 20px 150px from start)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px from start)\] at (0) should be [shape(from top left, smooth to 100% 50% with 20px 50px from start)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px)\] to [shape(from top left, smooth to 100% 50% with 20px 150px from origin)\] at (1) should be [shape(from top left, smooth to 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px from start)\] at (0.5) should be [shape(from top left, smooth to 100% 50% with 20px 100px from start)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (0.6) should be [shape(from top left, smooth by 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from origin / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (1) should be [shape(from top left, smooth to 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px from origin)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px from origin)\] at (0) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (-0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px from origin)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.5) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 100px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px from start)\] at (0.5) should be [shape(from top left, smooth to 100% 50% with 20px 100px from start)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.6) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (1) should be [shape(from top left, smooth by 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-behavior:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (-0.3) should be [shape(from top left, smooth to 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (0.5) should be [shape(from top left, smooth by 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-behavior:allow-discrete: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (-0.3) should be [shape(from top left, smooth to 100% 50% with 20px 50px from start)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (0) should be [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px)\] to [shape(from top left, smooth to 100% 50% with 20px 150px from origin)\] at (1) should be [shape(from top left, smooth to 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (-0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px)\] at (0) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (0.5) should be [shape(from top left, smooth to 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-behavior:allow-discrete: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (1.5) should be [shape(from top left, smooth by 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.6) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 150px from origin)\] at (0) should be [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (0.5) should be [shape(from top left, smooth by 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (1.5) should be [shape(from top left, smooth to 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (0.6) should be [shape(from top left, smooth to 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (-0.3) should be [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (-0.3) should be [shape(from top left, smooth to 100% 50% with 20px 50px from start)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (0) should be [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (0.3) should be [shape(from top left, smooth to 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px from start)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px)\] at (1) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (0.5) should be [shape(from top left, smooth by 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from origin / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.3) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px from origin)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px from origin)\] at (1) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-behavior:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.6) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px / 40px 50px from end)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0.5) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (1.5) should be [shape(from top left, smooth to 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (1.5) should be [shape(from top left, smooth to 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (0) should be [shape(from top left, smooth to 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (1.5) should be [shape(from top left, smooth to 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px / 40px 50px from start)\] to [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px)\] at (1) should be [shape(from top left, curve by 100% 50% with 20px 30px / 40px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Animations: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 150px)\] at (1) should be [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (0) should be [shape(from top left, curve to 100% 50% with 20px 30px from end / 40px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 150px from origin)\] at (1) should be [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px)\] to [shape(from top left, smooth to 100% 50% with 20px 150px from origin)\] at (0) should be [shape(from top left, smooth to 100% 50% with 20px 50px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-behavior:allow-discrete: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (0.3) should be [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 50px)\] to [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 150px)\] at (1) should be [shape(from top left, curve by 100% 50% with 20px 30px from end / 40px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (0.6) should be [shape(from top left, smooth to 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (-0.3) should be [shape(from top left, smooth to 100% 50% with 20px 50px from start)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <clip-path> from [shape(from top left, curve to 100% 50% with 20px 30px from start / 40px 50px)\] to [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\] at (1) should be [shape(from top left, curve to 100% 50% with 20px 30px / 40px 150px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (0.5) should be [shape(from top left, smooth to 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [Web Animations: property <clip-path> from [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\] to [shape(from top left, smooth by 100% 50% with 20px 150px)\] at (0.3) should be [shape(from top left, smooth by 100% 50% with 20px 50px from origin)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px)\] at (0.6) should be [shape(from top left, smooth to 100% 50% with 20px 150px)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL] + + [CSS Transitions with transition: all: property <clip-path> from [shape(from top left, smooth to 100% 50% with 20px 50px from start)\] to [shape(from top left, smooth to 100% 50% with 20px 150px from start)\] at (1) should be [shape(from top left, smooth to 100% 50% with 20px 150px from start)\]] + expected: + if (os == "mac") and not debug: [PASS, FAIL] + if (os == "android") and not debug: [PASS, FAIL]