Bug 225467

Summary: REGRESSION (Safari 14): Submenus on https://codelearn.cat don't show
Product: WebKit Reporter: Simon Fraser (smfr) <simon.fraser>
Component: Layout and RenderingAssignee: Simon Fraser (smfr) <simon.fraser>
Status: RESOLVED FIXED    
Severity: Normal CC: bfulgham, changseok, esprehn+autocc, ews-watchlist, glenn, kondapallykalyan, ntim, pdr, simon.fraser, webkit-bug-importer, zalan, zimmermann
Priority: P2 Keywords: InRadar
Version: Safari Technology Preview   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch none

Description Simon Fraser (smfr) 2021-05-06 09:59:29 PDT
Hover the menus on https://codelearn.cat: hover "Centres" then "Barcelona" and the hover menus fail to appear.

To reproduce, your window needs to be short enough for the longer menus to scroll.
Comment 1 Radar WebKit Bug Importer 2021-05-06 10:00:21 PDT
<rdar://problem/77612276>
Comment 2 Simon Fraser (smfr) 2021-05-06 10:00:32 PDT
Probably related to async overflow scroll and compositing.
Comment 3 Simon Fraser (smfr) 2021-06-08 14:20:37 PDT
This might be fallout from the RenderLayer/ScrollableArea split.

There's a composited layer with overflow:scroll, and overflow is being toggled to 'visible'. We fail to remove the compositing clipping layer, so the content remains clipped.

This is happening because RenderBox::requiresLayerWithScrollableArea() is called from RenderLayer::styleChanged() (i.e. before layout) but it consults hasHorizontalOverflow() || hasVerticalOverflow() which depend on layout.
Comment 4 Simon Fraser (smfr) 2021-06-08 14:21:03 PDT
We also never remove the RenderLayerScrollableArea and it seems like we should.
Comment 5 Simon Fraser (smfr) 2021-06-09 10:55:29 PDT
Created attachment 430979 [details]
Patch
Comment 6 EWS 2021-06-22 11:33:32 PDT
Committed r279130 (239044@main): <https://commits.webkit.org/239044@main>

All reviewed patches have been landed. Closing bug and clearing flags on attachment 430979 [details].