Closed
Bug 1472053
Opened 7 years ago
Closed 7 years ago
ViewManager::WillPaintWindow paints without calling WillRefresh observers
Categories
(Core :: Web Painting, enhancement, P2)
Core
Web Painting
Tracking
()
RESOLVED
INVALID
| Tracking | Status | |
|---|---|---|
| firefox63 | --- | affected |
People
(Reporter: mattwoodrow, Assigned: mattwoodrow)
References
Details
Attachments
(1 file)
|
59 bytes,
text/x-review-board-request
|
Details |
We believe this is the cause of most of the bug 1466010 crashes, though they're almost impossible to reproduce but it's hard to be sure.
It looks like transitioning to fullscreen freezes the refresh driver, and then when we resume it (via EnsureTimerStarted) we update the mMostRecentRefresh value (which arguably is part of the problem).
Animations read from this value, so the change can cause animations to change from running to finished.
Normally when we paint from nsRefreshDriver::Tick, we call DocumentTimeline::WillRefresh, and this updates all animation state to the new time and invalidates correctly for any finished animations.
In some cases we paint from outside the refresh driver, in this case because we called nsIWidget::Show. That triggers PuppetWidget::Paint, and nsViewManager::WillPaintWindow directly calls into painting code.
This is effectively painting with animations in a broken state, so it looks like we decide we no longer have an animation (and don't build nsDisplayOpacity) even though there wasn't an invalidation. RDL trips up over this silent change.
It seems like the simplest thing to do is to just forcibly tick the refresh driver in this case, rather than out-of-band painting.
| Assignee | ||
Updated•7 years ago
|
Assignee: nobody → matt.woodrow
| Comment hidden (mozreview-request) |
| Assignee | ||
Updated•7 years ago
|
Attachment #8988643 -
Flags: review?(tnikkel)
| Assignee | ||
Comment 2•7 years ago
|
||
Dropped the review request for now since the try run wasn't even close to green.
Updated•7 years ago
|
Priority: -- → P2
| Assignee | ||
Comment 3•7 years ago
|
||
Hiro figured out a better fix for bug 1466010, so I'm going to close this.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → INVALID
Updated•7 years ago
|
Component: Layout: View Rendering → Layout: Web Painting
You need to log in
before you can comment on or make changes to this bug.
Description
•