Bug 164629 - RenderObject::flowThreadState should follow containing block instead of parent.
Summary: RenderObject::flowThreadState should follow containing block instead of parent.
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: zalan
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-11-10 21:08 PST by zalan
Modified: 2016-11-12 19:12 PST (History)
6 users (show)

See Also:


Attachments
Patch (6.45 KB, patch)
2016-11-10 21:11 PST, zalan
no flags Details | Formatted Diff | Diff
Patch (6.47 KB, patch)
2016-11-11 08:20 PST, zalan
no flags Details | Formatted Diff | Diff
Patch (7.62 KB, patch)
2016-11-11 20:47 PST, zalan
no flags Details | Formatted Diff | Diff
Patch (7.66 KB, patch)
2016-11-12 14:03 PST, zalan
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description zalan 2016-11-10 21:08:50 PST
Column boxes act as the containing block for their content. That is, column boxes behave like block-level, table cell, and inline-block boxes as per CSS 2.1, section 10.1, item 2 [CSS21]. However, column boxes do not establish containing blocks for elements with ‘position: fixed’ or ‘position: absolute’.
https://www.w3.org/TR/css3-multicol/
Comment 1 zalan 2016-11-10 21:11:26 PST
Created attachment 294469 [details]
Patch
Comment 2 zalan 2016-11-10 21:11:48 PST
^^WIP patch
Comment 3 zalan 2016-11-11 08:20:08 PST
Created attachment 294497 [details]
Patch
Comment 4 zalan 2016-11-11 20:47:09 PST
Created attachment 294590 [details]
Patch
Comment 5 Simon Fraser (smfr) 2016-11-12 10:39:31 PST
Comment on attachment 294590 [details]
Patch

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

> Source/WebCore/ChangeLog:12
> +        try to handle this seemingly defective state gracefully (that is flag indicates "inside the flow thread" state,

"that is flag indicates": hard to parse. Do you mean "that is, the flag indicates", or "that the flag indicates"?

> Source/WebCore/rendering/RenderElement.cpp:2198
> +    for (auto& descendant : descendantsOfType<RenderObject>(*this))

Is there a more elegant way to say descendantsOfType<RenderObject> (i.e. all descendants)?

> Source/WebCore/rendering/RenderElement.cpp:2199
> +        descendant.setFlowThreadState(RenderObject::computedFlowThreadState(descendant));

Why can't setFlowThreadState() contain the code for (or call) computedFlowThreadState(), since you always pass the same renderer?
Comment 6 zalan 2016-11-12 14:03:41 PST
Created attachment 294629 [details]
Patch
Comment 7 zalan 2016-11-12 14:04:59 PST
> > Source/WebCore/rendering/RenderElement.cpp:2199
> > +        descendant.setFlowThreadState(RenderObject::computedFlowThreadState(descendant));
> 
> Why can't setFlowThreadState() contain the code for (or call)
> computedFlowThreadState(), since you always pass the same renderer?
setFlowThreadState() has many callsites where we just pass an enum value in.
Comment 8 WebKit Commit Bot 2016-11-12 19:11:59 PST
Comment on attachment 294629 [details]
Patch

Clearing flags on attachment: 294629

Committed r208661: <http://trac.webkit.org/changeset/208661>
Comment 9 WebKit Commit Bot 2016-11-12 19:12:04 PST
All reviewed patches have been landed.  Closing bug.