Bug 261230

Summary: Clean up overlay scrollbar logic on iOS
Product: WebKit Reporter: Simon Fraser (smfr) <simon.fraser>
Component: ScrollingAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: simon.fraser, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: Safari 16   
Hardware: Unspecified   
OS: Unspecified   

Description Simon Fraser (smfr) 2023-09-06 14:33:55 PDT
iOS has some old #ifdefs, like the one in RenderLayerScrollableArea::showsOverflowControls(), that essentially "turn off" scrollbars in WebCore, since it assumes that they are rendered in the UI process.

However, when canUseCompositedScrolling() returns false, like inside SVG <foreignObject>, then the code still tries to paint scrollbars, which does nothing.

Instead, we should fix ScrollbarThemeIOS to return true from `usesOverlayScrollbars()` and make the iOS code closer to the macOS UI-side compositing code.

Also, at some point, we should support resizes on iOS, which requires that we run code in RenderLayerScrollableArea::paintOverflowControls.
Comment 1 Radar WebKit Bug Importer 2023-09-13 14:34:22 PDT
<rdar://problem/115450826>