Bug 264367

Summary: Fixing bad angle computation in 2D canvas arc rendering
Product: WebKit Reporter: Ahmad Saleem <ahmad.saleem792>
Component: CanvasAssignee: Nobody <webkit-unassigned>
Status: RESOLVED DUPLICATE    
Severity: Normal CC: dino, heycam, sabouhallawa, simon.fraser, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   

Description Ahmad Saleem 2023-11-07 14:24:50 PST
Hi Team,

This is merge on top previous Blink commit merge to fix issue.

Blink Commit: https://chromium.googlesource.com/chromium/blink/+/06056d49d9a569e51ffedb99b5b737d785a269ac

Just wanted to raise so we can fix it.

Thanks!
Comment 1 Radar WebKit Bug Importer 2023-11-14 14:25:20 PST
<rdar://problem/118418200>
Comment 2 Said Abou-Hallawa 2023-11-15 15:36:49 PST
We used to hit this assertion in normalizeAngles():

ASSERT(newStartAngle >= 0 && newStartAngle < 2 * piFloat);

The commit 243642@main fixed it by changing it to be:

ASSERT(newStartAngle >= 0 && (newStartAngle < twoPiFloat || WTF::areEssentiallyEqual<float>(newStartAngle, twoPiFloat)));

So bug 218671 fixed the same problem but in a different way.

There is no need to import the Chrome layout test for fixing this bug because the WPT test imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.ellipse.basics.html has exactly the same drawing command:

ctx.ellipse(80, 0, 10, 4294967277, Math.PI / -84, -Math.PI / 2147483436, false);

And this WPT test passes in WebKit without assertion.

*** This bug has been marked as a duplicate of bug 218671 ***