Bug 208903 - [SVG] RenderSVGResourceContainer's style invalidation should be a pre-layout task
Summary: [SVG] RenderSVGResourceContainer's style invalidation should be a pre-layout ...
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: SVG (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2020-03-10 20:48 PDT by zalan
Modified: 2021-10-25 04:43 PDT (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description zalan 2020-03-10 20:48:13 PDT
RenderSVGRoot::layout() -> m_resourcesNeedingToInvalidateClients -> resource->removeAllClientsFromCache() -> RenderSVGResourceContainer::markAllClientsForInvalidation -> RenderSVGResourceContainer::markAllClientLayersForInvalidation -> invalidateStyleAndLayerComposition -> dirty style -> schedule style recalc.

This leads to unstable layout.
Comment 1 Radar WebKit Bug Importer 2020-03-10 20:48:36 PDT
<rdar://problem/60306128>
Comment 2 zalan 2020-03-10 21:15:30 PDT
Alternatively split RenderSVGResourceContainer::markAllClientsForInvalidation into 2 functions and call invalidation only through the non-layout case (e.g. make sure this function never gets called while in layout)