If new page has begun loading but has not painted, redraw if checkerboard is visible

NEW
Unassigned

Status

Fennec Graveyard
General
6 years ago
6 years ago

People

(Reporter: stechz, Unassigned)

Tracking

Details

Attachments

(1 attachment)

(Reporter)

Description

6 years ago
When loading a new page, there is a time after location change when the old content has been retained and new content will not paint. Widget invalidations will cause a repaint, but displayport updates of course do not count as widget invalidations.

The result? If the user is loading a new page and is still scrolling around the old one, she will see checkerboard for a while until the initial reflow occurs and the paint suppression timer is done.

When the user begins to see checkerboard (or begins to scroll at all?), we could immediately invalidate the widget so that a nice background is painted so that checkerboard is not just sitting there, waiting for a page load. I don't know if nsIDOMWindowUtils::Redraw will cause a widget invalidation, but it's a good candidate to try.
(Reporter)

Comment 1

6 years ago
Created attachment 555791 [details] [diff] [review]
WIP: on any panning before first paint, force a widget update
(Reporter)

Comment 2

6 years ago
This sort of does the job, but I think the first widget invalidate triggers the first paint, meaning even though no frame is ready to be painted, you can scroll around as if the page had painted.

So, if we start basing scrolling on contentWidth and contentHeight in MainDragger instead of MozScrolledAreaChanged, then that would probably tell us exactly what we're working with in the parent process: a simple white background or actual content.
You need to log in before you can comment on or make changes to this bug.