[webkit-reviews] review canceled: [Bug 81084] Rendering replaced elements with percentage height within a table cell (with auto height) : [Attachment 132759] Patch
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Tue Mar 20 09:54:25 PDT 2012
Julien Chaffraix <jchaffraix at webkit.org> has canceled
arpitabahuguna at gmail.com's request for review:
Bug 81084: Rendering replaced elements with percentage height within a table
cell (with auto height)
https://bugs.webkit.org/show_bug.cgi?id=81084
Attachment 132759: Patch
https://bugs.webkit.org/attachment.cgi?id=132759&action=review
------- Additional Comments from Julien Chaffraix <jchaffraix at webkit.org>
View in context: https://bugs.webkit.org/attachment.cgi?id=132759&action=review
The patch cannot be applied by our tools due to the SVN property (which doesn't
look right to me anyway).
> Source/WebCore/rendering/RenderReplaced.cpp:586
> + while (cb && !cb->isRenderView() && (cb->style()->height().isAuto() ||
cb->style()->height().isPercent())) {
> + if (cb->isTableCell())
> + isTableCellHeightAuto = true;
> + cb = cb->containingBlock();
> + }
You are making hasRelativeDimensions O(n) instead of O(1) as it was before. I
think that's fine as it's rarely used.
Please add a break statement if you find a table cell as it's useless to
continue walking your ancestor's chain.
> Source/WebCore/rendering/RenderReplaced.cpp:590
> + return (style()->width().isPercent() || (style()->height().isPercent()
&& !isTableCellHeightAuto)
> + || style()->maxWidth().isPercent() ||
(style()->maxHeight().isPercent() && !isTableCellHeightAuto)
> + || style()->minWidth().isPercent() ||
(style()->minHeight().isPercent() && !isTableCellHeightAuto));
I don't understand why you single out height here. If you encountered a cell's
containing block with auto or percent width, wouldn't you need the same
exception?
Your testing would need to cover that too.
> Source/WebCore/rendering/RenderReplaced.h:41
> + virtual bool hasRelativeDimensions() const;
Add the 'OVERRIDE' keyword at the end.
> LayoutTests/ChangeLog:9
> + * platform/win/fast/replaced/table-cell-width-expected.txt: Added.
I don't think the output is platform-specific as you have a done a good job of
making it dumpAsText.
> LayoutTests/fast/replaced/table-cell-width.html:35
> +function parsePixelValue(str)
Used only by is75PercentOf so unused.
> LayoutTests/fast/replaced/table-cell-width.html:44
> +function is75PercentOf(expression75, expression100)
Unused function AFAICT.
> LayoutTests/fast/replaced/table-cell-width.html:126
> + if (window.layoutTestController) {
> + layoutTestController.notifyDone();
> + }
No need for this. DRT dumps after the load event listener was run by default.
> LayoutTests/fast/replaced/table-cell-width.html:133
> +<table><tr><td id="canvas-75"><canvas style="background-color: #00ff00;
height: 75%;"></canvas></td><td>This is the second table cell</td><td
style="background-color: grey;"
width="100%"><span> </span></td></tr></table>
> +<table><tr><td id="canvas-100"><canvas style="background-color: #00ff00;
height: 100%;"></canvas></td><td>This is the second table cell</td><td
style="background-color: grey;"
width="100%"><span> </span></td></tr></table>
Please use some CSS class selector on those. That would make it way easier to
read the output. For example:
.75percentHeight {
height: 75%
}
canvas {
background-color: #0F0;
}
...
> LayoutTests/platform/win/fast/replaced/table-cell-width-expected.txt:30
> +This is the second table cell Â
> +This is the second table cell Â
> + This is the second table cell Â
> + This is the second table cell Â
> + This is the second table cell Â
> + This is the second table cell Â
> +
> +This is the second table cell Â
> +
> +This is the second table cell Â
> + This is the second table cell Â
> + This is the second table cell Â
> +Button This is the second table cell Â
> +Button This is the second table cell Â
> + This is the second table cell Â
> + This is the second table cell Â
> + This is the second table cell Â
> + This is the second table cell Â
> + This is the second table cell Â
> + This is the second table cell Â
> + This is the second table cell Â
> + This is the second table cell Â
> + This is the second table cell Â
> + This is the second table cell Â
> + This is the second table cell Â
> + This is the second table cell Â
> + This is the second table cell Â
> + This is the second table cell Â
> + This is the second table cell Â
> + This is the second table cell Â
Not a huge fan of those. You could wrap all of them in an element and remove it
before at the end of your 'load' event listener.
> LayoutTests/platform/win/fast/replaced/table-cell-width-expected.txt:36
> +PASS getWidth('canvas-75') is '224px'
This test (among others) is failing in FF. I haven't thought much about it but
setting the size on your tables (or wrapping them in a fixed sized container)
may help here.
More information about the webkit-reviews
mailing list