Bug 46997
Summary: | The table cell check in calcReplacedLogicalHeightUsing doesn't work with perpendicular block flows. | ||
---|---|---|---|
Product: | WebKit | Reporter: | Dave Hyatt <hyatt> |
Component: | Layout and Rendering | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED WONTFIX | ||
Severity: | Normal | CC: | ahmad.saleem792, karlcow, simon.fraser, zalan |
Priority: | P2 | ||
Version: | 528+ (Nightly build) | ||
Hardware: | PC | ||
OS: | OS X 10.5 | ||
Bug Depends on: | |||
Bug Blocks: | 46123 |
Dave Hyatt
The table cell check in calcReplacedLogicalHeightUsing doesn't work with perpendicular block flows.
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Ahmad Saleem
Can’t find ‘calcReplacedLogicalHeightUsing’ in Commit History (at least using GitHub Search) and also via SearchFox.org.
It might be renamed but do we need this?
Ahmad Saleem
Marking it as 'WONTFIX' and CCing 'Alan' and 'Simon', if it is wrong conclusion.
Karl Dubost
I wonder if the bug still exists.
There is a comment in the source code pointing to here.
And without a testcase showing the issue it might be premature to close it?
See https://searchfox.org/wubkat/rev/115aae15a98b284596444de1513377e15f7a4aad/Source/WebCore/rendering/RenderBox.cpp#3642-3660
and specifically with the issue which is happening for rdar://132105152
Karl Dubost
The code pointing to this bug.
```
else {
availableHeight = hasPerpendicularContainingBlock ? containingBlockLogicalWidthForContent() : containingBlockLogicalHeightForContent(IncludeMarginBorderPadding);
// It is necessary to use the border-box to match WinIE's broken
// box model. This is essential for sizing inside
// table cells using percentage heights.
// FIXME: This needs to be made block-flow-aware. If the cell and image are perpendicular block-flows, this isn't right.
// https://bugs.webkit.org/show_bug.cgi?id=46997
while (container && !is<RenderView>(*container)
&& (container->style().logicalHeight().isAuto() || container->style().logicalHeight().isPercentOrCalculated())) {
if (container->isRenderTableCell()) {
// Don't let table cells squeeze percent-height replaced elements
// <http://bugs.webkit.org/show_bug.cgi?id=15359>
availableHeight = std::max(availableHeight, intrinsicLogicalHeight());
return valueForLength(logicalHeight, availableHeight - borderAndPaddingLogicalHeight());
}
downcast<RenderBlock>(*container).addPercentHeightDescendant(const_cast<RenderBox&>(*this));
container = container->containingBlock();
}
}
```