[Webkit-unassigned] [Bug 76246] Incorrect rendering of borders on <col> with span > 1

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Oct 1 12:20:09 PDT 2012


https://bugs.webkit.org/show_bug.cgi?id=76246


Julien Chaffraix <jchaffraix at webkit.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #166250|review?                     |review+, commit-queue-
               Flag|                            |




--- Comment #15 from Julien Chaffraix <jchaffraix at webkit.org>  2012-10-01 12:20:32 PST ---
(From update of attachment 166250)
View in context: https://bugs.webkit.org/attachment.cgi?id=166250&action=review

> Source/WebCore/ChangeLog:8
> +        As per the specifications we should apply a col element's border as if

Please say which specification as it is important: tables are defined by several specifications: HTML (4 and 5) and CSS 2.1.

Ideally, you should quote it somewhere (the code is usually the best place but not if we have to duplicate it).

> Source/WebCore/ChangeLog:19
> +        Borders from col and it's enclosing colgroup element should be handled

typo: its enclosing colgroup.

> Source/WebCore/rendering/RenderTableCell.cpp:477
> +            // The |colElt| is a column group, in which case we apply it's start border but only if it

typo: its start border (this error occurs in other comments but I didn't repeat it for each mistake)

> Source/WebCore/rendering/RenderTableCell.cpp:501
> +        if (RenderTableCol* colElt = table->colElement(col() -1, &startColEdge, &endColEdge)) {

Let's fix the style when we move code (there should be a space after the '-').

> Source/WebCore/rendering/RenderTableCell.cpp:603
> +            // If the current element is a colgroup then we apply it's start border only if it is the first
> +            // colgroup (considering spanned colgroups).

I really wonder how we could make those comments more digest as they are pretty repetitive (yet a bit different different for each function) and could be condensed & add more value. My take below.

> Source/WebCore/rendering/RenderTableCell.cpp:605
> +                result = chooseBorder(result, CollapsedBorderValue(colElt->borderAdjoiningCellBefore(this), includeColor ? colElt->style()->visitedDependentColor(startColorProperty) : Color(), BCOLGROUP));

// This case is a colgroup without any col, we only compute it if it is adjacent to the cell's edge.

> Source/WebCore/rendering/RenderTableCell.cpp:608
> +            } else if (!colElt->isTableColumnGroup()) {

You probably want to use colElt->isTableColumn() instead of the negative (not isTableColumnGroup).

> Source/WebCore/rendering/RenderTableCell.cpp:609
> +                // First, apply the start border of the |colElt|, irrespective of whether it is spanned or not.

// Resolve the collapsing border against the col's border ignoring any 'span' per HTML5.

> Source/WebCore/rendering/RenderTableCell.cpp:614
> +                // Next, if the element has a parent colgroup then it's start border should be applied
> +                // but only if it is the first col in that colgroup (i.e. considering spanned cols within a colgroup).

// If we have a parent colgroup, resolve the border only if it is adjacent to the cell.

> LayoutTests/ChangeLog:19
> +        Existing tests modified. This is because previously, while computing collpased
> +        start border, we did not take the preceeding col's enclosing colgroup's end border
> +        into consideration. While computing the collapsed start border, only the preceeding
> +        col element's end border was considered.
> +
> +        With this fix, for the above two tests, the last col's width now changes due to
> +        the border being applied to it (the preceeding col's enclosing colgroup's end border)
> +        which causes the table's width to change.

Good catch. Worth mentioning that the cell's are growing by half the border's width, which is expected.

> LayoutTests/ChangeLog:25
> +        New image only test added for verifying the behavior of collapsed borders with col
> +        and colgroup span.

Bad wrapping.

> LayoutTests/fast/table/border-collapsing/collapsed-border-with-col-colgroup-span.html:27
> +<!-- This table has a col with span. Individual borders for the spanned cells should be painted. -->

The descriptions here are really difficult to make sense of. If you don't know the collapsing border algorithm (which isn't the case for most people), you have a hard time saying if the output is expected.

> LayoutTests/fast/table/border-collapsing/collapsed-border-with-col-colgroup-span.html:40
> +<div id="space"></div>

This case could probably use some red for anything that shouldn't be shown (like .bordered's border-right as it should be disabled by the next column's border, with the exception of the last col that would need an extra style).

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list