Bug 208161

Summary: [Frame flattening] When the iframe content schedules layout, it should also mark the owner renderer dirty
Product: WebKit Reporter: zalan <zalan>
Component: Layout and RenderingAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: bfulgham, simon.fraser, webkit-bug-importer, zalan
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   

Description zalan 2020-02-24 15:47:38 PST
In the frame flattening context when optional layout is delayed, getComputedStyle() might return the un-flattened geometry unless the iframe element is forced to get laid out.
        
1. main frame content is loaded and laid out -> if the iframe content is not ready yet, we don't initiate iframe flattening.
2. iframe content is ready -> layout is scheduled.
3. getComputedStyle() is called which initiates a style update/layout on the main frame, but only dirty boxes trigger layout (the iframe renderer itself is not dirty <- this is where frame flattening fails)
4. getComputedStyle() returns with the "stale" geometry.

See fast/frames/flattening/iframe-tiny.html
Comment 1 Radar WebKit Bug Importer 2020-02-24 15:48:03 PST
<rdar://problem/59744384>