Bug 261302

Summary: REGRESSION (265576@main): Wrong paint order of positioned and in-flow content inside overflow:scroll
Product: WebKit Reporter: Simon Fraser (smfr) <simon.fraser>
Component: Layout and RenderingAssignee: Simon Fraser (smfr) <simon.fraser>
Status: RESOLVED FIXED    
Severity: Normal CC: bfulgham, simon.fraser, webkit-bug-importer, webkit-bugs, zalan
Priority: P2 Keywords: InRadar
Version: Safari 16   
Hardware: Unspecified   
OS: Unspecified   
URL: https://xs9627.github.io/iOS17-position-bug/
See Also: https://bugs.webkit.org/show_bug.cgi?id=261585
https://bugs.webkit.org/show_bug.cgi?id=261584
https://bugs.webkit.org/show_bug.cgi?id=263886
https://bugs.webkit.org/show_bug.cgi?id=266926

Simon Fraser (smfr)
Reported 2023-09-07 17:11:18 PDT
https://xs9627.github.io/iOS17-position-bug/ shows a bug where the position:absolute content appears below in-flow content in Safari, inside overflow:scroll.
Attachments
Radar WebKit Bug Importer
Comment 1 2023-09-07 17:23:02 PDT
Simon Fraser (smfr)
Comment 2 2023-09-07 18:19:39 PDT
A workaround for this bug is to put `will-change: z-index;` on the container
Simon Fraser (smfr)
Comment 3 2023-09-07 18:20:50 PDT
The layer tree looks like: (S)tacking Context/(F)orced SC/O(P)portunistic SC, (N)ormal flow only, (O)verflow clip, (A)lpha (opacity or mask), has (B)lend mode, (I)solates blending, (T)ransform-ish, (F)ilter, Fi(X)ed position, Behaves as fi(x)ed, (C)omposited, (P)rovides backing/uses (p)rovided backing/paints to (a)ncestor, (c)omposited descendant, (s)scrolling ancestor, (t)transformed ancestor Dirty (z)-lists, Dirty (n)ormal flow lists Traversal needs: requirements (t)raversal on descendants, (b)acking or hierarchy traversal on descendants, (r)equirements traversal on all descendants, requirements traversal on all (s)ubsequent layers, (h)ierarchy traversal on all descendants, update of paint (o)rder children Update needs: post-(l)ayout requirements, (g)eometry, (k)ids geometry, (c)onfig, layer conne(x)ion, (s)crolling tree Scrolling scope: box contents S---------C-c-- -- ------ ------ 2 2 0x112000950 (0,0) width=1220 height=1109 [SA 0x110020480] (layerID 26) {sc 2} RenderView 0x1120003d0 S-----------c-- -- ------ ------ 2 2 + 0x1120017d0 (0,0) width=1220 height=1109 [SA 0x110020780] RenderBlock 0x112001690 HTML 0x112001010 --O-------CPc-- -- ------ ------ 2 2 + 0x1120035a0 (28,28) width=400 height=400 [SA 0x110020840] (layerID 35) clipping RenderBlock (positioned) 0x112003460 DIV 0x112002f50 class='page' -NO-------C---- -- ------ ------ 2 3 n 0x112003810 (0,0) width=400 height=400 [SA 0x110020900] (layerID 34) {sc 3} RenderBlock 0x1120036d0 DIV 0x112002fd0 class='container' -----------p-s- -- ------ ------ 2 2 + 0x112003a80 (0,0) width=400 height=50 RenderBlock (positioned) 0x112003940 DIV 0x112003130 class='header' so 0x112003a80 is painting into the backing of 0x1120035a0 but there is composed layer in between, which is a no-no.
Antti Koivisto
Comment 4 2023-09-08 04:14:11 PDT
Simon Fraser (smfr)
Comment 5 2023-09-14 18:22:41 PDT Comment hidden (obsolete)
Simon Fraser (smfr)
Comment 6 2023-09-14 18:52:53 PDT
EWS
Comment 7 2023-09-15 10:07:07 PDT
Committed 268028@main (416e2026cb6c): <https://commits.webkit.org/268028@main> Reviewed commits have been landed. Closing PR #17798 and removing active labels.
Simon Fraser (smfr)
Comment 8 2023-10-10 17:29:15 PDT
*** Bug 262951 has been marked as a duplicate of this bug. ***
Note You need to log in before you can comment on or make changes to this bug.