Bug 198086

Summary: Layer with negative z-index in a scroller doesn't scroll with the scroller
Product: WebKit Reporter: Simon Fraser (smfr) <simon.fraser>
Component: CompositingAssignee: Simon Fraser (smfr) <simon.fraser>
Status: ASSIGNED ---    
Severity: Normal CC: koivisto, simon.fraser, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=199253
Attachments:
Description Flags
Testcase none

Description Simon Fraser (smfr) 2019-05-21 15:01:54 PDT
Created attachment 370345 [details]
Testcase

Scroller with a negative z-index child fails to composite, and scroll the scroller.
Comment 1 Radar WebKit Bug Importer 2019-05-21 15:05:17 PDT
<rdar://problem/51002331>
Comment 2 Radar WebKit Bug Importer 2019-05-21 15:05:22 PDT
<rdar://problem/51002332>
Comment 3 Simon Fraser (smfr) 2019-06-02 09:58:31 PDT
We don't composite the negative z child, and it doesn't use backing sharing.
Comment 4 Simon Fraser (smfr) 2019-06-02 10:01:07 PDT
isNonScrolledLayerInsideScrolledCompositedAncestor() needs to take care of this, but not in a way that prevents backing sharing.
Comment 5 Simon Fraser (smfr) 2019-06-26 15:13:55 PDT
Another problem here is that in the first compositing update, we hit the 'traverseUnchangedSubtree' code path for the negative z-order child, because we haven't composited the scroller yet, so we don't composite the child.
Comment 6 Simon Fraser (smfr) 2019-06-26 18:04:56 PDT
The patch in bug 199253 mostly fixes this, other than bad state on the first layer traversal which I'll keep this bug open for.