Bug 118624 - Fix border radius glitch
Summary: Fix border radius glitch
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords: BlinkMergeCandidate, BrowserCompat, InRadar
Depends on:
Blocks:
 
Reported: 2013-07-12 16:14 PDT by Ryosuke Niwa
Modified: 2022-09-28 21:23 PDT (History)
9 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ryosuke Niwa 2013-07-12 16:14:14 PDT
Consider merging https://chromium.googlesource.com/chromium/blink/+/927872e324ae7520ab32567d07fb988b1733bec8

This fixes the bug that the border radius partially disappeared or had wrong color when it was too steep or too shallow.

Fix 1: Use the correct clipping quad, generated by intersecting border mitre lines to diagonal lines of the corner ellipse arc.
RenderBoxModelObject::clipBorderSidePolygon was generating wrong clipping quad.
It was based on a wrong assumption that rounded border would not cross {horizontal,vertical} line through the box center.

Fix 2: Correctly split a quad into two quads.
A clipping quad is split into "AND" of two quads to set anti-aliasing on both edges individually.
Generate these quads properly by extending a vertex parallel to the opposite edge.
Comment 1 Ahmad Saleem 2022-09-24 09:32:47 PDT
I haven't looked into Code to see whether it is easy to merge but Safari Technology Preview 154 still has issue in following test cases and show patches of other colours (e.g. red in blue):

Test Case - borderRadiusMultiColors02.html - https://jsfiddle.net/zt3s52yh/show
Test Case - borderRadiusMultiColors01.html - https://jsfiddle.net/7y24h61x/show

Just wanted to highlight. Thanks!
Comment 2 Radar WebKit Bug Importer 2022-09-26 11:31:03 PDT
<rdar://problem/100420688>