Bug 210506 - [Async overflow scroll] Backgrounds missing on gmail sometimes
Summary: [Async overflow scroll] Backgrounds missing on gmail sometimes
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Compositing (show other bugs)
Version: Safari Technology Preview
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Simon Fraser (smfr)
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2020-04-14 11:26 PDT by Simon Fraser (smfr)
Modified: 2020-04-14 23:35 PDT (History)
9 users (show)

See Also:


Attachments
Reduction (1.11 KB, text/html)
2020-04-14 11:26 PDT, Simon Fraser (smfr)
no flags Details
Patch (9.45 KB, patch)
2020-04-14 16:48 PDT, Simon Fraser (smfr)
no flags Details | Formatted Diff | Diff
Patch (15.57 KB, patch)
2020-04-14 20:48 PDT, Simon Fraser (smfr)
zalan: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Simon Fraser (smfr) 2020-04-14 11:26:57 PDT
Created attachment 396443 [details]
Reduction

Element backgrounds fail to paint sometimes when scrolling in gmail with async overflow scrolling enabled.
Comment 1 Simon Fraser (smfr) 2020-04-14 11:27:13 PDT
rdar://problem/60523869
Comment 2 Simon Fraser (smfr) 2020-04-14 11:58:45 PDT
I think this is about painting with stale clip rects (which are probably computed using some stale main-thread scrolling offset).
Comment 3 Simon Fraser (smfr) 2020-04-14 14:04:45 PDT
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.
Comment 4 Simon Fraser (smfr) 2020-04-14 15:42:40 PDT
RenderBox::overflowRectForPaintRejection() is supposed to handle this, but m_overflow is null for some reason.
Comment 5 Simon Fraser (smfr) 2020-04-14 16:48:55 PDT
Created attachment 396478 [details]
Patch
Comment 6 Simon Fraser (smfr) 2020-04-14 20:48:37 PDT
Created attachment 396494 [details]
Patch
Comment 7 Simon Fraser (smfr) 2020-04-14 23:35:28 PDT
https://trac.webkit.org/changeset/260118/webkit