Closed Bug 1613482 Opened 8 months ago Closed 8 months ago

clear nsRefreshDriver::mHasScheduleFlush whenever mViewManagerFlushIsPending is cleared

Categories

(Core :: Web Painting, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla75
Fission Milestone M6
Tracking Status
firefox-esr68 --- wontfix
firefox73 --- wontfix
firefox74 --- wontfix
firefox75 --- fixed

People

(Reporter: tnikkel, Assigned: tnikkel)

References

(Blocks 1 open bug, Regression)

Details

(Keywords: regression)

Attachments

(1 file)

No description provided.
Regressed by: 1404091

mHasScheduleFlush is meant to track mViewManagerFlushIsPending except mViewManagerFlushIsPending gets set to false just before we call ProcessPendingUpdates, whereas mHasScheduleFlush is set to false just after we call ProcessPendingUpdates.

There are a couple places where mViewManagerFlushIsPending gets set to false that don't clear mHasScheduleFlush though. This leaves mHasScheduleFlush true until we get another paint that changed something. This causes this code

https://searchfox.org/mozilla-central/rev/3a0a8e2762821c6afc1d235b3eb3dde63ad3b01a/layout/painting/nsDisplayList.cpp#3058

in nsDisplayList::PaintRoot to always notify of invalidation (with webrender). This in turn causes a loop in the reftest harness: notify invalidation -> mozafterpaint -> update canvas -> paint -> notify invalidation.

This code changed a bunch until settling on the current design in bug 1404091.

Assignee: nobody → tnikkel
Status: NEW → ASSIGNED
Blocks: R-fis

Tracking R-fis bugs for Fission Nightly (M6)

Fission Milestone: --- → M6
Pushed by tnikkel@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/66d32f60d18d
Clear nsRefreshDriver::mHasScheduleFlush whenever mViewManagerFlushIsPending is cleared. r=mattwoodrow
Status: ASSIGNED → RESOLVED
Closed: 8 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla75
You need to log in before you can comment on or make changes to this bug.