Closed Bug 1318625 Opened 5 years ago Closed 5 years ago

Dotted border rendering artifacts when setting elliptical shaped corner


(Core :: Layout, defect)

50 Branch
Windows 10
Not set



Tracking Status
firefox50 --- wontfix
firefox51 --- fixed
firefox52 --- fixed
firefox53 --- fixed


(Reporter: massamino, Assigned: arai)




(4 files)

When setting top and bottom border width to a value and setting the side borders to 0 and than setting the top right border radius to 40px 200px, the rendering of the border goes wrong.

It shows an overshoot after half the height of the div.
Blocks: 382721
To see the result I get (dashed is ok)
Has STR: --- → yes
Ever confirmed: true
Component: General → Layout
Product: Firefox → Core
I reproduce with latest Aurora v51 (20161114004005) and latest Nightly v53 (20161117030212).
I found that the DottedCornerFinder goes into wrong state after the dot size becomes almost 0.
Will try fixing.
Assignee: nobody → arai.unmht
While calculating circle around r=0, it may fail to search correct circle (due to the restriction for avoid taking too long time), and in that case it returns wrong circle that is bigger than previous circle (note that we're calculating circles from wider side to narrow side),

So changed the code to detect that case and stop calculating.
it will now return circle with r=0, so that nsCSSBorderRenderer::DrawDottedCornerSlow will leave the loop.

I'll try creating reftest, but it may take some time, so I'd like to ask review for the code first.
Attachment #8812310 - Flags: review?(jmuizelaar)
Added testcase from comment #0.
Attachment #8812323 - Flags: review?(jmuizelaar)
Attachment #8812310 - Flags: review?(jmuizelaar) → review+
Attachment #8812323 - Flags: review?(jmuizelaar) → review+
Thank you for reviewing :)
Bug 1318625 - Part 1: Stop calculating circles around r=0 in DottedCornerFinder. r=0 in DottedCornerFinder.,jrmuizel
Bug 1318625 - Part 2: Add testcase. r=jrmuizel
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla53
Comment on attachment 8812310 [details] [diff] [review]
Stop calculating circles around r=0 in DottedCornerFinder.

same patch is applicable to mozilla-aurora and mozilla-beta

Approval Request Comment
> [Feature/regressing bug #]
bug 382721

> [User impact if declined]
unnecessary wrong dots are rendered with dotted border radius in some case.
(comment #0)

> [Describe test coverage new/current, TreeHerder]
tested on m-c

> [Risks and why]
low, just avoid rendering wrong dots

> [String/UUID change made/needed]
Attachment #8812310 - Flags: approval-mozilla-beta?
Attachment #8812310 - Flags: approval-mozilla-aurora?
Comment on attachment 8812310 [details] [diff] [review]
Stop calculating circles around r=0 in DottedCornerFinder.

Fix a rendering issue related to dotted border radius. Beta51+ and Aurora52+. Should be in 51 beta 3.
Attachment #8812310 - Flags: approval-mozilla-beta?
Attachment #8812310 - Flags: approval-mozilla-beta+
Attachment #8812310 - Flags: approval-mozilla-aurora?
Attachment #8812310 - Flags: approval-mozilla-aurora+
QA Whiteboard: [good first verify]
I have reproduced this bug with Firefox Nightly 53.0a1 (Build ID: 20161118030222) on 
Windows 8.1, 64-bit.

Verified as fixed with Latest Firefox beta 53.0b5 (Build ID: 20170320143328)
Mozilla/5.0 (Windows NT 6.3; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0
QA Whiteboard: [good first verify] → [good first verify] [bugday-20170322]
You need to log in before you can comment on or make changes to this bug.