зеркало из https://github.com/mozilla/gecko-dev.git
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:
Родитель
7b76379364
Коммит
c562fe95c5
|
@ -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
|
||||
|
|
Загрузка…
Ссылка в новой задаче