So that flattening checking code can somewhat be shared between frameset and iframe. That would eliminate the need of early return and mimicking non-flattening layout case in RenderFrameBase::layoutWithFlattening(), which can get (and is) out of sync in case of iframe layouting. See below. RenderFrameBase::layoutWithFlattening(...) { ... if (!width() || !height() || !childRoot) { updateWidgetPosition(); if (childFrameView) childFrameView->layout(); setNeedsLayout(false); return; ... } vs. RenderIFrame::layout() { ... RenderPart::layout(); m_overflow.clear(); addVisualEffectOverflow(); updateLayerTransform(); setNeedsLayout(false); ... }