Changeset 146467 in webkit


Ignore:
Timestamp:
Mar 21, 2013 7:53:10 AM (11 years ago)
Author:
jchaffraix@webkit.org
Message:

[CSS Grid Layout] Support default grid items sizing
https://bugs.webkit.org/show_bug.cgi?id=103333

Reviewed by Tony Chang.

Source/WebCore:

Tests: fast/css-grid-layout/grid-auto-columns-rows-auto-flow-resolution.html

fast/css-grid-layout/grid-auto-columns-rows-resolution.html
fast/css-grid-layout/grid-auto-columns-rows-update.html

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::gridTrackSize):
Core of the change: return the grid-auto-{rows|columns} instead of a pre-defined value.

(WebCore::RenderGrid::computedUsedBreadthOfGridTracks):
Fixed a latent bug: we need to iterate over the internal grid representation instead of the
style's rows / columns as the latter doesn't account for implicit rows / columns.

LayoutTests:

  • fast/css-grid-layout/grid-auto-columns-rows-resolution-expected.txt: Added.
  • fast/css-grid-layout/grid-auto-columns-rows-resolution.html: Added.

This test covers the simple implicit column / row case.

  • fast/css-grid-layout/grid-auto-columns-rows-update-expected.txt: Added.
  • fast/css-grid-layout/grid-auto-columns-rows-update.html: Added.

This test covers that modifying grid-auto-{rows|columns} updates the grid items' sizes.

  • fast/css-grid-layout/grid-auto-columns-rows-auto-flow-resolution-expected.txt: Added.
  • fast/css-grid-layout/grid-auto-columns-rows-auto-flow-resolution.html: Added.

This test covers the implicit rows / columns generated by the auto placement. We are failing
2 sub-tests due to a bug involving percentage grid items in grid rows.

Location:
trunk
Files:
6 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r146466 r146467  
     12013-03-21  Julien Chaffraix  <jchaffraix@webkit.org>
     2
     3        [CSS Grid Layout] Support default grid items sizing
     4        https://bugs.webkit.org/show_bug.cgi?id=103333
     5
     6        Reviewed by Tony Chang.
     7
     8        * fast/css-grid-layout/grid-auto-columns-rows-resolution-expected.txt: Added.
     9        * fast/css-grid-layout/grid-auto-columns-rows-resolution.html: Added.
     10        This test covers the simple implicit column / row case.
     11
     12        * fast/css-grid-layout/grid-auto-columns-rows-update-expected.txt: Added.
     13        * fast/css-grid-layout/grid-auto-columns-rows-update.html: Added.
     14        This test covers that modifying grid-auto-{rows|columns} updates the grid items' sizes.
     15
     16        * fast/css-grid-layout/grid-auto-columns-rows-auto-flow-resolution-expected.txt: Added.
     17        * fast/css-grid-layout/grid-auto-columns-rows-auto-flow-resolution.html: Added.
     18        This test covers the implicit rows / columns generated by the auto placement. We are failing
     19        2 sub-tests due to a bug involving percentage grid items in grid rows.
     20
    1212013-03-21  Ádám Kallai  <kadam@inf.u-szeged.hu>
    222
  • trunk/Source/WebCore/ChangeLog

    r146464 r146467  
     12013-03-21  Julien Chaffraix  <jchaffraix@webkit.org>
     2
     3        [CSS Grid Layout] Support default grid items sizing
     4        https://bugs.webkit.org/show_bug.cgi?id=103333
     5
     6        Reviewed by Tony Chang.
     7
     8        Tests: fast/css-grid-layout/grid-auto-columns-rows-auto-flow-resolution.html
     9               fast/css-grid-layout/grid-auto-columns-rows-resolution.html
     10               fast/css-grid-layout/grid-auto-columns-rows-update.html
     11
     12        * rendering/RenderGrid.cpp:
     13        (WebCore::RenderGrid::gridTrackSize):
     14        Core of the change: return the grid-auto-{rows|columns} instead of a pre-defined value.
     15
     16        (WebCore::RenderGrid::computedUsedBreadthOfGridTracks):
     17        Fixed a latent bug: we need to iterate over the internal grid representation instead of the
     18        style's rows / columns as the latter doesn't account for implicit rows / columns.
     19
    1202013-03-21  Adam Barth  <abarth@webkit.org>
    221
  • trunk/Source/WebCore/rendering/RenderGrid.cpp

    r146371 r146467  
    264264void RenderGrid::computedUsedBreadthOfGridTracks(TrackSizingDirection direction, Vector<GridTrack>& columnTracks, Vector<GridTrack>& rowTracks)
    265265{
    266     const Vector<GridTrackSize>& trackStyles = (direction == ForColumns) ? style()->gridColumns() : style()->gridRows();
    267266    LayoutUnit availableLogicalSpace = (direction == ForColumns) ? availableLogicalWidth() : availableLogicalHeight(IncludeMarginBorderPadding);
    268267    Vector<GridTrack>& tracks = (direction == ForColumns) ? columnTracks : rowTracks;
    269     for (size_t i = 0; i < trackStyles.size(); ++i) {
     268    for (size_t i = 0; i < tracks.size(); ++i) {
    270269        GridTrack& track = tracks[i];
    271         const Length& minTrackBreadth = trackStyles[i].minTrackBreadth();
    272         const Length& maxTrackBreadth = trackStyles[i].maxTrackBreadth();
     270        const GridTrackSize& trackSize = gridTrackSize(direction, i);
     271        const Length& minTrackBreadth = trackSize.minTrackBreadth();
     272        const Length& maxTrackBreadth = trackSize.maxTrackBreadth();
    273273
    274274        track.m_usedBreadth = computeUsedBreadthOfMinLength(direction, minTrackBreadth);
     
    324324{
    325325    const Vector<GridTrackSize>& trackStyles = (direction == ForColumns) ? style()->gridColumns() : style()->gridRows();
    326     if (i >= trackStyles.size()) {
    327         // FIXME: This should match the default grid sizing (https://webkit.org/b/103333)
    328         DEFINE_STATIC_LOCAL(GridTrackSize, defaultAutoSize, (Auto));
    329         return defaultAutoSize;
    330     }
     326    if (i >= trackStyles.size())
     327        return (direction == ForColumns) ? style()->gridAutoColumns() : style()->gridAutoRows();
     328
    331329    return trackStyles[i];
    332330}
Note: See TracChangeset for help on using the changeset viewer.