canvas: Implement strokeText (#39183)

Mostly it's just reusing/copy&edit fillText stuff.

Testing: Existing WPT tests
Fixes: #29973

Try run: https://github.com/sagudev/servo/actions/runs/17511337550

---------

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
This commit is contained in:
Sam 2025-09-06 20:01:21 +02:00 committed by GitHub
parent bd3231847e
commit 643ac08cf0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
28 changed files with 300 additions and 64 deletions

View file

@ -1,3 +0,0 @@
[2d.conformance.requirements.basics.html]
[void methods return undefined]
expected: FAIL

View file

@ -1,3 +0,0 @@
[2d.conformance.requirements.basics.html]
[void methods return undefined]
expected: FAIL

View file

@ -1,3 +0,0 @@
[2d.text.draw.stroke.unaffected.html]
[strokeText does not start a new path or subpath]
expected: FAIL

View file

@ -0,0 +1,2 @@
[2d.text.measure.strokeTextCluster-align.tentative.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[2d.text.measure.strokeTextCluster-baseline.tentative.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[2d.text.measure.strokeTextCluster-drawing-styles-change.tentative.html]
expected: FAIL

View file

@ -1,3 +0,0 @@
[2d.conformance.requirements.basics.html]
[void methods return undefined]
expected: FAIL

View file

@ -1,3 +0,0 @@
[2d.conformance.requirements.basics.worker.html]
[void methods return undefined]
expected: FAIL

View file

@ -1,3 +0,0 @@
[2d.conformance.requirements.basics.html]
[void methods return undefined]
expected: FAIL

View file

@ -1,3 +0,0 @@
[2d.conformance.requirements.basics.worker.html]
[void methods return undefined]
expected: FAIL

View file

@ -1,4 +0,0 @@
[2d.text.draw.stroke.unaffected.html]
[strokeText does not start a new path or subpath]
expected: FAIL

View file

@ -1,4 +0,0 @@
[2d.text.draw.stroke.unaffected.worker.html]
[strokeText does not start a new path or subpath]
expected: FAIL

View file

@ -0,0 +1,2 @@
[2d.text.measure.strokeTextCluster-align.tentative.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[2d.text.measure.strokeTextCluster-baseline.tentative.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[2d.text.measure.strokeTextCluster-drawing-styles-change.tentative.html]
expected: FAIL

View file

@ -26,9 +26,6 @@
[OffscreenCanvasRenderingContext2D interface: operation isPointInStroke(Path2D, unrestricted double, unrestricted double)]
expected: FAIL
[OffscreenCanvasRenderingContext2D interface: operation strokeText(DOMString, unrestricted double, unrestricted double, optional unrestricted double)]
expected: FAIL
[OffscreenCanvasRenderingContext2D interface: attribute letterSpacing]
expected: FAIL

View file

@ -4247,9 +4247,6 @@
[CanvasRenderingContext2D interface: operation drawFocusIfNeeded(Path2D, Element)]
expected: FAIL
[CanvasRenderingContext2D interface: operation strokeText(DOMString, unrestricted double, unrestricted double, optional unrestricted double)]
expected: FAIL
[CanvasRenderingContext2D interface: attribute letterSpacing]
expected: FAIL
@ -4313,12 +4310,6 @@
[CanvasRenderingContext2D interface: calling drawFocusIfNeeded(Path2D, Element) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError]
expected: FAIL
[CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "strokeText(DOMString, unrestricted double, unrestricted double, optional unrestricted double)" with the proper type]
expected: FAIL
[CanvasRenderingContext2D interface: calling strokeText(DOMString, unrestricted double, unrestricted double, optional unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError]
expected: FAIL
[CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "letterSpacing" with the proper type]
expected: FAIL
@ -4370,9 +4361,6 @@
[OffscreenCanvasRenderingContext2D interface: operation isPointInStroke(Path2D, unrestricted double, unrestricted double)]
expected: FAIL
[OffscreenCanvasRenderingContext2D interface: operation strokeText(DOMString, unrestricted double, unrestricted double, optional unrestricted double)]
expected: FAIL
[OffscreenCanvasRenderingContext2D interface: attribute letterSpacing]
expected: FAIL