mirror of
https://github.com/zebrajr/ladybird.git
synced 2025-12-06 00:19:53 +01:00
LibWeb: Ignore non-finite shadow offset values
This commit is contained in:
parent
b99c0c6a7f
commit
eb44cca5bd
|
|
@ -989,10 +989,13 @@ float CanvasRenderingContext2D::shadow_offset_x() const
|
|||
return drawing_state().shadow_offset_x;
|
||||
}
|
||||
|
||||
void CanvasRenderingContext2D::set_shadow_offset_x(float offsetX)
|
||||
void CanvasRenderingContext2D::set_shadow_offset_x(float offset_x)
|
||||
{
|
||||
// https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-shadowoffsetx
|
||||
drawing_state().shadow_offset_x = offsetX;
|
||||
if (!isfinite(offset_x))
|
||||
return;
|
||||
|
||||
drawing_state().shadow_offset_x = offset_x;
|
||||
}
|
||||
|
||||
float CanvasRenderingContext2D::shadow_offset_y() const
|
||||
|
|
@ -1000,10 +1003,13 @@ float CanvasRenderingContext2D::shadow_offset_y() const
|
|||
return drawing_state().shadow_offset_y;
|
||||
}
|
||||
|
||||
void CanvasRenderingContext2D::set_shadow_offset_y(float offsetY)
|
||||
void CanvasRenderingContext2D::set_shadow_offset_y(float offset_y)
|
||||
{
|
||||
// https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-shadowoffsety
|
||||
drawing_state().shadow_offset_y = offsetY;
|
||||
if (!isfinite(offset_y))
|
||||
return;
|
||||
|
||||
drawing_state().shadow_offset_y = offset_y;
|
||||
}
|
||||
|
||||
float CanvasRenderingContext2D::shadow_blur() const
|
||||
|
|
|
|||
|
|
@ -0,0 +1,6 @@
|
|||
Harness status: OK
|
||||
|
||||
Found 1 tests
|
||||
|
||||
1 Pass
|
||||
Pass Canvas test: 2d.shadow.attributes.shadowOffset.invalid
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
<!DOCTYPE html>
|
||||
<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
|
||||
<meta charset="UTF-8">
|
||||
<title>Canvas test: 2d.shadow.attributes.shadowOffset.invalid</title>
|
||||
<script src="../../../../resources/testharness.js"></script>
|
||||
<script src="../../../../resources/testharnessreport.js"></script>
|
||||
<script src="../../../../html/canvas/resources/canvas-tests.js"></script>
|
||||
<link rel="stylesheet" href="../../../../html/canvas/resources/canvas-tests.css">
|
||||
<body class="show_output">
|
||||
|
||||
<h1>2d.shadow.attributes.shadowOffset.invalid</h1>
|
||||
<p class="desc"></p>
|
||||
|
||||
|
||||
<p class="output">Actual output:</p>
|
||||
<canvas id="c" class="output" width="100" height="50"><p class="fallback">FAIL (fallback content)</p></canvas>
|
||||
|
||||
<ul id="d"></ul>
|
||||
<script>
|
||||
var t = async_test("");
|
||||
_addTest(function(canvas, ctx) {
|
||||
|
||||
ctx.shadowOffsetX = 1;
|
||||
ctx.shadowOffsetY = 2;
|
||||
ctx.shadowOffsetX = Infinity;
|
||||
ctx.shadowOffsetY = Infinity;
|
||||
_assertSame(ctx.shadowOffsetX, 1, "ctx.shadowOffsetX", "1");
|
||||
_assertSame(ctx.shadowOffsetY, 2, "ctx.shadowOffsetY", "2");
|
||||
|
||||
ctx.shadowOffsetX = 1;
|
||||
ctx.shadowOffsetY = 2;
|
||||
ctx.shadowOffsetX = -Infinity;
|
||||
ctx.shadowOffsetY = -Infinity;
|
||||
_assertSame(ctx.shadowOffsetX, 1, "ctx.shadowOffsetX", "1");
|
||||
_assertSame(ctx.shadowOffsetY, 2, "ctx.shadowOffsetY", "2");
|
||||
|
||||
ctx.shadowOffsetX = 1;
|
||||
ctx.shadowOffsetY = 2;
|
||||
ctx.shadowOffsetX = NaN;
|
||||
ctx.shadowOffsetY = NaN;
|
||||
_assertSame(ctx.shadowOffsetX, 1, "ctx.shadowOffsetX", "1");
|
||||
_assertSame(ctx.shadowOffsetY, 2, "ctx.shadowOffsetY", "2");
|
||||
|
||||
ctx.shadowOffsetX = 1;
|
||||
ctx.shadowOffsetY = 2;
|
||||
ctx.shadowOffsetX = 'string';
|
||||
ctx.shadowOffsetY = 'string';
|
||||
_assertSame(ctx.shadowOffsetX, 1, "ctx.shadowOffsetX", "1");
|
||||
_assertSame(ctx.shadowOffsetY, 2, "ctx.shadowOffsetY", "2");
|
||||
|
||||
ctx.shadowOffsetX = 1;
|
||||
ctx.shadowOffsetY = 2;
|
||||
ctx.shadowOffsetX = true;
|
||||
ctx.shadowOffsetY = true;
|
||||
_assertSame(ctx.shadowOffsetX, 1, "ctx.shadowOffsetX", "1");
|
||||
_assertSame(ctx.shadowOffsetY, 1, "ctx.shadowOffsetY", "1");
|
||||
|
||||
ctx.shadowOffsetX = 1;
|
||||
ctx.shadowOffsetY = 2;
|
||||
ctx.shadowOffsetX = false;
|
||||
ctx.shadowOffsetY = false;
|
||||
_assertSame(ctx.shadowOffsetX, 0, "ctx.shadowOffsetX", "0");
|
||||
_assertSame(ctx.shadowOffsetY, 0, "ctx.shadowOffsetY", "0");
|
||||
|
||||
});
|
||||
</script>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user