Bug 224650

Summary: Web Inspector: audit for re-entrancy issues with `initialLayout` and `layout`
Product: WebKit Reporter: Devin Rousso <hi>
Component: Web InspectorAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: hi, inspector-bugzilla-changes, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: All   
OS: All   
See Also: https://bugs.webkit.org/show_bug.cgi?id=224648
https://bugs.webkit.org/show_bug.cgi?id=224678

Description Devin Rousso 2021-04-15 23:16:50 PDT
It appears that it's possible for re-entrancy issues in the `WI.View` system since the `_didInitialLayout` flag isn't set until _after_ `initialLayout` returns, meaning that if the logic inside `initialLayout` triggers a synchronous `layout` then that second `layout` won't know that it's already in the middle of an `initialLayout`.

As an example, showing the `WI.GraphicsOverviewContentView` in `WI.GraphicsTabContentView.prototype.initialLayout` causes the navigation sidebar to be shown, which forces a synchronous `layout` from handling `WI.Sidebar.Event.WidthDidChange`.
Comment 1 Radar WebKit Bug Importer 2021-04-15 23:18:44 PDT
<rdar://problem/76745432>