Bug 110392

Summary: [New Multicolumn] Fix overflow computation for column blocks
Product: WebKit Reporter: Dave Hyatt <hyatt>
Component: Layout and RenderingAssignee: Dave Hyatt <hyatt>
Status: RESOLVED FIXED    
Severity: Normal CC: eric, esprehn+autocc, ojan.autocc, WebkitBugTracker, webkit.review.bot
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch simon.fraser: review+

Description Dave Hyatt 2013-02-20 15:10:24 PST
Fix the overflow computation for column blocks to avoid adding in the RenderFlowThread. Make sure the auto logical height regions code doesn't incorrectly kick in for columns.
Comment 1 Dave Hyatt 2013-02-20 15:13:36 PST
Created attachment 189390 [details]
Patch
Comment 2 Simon Fraser (smfr) 2013-02-20 16:27:58 PST
Comment on attachment 189390 [details]
Patch

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

> Source/WebCore/rendering/RenderRegion.h:143
> +    virtual bool shouldHaveAutoLogicalHeight() const
>      {
>          bool hasSpecifiedEndpointsForHeight = style()->logicalTop().isSpecified() && style()->logicalBottom().isSpecified();
>          bool hasAnchoredEndpointsForHeight = isOutOfFlowPositioned() && hasSpecifiedEndpointsForHeight;
>          return style()->logicalHeight().isAuto() && !hasAnchoredEndpointsForHeight;
>      }

This should not be in the header now that it's virtual.
Comment 3 Dave Hyatt 2013-02-20 18:04:22 PST
Fixed in r143546.
Comment 4 Mihai Maerean 2013-02-21 00:28:14 PST
Comment on attachment 189390 [details]
Patch

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

> Source/WebCore/rendering/RenderRegion.h:141
>          bool hasAnchoredEndpointsForHeight = isOutOfFlowPositioned() && hasSpecifiedEndpointsForHeight;

just as a note, the code will run faster if we invert the boolean condition (hasSpecifiedEndpointsForHeight && isOutOfFlowPositioned()) to avoid calling isOutOfFlowPositioned() if hasSpecifiedEndpointsForHeight is false.
this is also true for the next line of code.