Bug 204613

Summary: [LFC][Render tree] Add LFC line layout path to RenderBlockFlow
Product: WebKit Reporter: Antti Koivisto <koivisto>
Component: Layout and RenderingAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: aakash_jain, ap, bfulgham, commit-queue, esprehn+autocc, ews-watchlist, glenn, kondapallykalyan, pdr, simon.fraser, webkit-bot-watchers-bugzilla, webkit-bug-importer, zalan
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=204725
Attachments:
Description Flags
patch
zalan: review+
patch none

Description Antti Koivisto 2019-11-26 05:14:30 PST
Basic line layout integration.
Comment 1 Antti Koivisto 2019-11-26 05:46:00 PST
Created attachment 384348 [details]
patch
Comment 2 zalan 2019-11-26 08:34:50 PST
Comment on attachment 384348 [details]
patch

View in context: https://bugs.webkit.org/attachment.cgi?id=384348&action=review

> Source/WebCore/layout/RenderBlockFlowLineLayout.cpp:91
> +LayoutUnit RenderBlockFlowLineLayout::height() const

Since there are many different types of box height, I think it would be great if this function was named contentBoxHeight() (as opposed to padding/border/margin box height).

> Source/WebCore/layout/invalidation/InvalidationState.cpp:47
> +    if (layoutBox.isInitialContainingBlock()) {
> +        m_formattingContextRoots.add(downcast<Container>(layoutBox));
> +        return;
> +    }

As the comment/assert implies here the ICB should never need an update. It has to have a pre-computed geometry (in full LFC mode, it's always the view size, in partial LFC mode, I guess it's the flow's content box size). It's only the children that need update (layout).
Comment 3 Antti Koivisto 2019-11-26 11:31:38 PST
Created attachment 384368 [details]
patch
Comment 4 WebKit Commit Bot 2019-11-26 12:15:46 PST
Comment on attachment 384368 [details]
patch

Clearing flags on attachment: 384368

Committed r252893: <https://trac.webkit.org/changeset/252893>
Comment 5 WebKit Commit Bot 2019-11-26 12:15:47 PST
All reviewed patches have been landed.  Closing bug.
Comment 6 Radar WebKit Bug Importer 2019-11-26 12:16:18 PST
<rdar://problem/57494369>
Comment 7 Aakash Jain 2019-12-01 06:48:15 PST
This broke loader/stateobjects/pushstate-size.html test on mac-debug. EWS did indicate this failure on previous version of patch. Tracked in Bug 204725.
Comment 8 Antti Koivisto 2019-12-01 06:51:24 PST
No(In reply to Aakash Jain from comment #7)
> This broke loader/stateobjects/pushstate-size.html test on mac-debug. EWS
> did indicate this failure on previous version of patch. Tracked in Bug
> 204725.

Very unlikely.
Comment 9 Antti Koivisto 2019-12-01 07:35:42 PST
> Very unlikely.

...but true. Adding enum value caused a bitfield to overflow (though the patch was otherwise no-op without enabling LFC).