Closed Bug 555195 Opened 14 years ago Closed 3 years ago

Mac core layout invalidation issue identified in bug 547654

Categories

(Core :: Web Painting, defect, P2)

All
macOS
defect

Tracking

()

RESOLVED INCOMPLETE
Tracking Status
blocking2.0 --- -

People

(Reporter: adil, Unassigned)

Details

(Keywords: testcase, Whiteboard: [tbwants])

Attachments

(2 files)

User-Agent:       Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.3a4pre) Gecko/20100324 Minefield/3.7a4pre
Build Identifier: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.2pre) Gecko/20100325 Lightning/1.0b2pre Lanikai/3.1b2pre

A specific configuration of Thunderbird with Lightning causes rendering artifacts to be left over when scrolling some emails. This was identified to be a core layout issue. I am copying this to a new bug so that the fix for this issue can be tracked on its own.

Reproducible: Always

Steps to Reproduce:
1. Install Lanikai b2 with lightning b2
2. Copy attached file localstore.rdf to the Thunderbird Profile directory
3. Launch Lanikai and do not resize the window.
4. Scroll the default welcome screen down with mouse wheel
Actual Results:  
You should see rendering artifacts on the screen as you scroll


See attachment 435145 [details] [diff] [review] in bug 547654.

I isolated the scrolling bug down to an invalidate issue on the Mac - basically
there is an error in the calculation of the invalidate rect of one pixel leaving single lines that were not updated. This happens only on very tiny borderline cases when the view has a fractional height.

I proved this by calling [mView setNeedsDisplayInRect:rect] in
nsChildView::Scroll with a rect based on the area to be updated. When I
increased the size of the update rect by one pixel the problem stops happening.
I suspect your patch is working around some other bug. We really need a reduced testcase here.
Exactly right - I only added the patch to show that the error is related to calculating the invalidate regions. And it only happens within a very very fine borderline situation. I took me a while to make the bug repeatable and only in Thunderbird with Lightning extension. If you can tell me what you need from me to reduce it further I am happy to try.
The ideal thing would be a XUL document with the same content and styles as the Thunderbird window that shows the problem. Maybe DOM Inspector "Copy XML" can extract something that would work? But I guess there's a load of XBL involved too.

Another approach would be to actually hack a Thunderbird build to remove items from the window until we reach the minimal window that shows the problem...
The attachment is a XUL file giving a minimal configuration for repeating this bug. It must be opened from the command line to be the main window, e.g.:

/path-to/firefox-bin -chrome /path-to/test.xul

This is the minimal case for repeating the issue. The problem only happens when there is a statusbar with a fractional height and the scrollable widget is the lowest widget in a vbox. If you scroll the lower browser frame with the mouse or trackpad you should see artifacts appearing.

Also look very carefully at the lowest pixel of the lower scroll bar as you resize the window. The lowest pixel of the scroll bar will get clipped by the status bar as the window size changes. When this row is clipped the issue happens.

Finally try to open the window by opening it from the menu in Firefox so that it opens inside a browser window. You will notice that the top-most pixel of the statusbar will disappear and reappear as the window is resized. This issue is just screaming "rounding errors". Please do ping me if you need more information.
This is fantastic, thanks!!!
Assignee: nobody → roc
blocking2.0: --- → ?
blocking2.0: ? → final+
Priority: -- → P2
I think with a reproducible bug and a testcase, we can confirm this bug.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Whiteboard: [tb33wants]?
Keywords: testcase
Whiteboard: [tb33wants]? → [tbwants]
Component: Layout: View Rendering → Layout: Web Painting

Closing this Thunderbird issue as resolved:incomplete since there was no activity on it in the past 12 years. Please re-open it if you still find it relevant for today's Thunderbird version.

Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: