Summary: | flex item sized incorrectly in a column flexbox with height set via top/bottom | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Steve Orvell <sorvell> | ||||||||||
Component: | CSS | Assignee: | Tony Chang <tony> | ||||||||||
Status: | RESOLVED FIXED | ||||||||||||
Severity: | Normal | CC: | eric, ojan, tony, webkit.review.bot | ||||||||||
Priority: | P2 | Keywords: | HasReduction | ||||||||||
Version: | 528+ (Nightly build) | ||||||||||||
Hardware: | Mac (Intel) | ||||||||||||
OS: | OS X 10.7 | ||||||||||||
Bug Depends on: | 94982 | ||||||||||||
Bug Blocks: | 62048 | ||||||||||||
Attachments: |
|
Created attachment 160251 [details]
corrected reduction
Yup, looks like a bug. Not sure where exactly the bug is though. (In reply to comment #2) > Yup, looks like a bug. Not sure where exactly the bug is though. I think it's because we do our own calculation of height by calling computeLogicalClientHeight directly in RenderFlexibleBox::mainAxisContentExtent. It doesn't look like computeLogicalClientHeight handles absolute sized boxes. If you look at computeLogicalHeight, it does: if (isOutOfFlowPositioned()) computePositionedLogicalHeight(); Ok, I think I now know enough to fix this bug :) Sorry, it's going to take a while to fix this bug. I need to fix bug 94982 first, and that's going to take a while. Created attachment 163723 [details]
Patch
Comment on attachment 163723 [details]
Patch
Add a FIXME for mainAxisContentExtent to be used for all the places we call computeLogicalHeight(...)?
Created attachment 163729 [details]
Patch for landing
Comment on attachment 163729 [details] Patch for landing Clearing flags on attachment: 163729 Committed r128383: <http://trac.webkit.org/changeset/128383> All reviewed patches have been landed. Closing bug. |
Created attachment 160246 [details] Reduction showing actual and expected output. If a display: -webkit-flex element with flex-flow: column is itself sized by fitting to another container via: setting position absolute + top, bottom, right, left all to 0, then its flex items lose their flexibility and appear to have natural size. Note, this problem only occurs for column flex-flow, row is ok. Further, setting height: 100% is ok.