Backed out 2 changesets (bug 1609711) for causing reftest failures on radial-size-1b.html. CLOSED TREE

Backed out changeset 2857feeff01b (bug 1609711)
Backed out changeset 627ee9bf5573 (bug 1609711)

--HG--
extra : histedit_source : 35debdd9cdab035b9538972fff10cc556e724f74
This commit is contained in:
Cosmin Sabou 2020-01-23 07:19:28 +02:00
Родитель 7b76379364
Коммит c562fe95c5
3 изменённых файлов: 105 добавлений и 94 удалений

Просмотреть файл

@ -36,10 +36,12 @@
using namespace mozilla;
using namespace mozilla::gfx;
static CSSPoint ResolvePosition(const Position& aPos, const CSSSize& aSize) {
CSSCoord h = aPos.horizontal.ResolveToCSSPixels(aSize.width);
CSSCoord v = aPos.vertical.ResolveToCSSPixels(aSize.height);
return CSSPoint(h, v);
static gfxPoint ResolvePosition(const Position& aPos, const nsSize& aSize,
int32_t aAppUnitsPerPixel) {
nscoord h = aPos.horizontal.Resolve(aSize.width);
nscoord v = aPos.vertical.Resolve(aSize.height);
return gfxPoint(NSAppUnitsToFloatPixels(h, aAppUnitsPerPixel),
NSAppUnitsToFloatPixels(v, aAppUnitsPerPixel));
}
// Given a box with size aBoxSize and origin (0,0), and an angle aAngle,
@ -47,22 +49,22 @@ static CSSPoint ResolvePosition(const Position& aPos, const CSSSize& aSize) {
// the gradient line --- the intersection of the gradient line with a line
// perpendicular to aAngle that passes through the farthest corner in the
// direction aAngle.
static CSSPoint ComputeGradientLineEndFromAngle(const CSSPoint& aStart,
static gfxPoint ComputeGradientLineEndFromAngle(const gfxPoint& aStart,
double aAngle,
const CSSSize& aBoxSize) {
const gfxSize& aBoxSize) {
double dx = cos(-aAngle);
double dy = sin(-aAngle);
CSSPoint farthestCorner(dx > 0 ? aBoxSize.width : 0,
gfxPoint farthestCorner(dx > 0 ? aBoxSize.width : 0,
dy > 0 ? aBoxSize.height : 0);
CSSPoint delta = farthestCorner - aStart;
gfxPoint delta = farthestCorner - aStart;
double u = delta.x * dy - delta.y * dx;
return farthestCorner + CSSPoint(-u * dy, u * dx);
return farthestCorner + gfxPoint(-u * dy, u * dx);
}
// Compute the start and end points of the gradient line for a linear gradient.
static Tuple<CSSPoint, CSSPoint> ComputeLinearGradientLine(
static Tuple<gfxPoint, gfxPoint> ComputeLinearGradientLine(
nsPresContext* aPresContext, const StyleGradient& aGradient,
const CSSSize& aBoxSize) {
const gfxSize& aBoxSize) {
using X = StyleHorizontalPositionKeyword;
using Y = StyleVerticalPositionKeyword;
@ -70,28 +72,28 @@ static Tuple<CSSPoint, CSSPoint> ComputeLinearGradientLine(
const bool isModern =
aGradient.compat_mode == StyleGradientCompatMode::Modern;
CSSPoint center(aBoxSize.width / 2, aBoxSize.height / 2);
gfxPoint center(aBoxSize.width / 2, aBoxSize.height / 2);
switch (direction.tag) {
case StyleLineDirection::Tag::Angle: {
double angle = direction.AsAngle().ToRadians();
if (isModern) {
angle = M_PI_2 - angle;
}
CSSPoint end = ComputeGradientLineEndFromAngle(center, angle, aBoxSize);
CSSPoint start = CSSPoint(aBoxSize.width, aBoxSize.height) - end;
gfxPoint end = ComputeGradientLineEndFromAngle(center, angle, aBoxSize);
gfxPoint start = gfxPoint(aBoxSize.width, aBoxSize.height) - end;
return MakeTuple(start, end);
}
case StyleLineDirection::Tag::Vertical: {
CSSPoint start(center.x, 0);
CSSPoint end(center.x, aBoxSize.height);
gfxPoint start(center.x, 0);
gfxPoint end(center.x, aBoxSize.height);
if (isModern == (direction.AsVertical() == Y::Top)) {
std::swap(start.y, end.y);
}
return MakeTuple(start, end);
}
case StyleLineDirection::Tag::Horizontal: {
CSSPoint start(0, center.y);
CSSPoint end(aBoxSize.width, center.y);
gfxPoint start(0, center.y);
gfxPoint end(aBoxSize.width, center.y);
if (isModern == (direction.AsHorizontal() == X::Left)) {
std::swap(start.x, end.x);
}
@ -106,36 +108,36 @@ static Tuple<CSSPoint, CSSPoint> ComputeLinearGradientLine(
float xSign = h == X::Right ? 1.0 : -1.0;
float ySign = v == Y::Top ? 1.0 : -1.0;
double angle = atan2(ySign * aBoxSize.width, xSign * aBoxSize.height);
CSSPoint end = ComputeGradientLineEndFromAngle(center, angle, aBoxSize);
CSSPoint start = CSSPoint(aBoxSize.width, aBoxSize.height) - end;
gfxPoint end = ComputeGradientLineEndFromAngle(center, angle, aBoxSize);
gfxPoint start = gfxPoint(aBoxSize.width, aBoxSize.height) - end;
return MakeTuple(start, end);
}
CSSCoord startX = h == X::Left ? 0.0 : aBoxSize.width;
CSSCoord startY = v == Y::Top ? 0.0 : aBoxSize.height;
gfxFloat startX = h == X::Left ? 0.0 : aBoxSize.width;
gfxFloat startY = v == Y::Top ? 0.0 : aBoxSize.height;
CSSPoint start(startX, startY);
CSSPoint end = CSSPoint(aBoxSize.width, aBoxSize.height) - start;
gfxPoint start(startX, startY);
gfxPoint end = gfxPoint(aBoxSize.width, aBoxSize.height) - start;
return MakeTuple(start, end);
}
default:
break;
}
MOZ_ASSERT_UNREACHABLE("Unknown line direction");
return MakeTuple(CSSPoint(), CSSPoint());
return MakeTuple(gfxPoint(), gfxPoint());
}
using EndingShape = StyleGenericEndingShape<Length, LengthPercentage>;
using RadialGradientRadii = Variant<StyleShapeExtent, Pair<CSSCoord, CSSCoord>>;
using RadialGradientRadii = Variant<StyleShapeExtent, Pair<nscoord, nscoord>>;
static RadialGradientRadii ComputeRadialGradientRadii(const EndingShape& aShape,
const CSSSize& aSize) {
const nsSize& aSize) {
if (aShape.IsCircle()) {
auto& circle = aShape.AsCircle();
if (circle.IsExtent()) {
return RadialGradientRadii(circle.AsExtent());
}
CSSCoord radius = circle.AsRadius().ToCSSPixels();
nscoord radius = circle.AsRadius().ToAppUnits();
return RadialGradientRadii(MakePair(radius, radius));
}
auto& ellipse = aShape.AsEllipse();
@ -145,28 +147,30 @@ static RadialGradientRadii ComputeRadialGradientRadii(const EndingShape& aShape,
auto& radii = ellipse.AsRadii();
return RadialGradientRadii(
MakePair(radii._0.ResolveToCSSPixels(aSize.width),
radii._1.ResolveToCSSPixels(aSize.height)));
MakePair(radii._0.Resolve(aSize.width), radii._1.Resolve(aSize.height)));
}
// Compute the start and end points of the gradient line for a radial gradient.
// Also returns the horizontal and vertical radii defining the circle or
// ellipse to use.
static Tuple<CSSPoint, CSSPoint, CSSCoord, CSSCoord> ComputeRadialGradientLine(
const StyleGradient& aGradient, const CSSSize& aBoxSize) {
static Tuple<gfxPoint, gfxPoint, double, double> ComputeRadialGradientLine(
nsPresContext* aPresContext, const StyleGradient& aGradient,
const gfxSize& aBoxSize, const nsSize& aBoxSizeInAppUnits) {
const auto& radial = aGradient.kind.AsRadial();
const EndingShape& endingShape = radial._0;
const Position& position = radial._1;
CSSPoint start = ResolvePosition(position, aBoxSize);
int32_t appUnitsPerPixel = aPresContext->AppUnitsPerDevPixel();
gfxPoint start =
ResolvePosition(position, aBoxSizeInAppUnits, appUnitsPerPixel);
// Compute gradient shape: the x and y radii of an ellipse.
CSSCoord radiusX, radiusY;
CSSCoord leftDistance = Abs(start.x);
CSSCoord rightDistance = Abs(aBoxSize.width - start.x);
CSSCoord topDistance = Abs(start.y);
CSSCoord bottomDistance = Abs(aBoxSize.height - start.y);
double radiusX, radiusY;
double leftDistance = Abs(start.x);
double rightDistance = Abs(aBoxSize.width - start.x);
double topDistance = Abs(start.y);
double bottomDistance = Abs(aBoxSize.height - start.y);
auto radii = ComputeRadialGradientRadii(endingShape, aBoxSize);
auto radii = ComputeRadialGradientRadii(endingShape, aBoxSizeInAppUnits);
if (radii.is<StyleShapeExtent>()) {
switch (radii.as<StyleShapeExtent>()) {
case StyleShapeExtent::ClosestSide:
@ -178,8 +182,8 @@ static Tuple<CSSPoint, CSSPoint, CSSCoord, CSSCoord> ComputeRadialGradientLine(
break;
case StyleShapeExtent::ClosestCorner: {
// Compute x and y distances to nearest corner
CSSCoord offsetX = std::min(leftDistance, rightDistance);
CSSCoord offsetY = std::min(topDistance, bottomDistance);
double offsetX = std::min(leftDistance, rightDistance);
double offsetY = std::min(topDistance, bottomDistance);
if (endingShape.IsCircle()) {
radiusX = radiusY = NS_hypot(offsetX, offsetY);
} else {
@ -198,8 +202,8 @@ static Tuple<CSSPoint, CSSPoint, CSSCoord, CSSCoord> ComputeRadialGradientLine(
break;
case StyleShapeExtent::FarthestCorner: {
// Compute x and y distances to nearest corner
CSSCoord offsetX = std::max(leftDistance, rightDistance);
CSSCoord offsetY = std::max(topDistance, bottomDistance);
double offsetX = std::max(leftDistance, rightDistance);
double offsetY = std::max(topDistance, bottomDistance);
if (endingShape.IsCircle()) {
radiusX = radiusY = NS_hypot(offsetX, offsetY);
} else {
@ -214,14 +218,15 @@ static Tuple<CSSPoint, CSSPoint, CSSCoord, CSSCoord> ComputeRadialGradientLine(
radiusX = radiusY = 0;
}
} else {
auto pair = radii.as<Pair<CSSCoord, CSSCoord>>();
radiusX = pair.first();
radiusY = pair.second();
auto pair = radii.as<Pair<nscoord, nscoord>>();
int32_t appUnitsPerPixel = aPresContext->AppUnitsPerDevPixel();
radiusX = NSAppUnitsToFloatPixels(pair.first(), appUnitsPerPixel);
radiusY = NSAppUnitsToFloatPixels(pair.second(), appUnitsPerPixel);
}
// The gradient line end point is where the gradient line intersects
// the ellipse.
CSSPoint end = start + CSSPoint(radiusX, 0);
gfxPoint end = start + gfxPoint(radiusX, 0);
return MakeTuple(start, end, radiusX, radiusY);
}
@ -464,6 +469,7 @@ static ColorStop InterpolateColorStop(const ColorStop& aFirst,
MOZ_ASSERT(aPosition <= aSecond.mPosition);
double delta = aSecond.mPosition - aFirst.mPosition;
if (delta < 1e-6) {
return ColorStop(aPosition, false, aDefault);
}
@ -541,7 +547,17 @@ static Color GetSpecifiedColor(const StyleGradientItem& aItem,
}
static Maybe<double> GetSpecifiedGradientPosition(
const StyleGradientItem& aItem, CSSCoord aLineLength) {
const StyleGradientItem& aItem, int32_t aAppUnitsPerPixel,
gfxFloat aLineLength) {
auto GetCoord = [&](CSSCoord aCoord) -> double {
if (aLineLength < 1e-6) {
return 0.0;
}
return NSAppUnitsToFloatPixels(CSSPixel::ToAppUnits(aCoord),
aAppUnitsPerPixel) /
aLineLength;
};
if (aItem.IsSimpleColorStop()) {
return Nothing();
}
@ -554,15 +570,13 @@ static Maybe<double> GetSpecifiedGradientPosition(
return Some(pos.ToPercentage());
}
if (aLineLength < 1e-6) {
return Some(0.0);
}
return Some(pos.ResolveToCSSPixels(aLineLength) / aLineLength);
return Some(pos.Percentage() + GetCoord(pos.LengthInCSSPixels()));
}
static nsTArray<ColorStop> ComputeColorStops(ComputedStyle* aComputedStyle,
const StyleGradient& aGradient,
CSSCoord aLineLength) {
int32_t aAppUnitsPerPixel,
gfxFloat aLineLength) {
MOZ_ASSERT(aGradient.items.Length() >= 2,
"The parser should reject gradients with less than two stops");
@ -577,7 +591,7 @@ static nsTArray<ColorStop> ComputeColorStops(ComputedStyle* aComputedStyle,
double position;
Maybe<double> specifiedPosition =
GetSpecifiedGradientPosition(stop, aLineLength);
GetSpecifiedGradientPosition(stop, aAppUnitsPerPixel, aLineLength);
if (specifiedPosition) {
position = *specifiedPosition;
@ -632,29 +646,32 @@ static nsTArray<ColorStop> ComputeColorStops(ComputedStyle* aComputedStyle,
nsCSSGradientRenderer nsCSSGradientRenderer::Create(
nsPresContext* aPresContext, ComputedStyle* aComputedStyle,
const StyleGradient& aGradient, const nsSize& aIntrinsicSize) {
auto srcSize = CSSSize::FromAppUnits(aIntrinsicSize);
nscoord appUnitsPerDevPixel = aPresContext->AppUnitsPerDevPixel();
gfxSize srcSize =
gfxSize(gfxFloat(aIntrinsicSize.width) / appUnitsPerDevPixel,
gfxFloat(aIntrinsicSize.height) / appUnitsPerDevPixel);
// Compute "gradient line" start and end relative to the intrinsic size of
// the gradient.
CSSPoint lineStart, lineEnd;
CSSCoord radiusX = 0, radiusY = 0; // for radial gradients only
gfxPoint lineStart, lineEnd;
double radiusX = 0, radiusY = 0; // for radial gradients only
if (aGradient.kind.IsLinear()) {
Tie(lineStart, lineEnd) =
ComputeLinearGradientLine(aPresContext, aGradient, srcSize);
} else {
Tie(lineStart, lineEnd, radiusX, radiusY) =
ComputeRadialGradientLine(aGradient, srcSize);
Tie(lineStart, lineEnd, radiusX, radiusY) = ComputeRadialGradientLine(
aPresContext, aGradient, srcSize, aIntrinsicSize);
}
// Avoid sending Infs or Nans to downwind draw targets.
if (!lineStart.IsFinite() || !lineEnd.IsFinite()) {
lineStart = lineEnd = CSSPoint(0, 0);
lineStart = lineEnd = gfxPoint(0, 0);
}
CSSCoord lineLength =
gfxFloat lineLength =
NS_hypot(lineEnd.x - lineStart.x, lineEnd.y - lineStart.y);
// Build color stop array and compute stop positions
nsTArray<ColorStop> stops =
ComputeColorStops(aComputedStyle, aGradient, lineLength);
nsTArray<ColorStop> stops = ComputeColorStops(
aComputedStyle, aGradient, appUnitsPerDevPixel, lineLength);
ResolveMidpoints(stops);
@ -662,16 +679,10 @@ nsCSSGradientRenderer nsCSSGradientRenderer::Create(
renderer.mPresContext = aPresContext;
renderer.mGradient = &aGradient;
renderer.mStops = std::move(stops);
renderer.mLineStart = {
aPresContext->CSSPixelsToDevPixels(lineStart.x),
aPresContext->CSSPixelsToDevPixels(lineStart.y),
};
renderer.mLineEnd = {
aPresContext->CSSPixelsToDevPixels(lineEnd.x),
aPresContext->CSSPixelsToDevPixels(lineEnd.y),
};
renderer.mRadiusX = aPresContext->CSSPixelsToDevPixels(radiusX);
renderer.mRadiusY = aPresContext->CSSPixelsToDevPixels(radiusY);
renderer.mLineStart = lineStart;
renderer.mLineEnd = lineEnd;
renderer.mRadiusX = radiusX;
renderer.mRadiusY = radiusY;
return renderer;
}

Просмотреть файл

@ -44,24 +44,24 @@ fuzzy-if(asyncPan&&!layersGPUAccelerated,0-140,0-514) fuzzy-if(winWidget,0-144,0
# border images with gradients
fuzzy-if(webrender&&!geckoview,1-3,784-1804) == border-image-linear-gradient.html border-image-linear-gradient-ref.html
fuzzy(0-1,0-98) fuzzy-if(skiaContent,0-1,0-350) fuzzy-if(webrender&&!geckoview,1-3,1090-37537) == border-image-linear-gradient-slice-1.html border-image-linear-gradient-slice-1-ref.html
fuzzy(0-1,0-515) fuzzy-if(OSX,0-1,0-10595) fuzzy-if(webrender&&!geckoview,1-3,272-25136) == border-image-linear-gradient-slice-2.html border-image-linear-gradient-slice-2-ref.html
fuzzy-if(skiaContent,0-1,0-2500) fuzzy-if(webrender&&!geckoview,1-3,2500-86037) == border-image-linear-gradient-slice-fill-1.html border-image-linear-gradient-slice-fill-1-ref.html
fuzzy(0-1,0-649) fuzzy-if(OSX,0-1,0-25771) fuzzy-if(skiaContent&&!Android,0-1,0-546) fuzzy-if(Android,0-1,0-6093) fuzzy-if(webrender&&!geckoview,1-3,480-57480) == border-image-linear-gradient-slice-fill-2.html border-image-linear-gradient-slice-fill-2-ref.html
fuzzy(0-1,0-134) fuzzy-if(OSX,0-5,0-1676) fuzzy-if(webrender&&!geckoview,1-1,0-4537) == border-image-linear-gradient-width.html border-image-linear-gradient-width-ref.html
fuzzy(0-2,0-60590) fuzzy-if(Android,0-4,0-18022) fuzzy-if(OSX,0-1,0-15000) fuzzy-if(webrender&&!geckoview,1-2,14300-60581) == border-image-linear-gradient-slice-width.html border-image-linear-gradient-slice-width-ref.html
fuzzy(0-2,0-26758) fuzzy-if(OSX,0-1,0-6000) fuzzy-if(webrender&&!geckoview,1-3,4070-26758) == border-image-linear-gradient-outset.html border-image-linear-gradient-outset-ref.html
fuzzy(0-1,0-149) fuzzy-if(OSX,0-1,0-10595) fuzzy-if(webrender&&!geckoview,1-3,272-25136) == border-image-linear-gradient-slice-2.html border-image-linear-gradient-slice-2-ref.html
fuzzy(0-1,0-433) fuzzy-if(skiaContent,0-1,0-2500) fuzzy-if(webrender&&!geckoview,1-2,2500-11500) == border-image-linear-gradient-slice-fill-1.html border-image-linear-gradient-slice-fill-1-ref.html
fuzzy(0-1,0-177) fuzzy-if(OSX,0-1,0-25771) fuzzy-if(skiaContent&&!Android,0-1,0-400) fuzzy-if(Android,0-1,0-6093) fuzzy-if(webrender&&!geckoview,1-3,480-57480) == border-image-linear-gradient-slice-fill-2.html border-image-linear-gradient-slice-fill-2-ref.html
fuzzy(0-1,0-48) fuzzy-if(OSX,0-5,0-1676) fuzzy-if(webrender&&!geckoview,0-1,0-4537) == border-image-linear-gradient-width.html border-image-linear-gradient-width-ref.html
fuzzy(0-2,0-60590) fuzzy-if(OSX,0-1,0-15000) fuzzy-if(webrender&&!geckoview,1-2,14300-60581) == border-image-linear-gradient-slice-width.html border-image-linear-gradient-slice-width-ref.html
fuzzy(0-1,0-3000) fuzzy-if(OSX,0-1,0-6000) fuzzy-if(webrender&&!geckoview,1-3,4070-26688) == border-image-linear-gradient-outset.html border-image-linear-gradient-outset-ref.html
fuzzy(0-1,0-12) fuzzy-if(skiaContent,0-1,0-400) fuzzy-if(webrender&&!geckoview,1-3,1400-26872) == border-image-linear-gradient-repeat-repeat-1.html border-image-linear-gradient-repeat-repeat-1-ref.html
fuzzy(0-1,0-13) fuzzy-if(skiaContent,0-1,0-300) fuzzy-if(webrender&&!geckoview,1-3,1400-27131) == border-image-linear-gradient-repeat-round-1.html border-image-linear-gradient-repeat-round-1-ref.html
fuzzy-if(Android,0-1,0-1894) fuzzy-if(webrender&&!geckoview,1-2,3100-67805) == border-image-linear-gradient-repeat-repeat-2.html border-image-linear-gradient-repeat-repeat-2-ref.html
fuzzy(0-1,0-2000) fuzzy-if(webrender&&!geckoview,1-2,3300-9500) == border-image-linear-gradient-repeat-round-2.html border-image-linear-gradient-repeat-round-2-ref.html
fuzzy-if(webrender&&!geckoview,1-2,3100-9500) == border-image-linear-gradient-repeat-repeat-2.html border-image-linear-gradient-repeat-repeat-2-ref.html
fuzzy(0-1,0-576) fuzzy-if(skiaContent,0-1,0-2000) fuzzy-if(webrender&&!geckoview,1-2,3300-9500) == border-image-linear-gradient-repeat-round-2.html border-image-linear-gradient-repeat-round-2-ref.html
fuzzy(0-1,0-8533) fuzzy-if(webrender&&!geckoview,1-3,3300-9500) == border-image-linear-gradient-repeat-repeat-3.html border-image-linear-gradient-repeat-repeat-3-ref.html
fuzzy(0-3,0-107563) fuzzy-if(webrender&&!geckoview,1-3,43500-107563) == border-image-linear-gradient-repeat-round-3.html border-image-linear-gradient-repeat-round-3-ref.html
fuzzy(0-1,0-7161) fuzzy-if(webrender&&!geckoview,1-3,43500-51000) == border-image-linear-gradient-repeat-round-3.html border-image-linear-gradient-repeat-round-3-ref.html
fuzzy-if(webrender,0-1,0-2096) == border-image-radial-gradient.html border-image-radial-gradient-ref.html
fuzzy(0-1,0-42) fuzzy-if(skiaContent,0-2,0-20) fuzzy-if(webrender,0-1,0-37818) == border-image-radial-gradient-slice-1.html border-image-radial-gradient-slice-1-ref.html
fuzzy(0-1,0-46) fuzzy-if(OSX,0-2,0-4472) fuzzy-if(webrender,0-1,0-26363) == border-image-radial-gradient-slice-2.html border-image-radial-gradient-slice-2-ref.html
fuzzy(0-1,0-85970) fuzzy-if(webrender,0-1,0-90873) == border-image-radial-gradient-slice-fill-1.html border-image-radial-gradient-slice-fill-1-ref.html
fuzzy(0-1,0-57343) fuzzy-if(OSX,0-2,0-4478) fuzzy-if(skiaContent,0-2,0-120) fuzzy-if(webrender,0-1,0-61729) == border-image-radial-gradient-slice-fill-2.html border-image-radial-gradient-slice-fill-2-ref.html
fuzzy(0-1,0-105) fuzzy-if(webrender,0-1,0-90873) == border-image-radial-gradient-slice-fill-1.html border-image-radial-gradient-slice-fill-1-ref.html
fuzzy(0-1,0-139) fuzzy-if(OSX,0-2,0-4478) fuzzy-if(skiaContent,0-2,0-120) fuzzy-if(webrender,0-1,0-61729) == border-image-radial-gradient-slice-fill-2.html border-image-radial-gradient-slice-fill-2-ref.html
fuzzy-if(skiaContent,0-1,0-2) fuzzy-if(webrender,0-1,0-4894) == border-image-radial-gradient-width.html border-image-radial-gradient-width-ref.html
fuzzy(0-1,0-9000) fuzzy-if(webrender,0-3,0-66698) == border-image-radial-gradient-slice-width.html border-image-radial-gradient-slice-width-ref.html
@ -70,15 +70,15 @@ fuzzy-if(webrender&&!geckoview,1-4,940-2000) == border-image-repeating-linear-gr
fuzzy(0-1,0-5608) fails-if(OSX) fuzzy-if(skiaContent,0-1,0-6093) fuzzy-if(webrender,0-3,0-95449) == border-image-repeating-linear-gradient-slice-fill-2.html border-image-repeating-linear-gradient-slice-fill-2-ref.html
fuzzy(0-1,0-19200) fails-if(OSX) fuzzy-if(skiaContent,0-3,0-20000) fuzzy-if(webrender&&!geckoview,1-4,4150-14000) == border-image-repeating-linear-gradient-repeat-round-2.html border-image-repeating-linear-gradient-repeat-round-2-ref.html
fuzzy(0-1,0-910) fuzzy-if(webrender,0-3,0-3008) == border-image-repeating-radial-gradient.html border-image-repeating-radial-gradient-ref.html
fuzzy(0-1,0-1720) fuzzy-if(skiaContent,0-3,0-1035) fuzzy-if(webrender,0-3,0-62078) == border-image-repeating-radial-gradient-slice-1.html border-image-repeating-radial-gradient-slice-1-ref.html
fuzzy(0-1,0-2119) fuzzy-if(skiaContent,0-3,0-936) fuzzy-if(webrender,0-3,0-40536) == border-image-repeating-radial-gradient-slice-2.html border-image-repeating-radial-gradient-slice-2-ref.html
fuzzy(0-1,0-3170) fuzzy-if(skiaContent,0-3,0-1781) fuzzy-if(webrender&&!geckoview,1-3,30-12000) == border-image-repeating-radial-gradient-slice-fill-1.html border-image-repeating-radial-gradient-slice-fill-1-ref.html
fuzzy(0-1,0-3281) fails-if(OSX) fuzzy-if(skiaContent,0-3,0-1434) fuzzy-if(webrender&&!geckoview,1-2,20-8000) == border-image-repeating-radial-gradient-slice-fill-2.html border-image-repeating-radial-gradient-slice-fill-2-ref.html
fuzzy(0-1,0-1301) fuzzy-if(webrender,0-3,0-7441) == border-image-repeating-radial-gradient-width.html border-image-repeating-radial-gradient-width-ref.html
fuzzy(0-4,0-21628) fails-if(OSX) fuzzy-if(webrender,0-5,0-99728) == border-image-repeating-radial-gradient-slice-width.html border-image-repeating-radial-gradient-slice-width-ref.html
fuzzy(0-1,0-3923) fuzzy-if(webrender,0-3,0-117768) == border-image-repeating-radial-gradient-repeat-repeat-2.html border-image-repeating-radial-gradient-repeat-repeat-2-ref.html
fuzzy(0-1,0-3266) fails-if(OSX) fuzzy-if(skiaContent,0-2,0-1746) fuzzy-if(webrender,0-3,0-116185) == border-image-repeating-radial-gradient-repeat-round-2.html border-image-repeating-radial-gradient-repeat-round-2-ref.html
fuzzy(0-1,0-657) fuzzy-if(webrender,0-3,0-3008) == border-image-repeating-radial-gradient.html border-image-repeating-radial-gradient-ref.html
fuzzy(0-1,0-510) fuzzy-if(skiaContent,0-3,0-362) fuzzy-if(webrender,0-3,0-62078) == border-image-repeating-radial-gradient-slice-1.html border-image-repeating-radial-gradient-slice-1-ref.html
fuzzy(0-1,0-438) fuzzy-if(skiaContent,0-3,0-437) fuzzy-if(webrender,0-3,0-40536) == border-image-repeating-radial-gradient-slice-2.html border-image-repeating-radial-gradient-slice-2-ref.html
fuzzy(0-1,0-1357) fuzzy-if(skiaContent,0-3,0-964) fuzzy-if(webrender&&!geckoview,1-2,30-12000) == border-image-repeating-radial-gradient-slice-fill-1.html border-image-repeating-radial-gradient-slice-fill-1-ref.html
fuzzy(0-1,0-1058) fails-if(OSX) fuzzy-if(skiaContent,0-3,0-887) fuzzy-if(webrender&&!geckoview,1-2,20-8000) == border-image-repeating-radial-gradient-slice-fill-2.html border-image-repeating-radial-gradient-slice-fill-2-ref.html
fuzzy(0-1,0-602) fuzzy-if(webrender,0-3,0-7441) == border-image-repeating-radial-gradient-width.html border-image-repeating-radial-gradient-width-ref.html
fuzzy(0-3,0-18000) fails-if(OSX) fuzzy-if(skiaContent,0-4,0-16462) fuzzy-if(webrender,0-5,0-99728) == border-image-repeating-radial-gradient-slice-width.html border-image-repeating-radial-gradient-slice-width-ref.html
fuzzy-if(webrender,0-3,0-117768) == border-image-repeating-radial-gradient-repeat-repeat-2.html border-image-repeating-radial-gradient-repeat-repeat-2-ref.html
fuzzy(0-1,0-1054) fails-if(OSX) fuzzy-if(skiaContent,0-2,0-952) fuzzy-if(webrender,0-3,0-116185) == border-image-repeating-radial-gradient-repeat-round-2.html border-image-repeating-radial-gradient-repeat-round-2-ref.html
# border-image-source (-moz-)element
fuzzy(0-125,0-5903) == border-image-element.html border-image-element-ref.html

Просмотреть файл

@ -47,7 +47,7 @@ fails-if(gtkWidget&&/x86_64-/.test(xulRuntime.XPCOMABI)) fuzzy(0-1,0-1622) fuzzy
fuzzy-if(Android,0-17,0-13320) == radial-shape-farthest-side-1a.html radial-shape-farthest-side-1-ref.html
fuzzy-if(Android,0-17,0-13320) == radial-shape-farthest-side-1b.html radial-shape-farthest-side-1-ref.html
fuzzy-if(webrender,0-2,0-12) == radial-size-1a.html radial-size-1-ref.html
fuzzy-if(webrender,0-1,0-3) == radial-size-1b.html radial-size-1-ref.html
fuzzy-if(!(geckoview&&webrender),1-2,800-1446) == radial-size-1b.html radial-size-1-ref.html
fuzzy-if(Android,0-4,0-248) == radial-zero-length-1a.html radial-zero-length-1-ref.html
fuzzy-if(Android,0-4,0-248) == radial-zero-length-1b.html radial-zero-length-1-ref.html
fuzzy-if(Android,0-4,0-248) == radial-zero-length-1c.html radial-zero-length-1-ref.html