Summary: | [Async overflow scroll] Backgrounds missing on gmail sometimes | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Simon Fraser (smfr) <simon.fraser> | ||||||||
Component: | Compositing | Assignee: | Simon Fraser (smfr) <simon.fraser> | ||||||||
Status: | RESOLVED FIXED | ||||||||||
Severity: | Normal | CC: | esprehn+autocc, ews-watchlist, fred.wang, glenn, kondapallykalyan, pdr, simon.fraser, webkit-bug-importer, zalan | ||||||||
Priority: | P2 | Keywords: | InRadar | ||||||||
Version: | Safari Technology Preview | ||||||||||
Hardware: | Unspecified | ||||||||||
OS: | Unspecified | ||||||||||
Attachments: |
|
I think this is about painting with stale clip rects (which are probably computed using some stale main-thread scrolling offset). We paint out-of-view tiles but RenderBlock::paint() short-circuits because they are clipped out (note the iOS #ifdef), then we later scroll those tiles back into view and they are missing content. RenderBox::overflowRectForPaintRejection() is supposed to handle this, but m_overflow is null for some reason. Created attachment 396478 [details]
Patch
Created attachment 396494 [details]
Patch
|
Created attachment 396443 [details] Reduction Element backgrounds fail to paint sometimes when scrolling in gmail with async overflow scrolling enabled.