Bug 223099

Summary: Out-of-flow positioned box should generate an out-of-flow fragment container
Product: WebKit Reporter: zalan <zalan>
Component: Layout and RenderingAssignee: zalan <zalan>
Status: NEW ---    
Severity: Normal CC: ahmad.saleem792, bfulgham, changseok, esprehn+autocc, ews-watchlist, glenn, kondapallykalyan, pdr, simon.fraser, webkit-bug-importer, zalan
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch
none
Patch ews-feeder: commit-queue-

Description zalan 2021-03-11 16:04:20 PST
<rdar://73706973>
Comment 1 zalan 2021-03-11 16:33:44 PST
Created attachment 422990 [details]
Patch
Comment 2 zalan 2021-03-11 19:59:01 PST
Interestingly the failed tests produce the same geometries before/after. It probably needs some RenderLayer adjustment.
Comment 3 zalan 2021-04-28 10:10:30 PDT
Created attachment 427275 [details]
Patch
Comment 4 Ahmad Saleem 2023-10-29 07:34:44 PDT
We don't have following applied:

https://searchfox.org/wubkat/source/Source/WebCore/rendering/updating/RenderTreeBuilderMultiColumn.cpp#164

auto newFragmentedFlow = WebCore::createRenderer<RenderMultiColumnFlow>(flow.document(), RenderStyle::createAnonymousStyleWithDisplay(flow.style(), DisplayType::Block));
    newFragmentedFlow->initializeStyle();
    auto& fragmentedFlow = *newFragmentedFlow;
    m_builder.blockBuilder().attach(flow, WTFMove(newFragmentedFlow), nullptr);

    // Reparent children preceding the fragmented flow into the fragmented flow.
    m_builder.moveChildren(flow, fragmentedFlow, flow.firstChild(), &fragmentedFlow, RenderTreeBuilder::NormalizeAfterInsertion::Yes);
Comment 5 Ahmad Saleem 2023-10-29 07:40:18 PDT
(In reply to Ahmad Saleem from comment #4)
> We don't have following applied:
> 
> https://searchfox.org/wubkat/source/Source/WebCore/rendering/updating/
> RenderTreeBuilderMultiColumn.cpp#164
> 
> auto newFragmentedFlow =
> WebCore::createRenderer<RenderMultiColumnFlow>(flow.document(),
> RenderStyle::createAnonymousStyleWithDisplay(flow.style(),
> DisplayType::Block));
>     newFragmentedFlow->initializeStyle();
>     auto& fragmentedFlow = *newFragmentedFlow;
>     m_builder.blockBuilder().attach(flow, WTFMove(newFragmentedFlow),
> nullptr);
> 
>     // Reparent children preceding the fragmented flow into the fragmented
> flow.
>     m_builder.moveChildren(flow, fragmentedFlow, flow.firstChild(),
> &fragmentedFlow, RenderTreeBuilder::NormalizeAfterInsertion::Yes);

Just to update - it compiles based on above patch on WebKit ToT. :-)