Changeset 178893 in webkit


Ignore:
Timestamp:
Jan 22, 2015 12:36:07 AM (9 years ago)
Author:
svillar@igalia.com
Message:

[CSS Grid Layout] Size tracks using a list of all items sorted by span
https://bugs.webkit.org/show_bug.cgi?id=140615

Reviewed by Andreas Kling.

Source/WebCore:

In r173620 we fixed
RenderGrid::resolveContentBasedTrackSizingFunctions() so that it
now collects all items spanning content-sized tracks and process
them one by one after sorting them by ascending span.

The problem is that it was incorrectly implemented, it has two
important bugs. First one is that the hash table that collects
items is regenerated after processing each track, so it's actually
doing nothing. Secondly we're only sorting the items on each
track, instead of all the items in the grid.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):

LayoutTests:

  • fast/css-grid-layout/grid-content-sized-columns-resolution-expected.txt:

Added tons of new test cases.

  • fast/css-grid-layout/grid-content-sized-columns-resolution.html: Ditto.
  • fast/css-grid-layout/grid-preferred-logical-widths.html:

Adjusted results.

Location:
trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r178887 r178893  
     12015-01-19  Sergio Villar Senin  <svillar@igalia.com>
     2
     3        [CSS Grid Layout] Size tracks using a list of all items sorted by span
     4        https://bugs.webkit.org/show_bug.cgi?id=140615
     5
     6        Reviewed by Andreas Kling.
     7
     8        * fast/css-grid-layout/grid-content-sized-columns-resolution-expected.txt:
     9        Added tons of new test cases.
     10        * fast/css-grid-layout/grid-content-sized-columns-resolution.html: Ditto.
     11        * fast/css-grid-layout/grid-preferred-logical-widths.html:
     12        Adjusted results.
     13
    1142015-01-21  Brent Fulgham  <bfulgham@apple.com>
    215
  • trunk/LayoutTests/fast/css-grid-layout/grid-content-sized-columns-resolution-expected.txt

    r178582 r178893  
    1111PASS window.getComputedStyle(gridMaxContentAndMinContentFixed, '').getPropertyValue('-webkit-grid-template-columns') is "70px 20px"
    1212PASS window.getComputedStyle(gridMaxContentAndMaxContentFixed, '').getPropertyValue('-webkit-grid-template-columns') is "55px 35px"
     13
     14Check that items are processed by ascending span to compute track breadths forbidding extra space distribution.
     15PASS window.getComputedStyle(gridMinContentFixedAndAutoUnsortedConstrained, '').getPropertyValue('-webkit-grid-template-columns') is "0px 40px"
     16PASS window.getComputedStyle(gridAutoAndAutoUnsortedConstrained, '').getPropertyValue('-webkit-grid-template-columns') is "5px 35px"
     17PASS window.getComputedStyle(gridMinContentAndMinContentFixedUnsortedConstrained, '').getPropertyValue('-webkit-grid-template-columns') is "0px 40px"
     18PASS window.getComputedStyle(gridMaxContentAndMinContentUnsortedConstrained, '').getPropertyValue('-webkit-grid-template-columns') is "0px 70px"
     19PASS window.getComputedStyle(gridFixedMinContentAndMaxContentUnsortedConstrained, '').getPropertyValue('-webkit-grid-template-columns') is "10px 70px"
     20PASS window.getComputedStyle(gridFixedMaxContentAndMinContentUnsortedConstrained, '').getPropertyValue('-webkit-grid-template-columns') is "10px 40px"
     21PASS window.getComputedStyle(gridMinContentAndMaxContentFixedUnsortedConstrained, '').getPropertyValue('-webkit-grid-template-columns') is "0px 90px"
     22PASS window.getComputedStyle(gridMaxContentFixedAndAutoUnsortedConstrained, '').getPropertyValue('-webkit-grid-template-columns') is "10px 40px"
     23PASS window.getComputedStyle(gridAutoMinContentUnsortedConstrained, '').getPropertyValue('-webkit-grid-template-columns') is "0px 60px"
     24PASS window.getComputedStyle(gridAutoMaxContentUnsortedConstrained, '').getPropertyValue('-webkit-grid-template-columns') is "0px 90px"
     25PASS window.getComputedStyle(gridMaxContentAndMinContentFixedUnsortedConstrained, '').getPropertyValue('-webkit-grid-template-columns') is "50px 40px"
     26PASS window.getComputedStyle(gridMaxContentAndMaxContentFixedUnsortedConstrained, '').getPropertyValue('-webkit-grid-template-columns') is "40px 70px"
     27
     28Check that items are processed by ascending span to compute track breadths allowing extra space distribution.
     29PASS window.getComputedStyle(gridMinContentFixedAndAutoUnsorted, '').getPropertyValue('-webkit-grid-template-columns') is "15px 90px"
     30PASS window.getComputedStyle(gridAutoAndAutoUnsorted, '').getPropertyValue('-webkit-grid-template-columns') is "30px 60px"
     31PASS window.getComputedStyle(gridMinContentAndMinContentFixedUnsorted, '').getPropertyValue('-webkit-grid-template-columns') is "10px 40px"
     32PASS window.getComputedStyle(gridMaxContentAndMinContentUnsorted, '').getPropertyValue('-webkit-grid-template-columns') is "0px 70px"
     33PASS window.getComputedStyle(gridFixedMinContentAndMaxContentUnsorted, '').getPropertyValue('-webkit-grid-template-columns') is "10px 70px"
     34PASS window.getComputedStyle(gridFixedMaxContentAndMinContentUnsorted, '').getPropertyValue('-webkit-grid-template-columns') is "50px 40px"
     35PASS window.getComputedStyle(gridMinContentAndMaxContentFixedUnsorted, '').getPropertyValue('-webkit-grid-template-columns') is "10px 90px"
     36PASS window.getComputedStyle(gridMaxContentFixedAndAutoUnsorted, '').getPropertyValue('-webkit-grid-template-columns') is "15px 70px"
     37PASS window.getComputedStyle(gridAutoMinContentUnsorted, '').getPropertyValue('-webkit-grid-template-columns') is "50px 60px"
     38PASS window.getComputedStyle(gridAutoMaxContentUnsorted, '').getPropertyValue('-webkit-grid-template-columns') is "0px 90px"
     39PASS window.getComputedStyle(gridMaxContentAndMinContentFixedUnsorted, '').getPropertyValue('-webkit-grid-template-columns') is "55px 40px"
     40PASS window.getComputedStyle(gridMaxContentAndMaxContentFixedUnsorted, '').getPropertyValue('-webkit-grid-template-columns') is "75px 70px"
    1341PASS window.getComputedStyle(gridMinContentFixedAndAutoAboveLimits, '').getPropertyValue('-webkit-grid-template-columns') is "15px 95px"
    1442PASS window.getComputedStyle(gridMaxContentFixedAndAutoAboveLimits, '').getPropertyValue('-webkit-grid-template-columns') is "65px 85px"
     
    3159XXXX XXXX
    3260XXXX XXXX
     61XXXX XXXX
     62XXXX XXXX
     63XXX
     64XXXX XXXX
     65XX XX XX
     66XXXX XXXX
     67XXX XXX
     68XXXXXXX
     69XXXXX XX
     70XXX
     71XXXXX
     72XXXX XXXX
     73X X
     74XXXX
     75XXXX XXXX
     76XXXX XXXX
     77XX XX
     78XXXX
     79XXX XXX
     80XX XX XX XX
     81XXXXXX XXXXXX
     82XXXX XXXX
     83XXX XXX
     84XXXXX
     85XXX XXX
     86XXXX XXXX
     87XXXX XXXX
     88XX
     89XXXX XXXX
     90XX XX XX XX
     91XXXXXXX
     92XXXX XXXX
     93XXXX XXXX
     94XXXX XXXX
     95XXX
     96XXXX XXXX
     97XX XX XX XX
     98XXXX XXXX
     99XXX XXX
     100XXXXXXX
     101XXXXX XX
     102XXX
     103XXXXX
     104XXXX XXXX
     105X X
     106XXXX
     107XXXX XXXX
     108XXXX XXXX
     109XX XX
     110XXXX
     111XXX XXX
     112XX XX XX XX
     113XXXXXX XXXXXX
     114XXXX XXXX
     115XXX XXX
     116XXXXX
     117XXX XXX
     118XXXX XXXX
     119XXXX XXXX
     120XX
     121XXXX XXXX
     122XX XX XX XX
     123XXXXXXX
     124XXXX XXXX
    33125XXXXXXXXXXX
    34126XXXX XXXX
  • trunk/LayoutTests/fast/css-grid-layout/grid-content-sized-columns-resolution.html

    r178582 r178893  
    102102<div class="grid gridMaxContentAndMaxContentFixed" id="gridMaxContentAndMaxContentFixed">
    103103    <div class="firstRowBothColumn">XXXX XXXX</div>
     104</div>
     105
     106<!-- Check that items are processed by ascending span instead of going track by track forbidding extra space distribution. -->
     107<div class="constrainedContainer">
     108    <div class="grid gridMinContentFixedAndAuto" id="gridMinContentFixedAndAutoUnsortedConstrained">
     109        <div class="firstRowBothColumn">XXXX XXXX</div>
     110        <div class="firstRowSecondColumn">XXXX XXXX</div>
     111    </div>
     112</div>
     113
     114<div class="constrainedContainer">
     115    <div class="grid gridAutoAndAuto" id="gridAutoAndAutoUnsortedConstrained">
     116        <div class="firstRowBothColumn">XXXX XXXX</div>
     117        <div class="firstRowSecondColumn">XXX</div>
     118    </div>
     119</div>
     120
     121<div class="constrainedContainer">
     122    <div class="grid gridMinContentAndMinContentFixed" id="gridMinContentAndMinContentFixedUnsortedConstrained">
     123        <div class="firstRowBothColumn">XXXX XXXX</div>
     124        <div class="firstRowBothColumn">XX XX XX</div>
     125        <div class="firstRowSecondColumn">XXXX XXXX</div>
     126    </div>
     127</div>
     128
     129<div class="constrainedContainer">
     130    <div class="grid gridMaxContentAndMinContent" id="gridMaxContentAndMinContentUnsortedConstrained">
     131        <div class="firstRowBothColumn">XXX XXX</div>
     132        <div class="firstRowSecondColumn">XXXXXXX</div>
     133    </div>
     134</div>
     135
     136<div class="constrainedContainer">
     137    <div class="grid gridFixedMinContentAndMaxContent" id="gridFixedMinContentAndMaxContentUnsortedConstrained">
     138        <div class="firstRowBothColumn">XXXXX XX</div>
     139        <div class="firstRowSecondColumn">XXX</div>
     140        <div class="firstRowSecondColumn">XXXXX</div>
     141    </div>
     142</div>
     143
     144<div class="constrainedContainer">
     145    <div class="grid gridFixedMaxContentAndMinContent" id="gridFixedMaxContentAndMinContentUnsortedConstrained">
     146        <div class="firstRowBothColumn">XXXX XXXX</div>
     147        <div class="firstRowBothColumn">X X</div>
     148        <div class="firstRowSecondColumn">XXXX</div>
     149    </div>
     150</div>
     151
     152<div class="constrainedContainer">
     153    <div class="grid gridMinContentAndMaxContentFixed" id="gridMinContentAndMaxContentFixedUnsortedConstrained">
     154        <div class="firstRowBothColumn">XXXX XXXX</div>
     155        <div class="firstRowSecondColumn">XXXX XXXX</div>
     156    </div>
     157</div>
     158
     159<div class="constrainedContainer">
     160    <div class="grid gridMaxContentFixedAndAuto" id="gridMaxContentFixedAndAutoUnsortedConstrained">
     161        <div class="firstRowBothColumn">XX XX</div>
     162        <div class="firstRowSecondColumn">XXXX</div>
     163        <div class="firstRowSecondColumn">XXX XXX</div>
     164    </div>
     165</div>
     166
     167<div class="constrainedContainer">
     168    <div class="grid gridAutoMinContent" id="gridAutoMinContentUnsortedConstrained">
     169        <div class="firstRowBothColumn">XX XX XX XX</div>
     170        <div class="firstRowSecondColumn">XXXXXX XXXXXX</div>
     171    </div>
     172</div>
     173
     174<div class="constrainedContainer">
     175    <div class="grid gridAutoMaxContent" id="gridAutoMaxContentUnsortedConstrained">
     176        <div class="firstRowBothColumn">XXXX XXXX</div>
     177        <div class="firstRowBothColumn">XXX XXX</div>
     178        <div class="firstRowSecondColumn">XXXXX</div>
     179    </div>
     180</div>
     181
     182<div class="constrainedContainer">
     183    <div class="grid gridMaxContentAndMinContentFixed" id="gridMaxContentAndMinContentFixedUnsortedConstrained">
     184        <div class="firstRowBothColumn">XXX XXX</div>
     185        <div class="firstRowBothColumn">XXXX XXXX</div>
     186        <div class="firstRowSecondColumn">XXXX XXXX</div>
     187        <div class="firstRowSecondColumn">XX</div>
     188    </div>
     189</div>
     190
     191<div class="constrainedContainer">
     192    <div class="grid gridMaxContentAndMaxContentFixed" id="gridMaxContentAndMaxContentFixedUnsortedConstrained">
     193        <div class="firstRowBothColumn">XXXX XXXX</div>
     194        <div class="firstRowBothColumn">XX XX XX XX</div>
     195        <div class="firstRowSecondColumn">XXXXXXX</div>
     196    </div>
     197</div>
     198
     199<!-- Check that items are processed by ascending span instead of going track by track allowing extra space distribution. -->
     200<div class="grid gridMinContentFixedAndAuto" id="gridMinContentFixedAndAutoUnsorted">
     201    <div class="firstRowBothColumn">XXXX XXXX</div>
     202    <div class="firstRowSecondColumn">XXXX XXXX</div>
     203</div>
     204
     205<div class="grid gridAutoAndAuto" id="gridAutoAndAutoUnsorted">
     206    <div class="firstRowBothColumn">XXXX XXXX</div>
     207    <div class="firstRowSecondColumn">XXX</div>
     208</div>
     209
     210<div class="grid gridMinContentAndMinContentFixed" id="gridMinContentAndMinContentFixedUnsorted">
     211    <div class="firstRowBothColumn">XXXX XXXX</div>
     212    <div class="firstRowBothColumn">XX XX XX XX</div>
     213    <div class="firstRowSecondColumn">XXXX XXXX</div>
     214</div>
     215
     216<div class="grid gridMaxContentAndMinContent" id="gridMaxContentAndMinContentUnsorted">
     217    <div class="firstRowBothColumn">XXX XXX</div>
     218    <div class="firstRowSecondColumn">XXXXXXX</div>
     219</div>
     220
     221<div class="grid gridFixedMinContentAndMaxContent" id="gridFixedMinContentAndMaxContentUnsorted">
     222    <div class="firstRowBothColumn">XXXXX XX</div>
     223    <div class="firstRowSecondColumn">XXX</div>
     224    <div class="firstRowSecondColumn">XXXXX</div>
     225</div>
     226
     227<div class="grid gridFixedMaxContentAndMinContent" id="gridFixedMaxContentAndMinContentUnsorted">
     228    <div class="firstRowBothColumn">XXXX XXXX</div>
     229    <div class="firstRowBothColumn">X X</div>
     230    <div class="firstRowSecondColumn">XXXX</div>
     231</div>
     232
     233<div class="grid gridMinContentAndMaxContentFixed" id="gridMinContentAndMaxContentFixedUnsorted">
     234    <div class="firstRowBothColumn">XXXX XXXX</div>
     235    <div class="firstRowSecondColumn">XXXX XXXX</div>
     236</div>
     237
     238<div class="grid gridMaxContentFixedAndAuto" id="gridMaxContentFixedAndAutoUnsorted">
     239    <div class="firstRowBothColumn">XX XX</div>
     240    <div class="firstRowSecondColumn">XXXX</div>
     241    <div class="firstRowSecondColumn">XXX XXX</div>
     242</div>
     243
     244<div class="grid gridAutoMinContent" id="gridAutoMinContentUnsorted">
     245    <div class="firstRowBothColumn">XX XX XX XX</div>
     246    <div class="firstRowSecondColumn">XXXXXX XXXXXX</div>
     247</div>
     248
     249<div class="grid gridAutoMaxContent" id="gridAutoMaxContentUnsorted">
     250    <div class="firstRowBothColumn">XXXX XXXX</div>
     251    <div class="firstRowBothColumn">XXX XXX</div>
     252    <div class="firstRowSecondColumn">XXXXX</div>
     253</div>
     254
     255<div class="grid gridMaxContentAndMinContentFixed" id="gridMaxContentAndMinContentFixedUnsorted">
     256    <div class="firstRowBothColumn">XXX XXX</div>
     257    <div class="firstRowBothColumn">XXXX XXXX</div>
     258    <div class="firstRowSecondColumn">XXXX XXXX</div>
     259    <div class="firstRowSecondColumn">XX</div>
     260</div>
     261
     262<div class="grid gridMaxContentAndMaxContentFixed" id="gridMaxContentAndMaxContentFixedUnsorted">
     263    <div class="firstRowBothColumn">XXXX XXXX</div>
     264    <div class="firstRowBothColumn">XX XX XX XX</div>
     265    <div class="firstRowSecondColumn">XXXXXXX</div>
    104266</div>
    105267
     
    152314testGridColumnsValues("gridMaxContentAndMaxContentFixed", "55px 35px");
    153315
     316debug("");
     317debug("Check that items are processed by ascending span to compute track breadths forbidding extra space distribution.");
     318testGridColumnsValues("gridMinContentFixedAndAutoUnsortedConstrained", "0px 40px");
     319testGridColumnsValues("gridAutoAndAutoUnsortedConstrained", "5px 35px");
     320testGridColumnsValues("gridMinContentAndMinContentFixedUnsortedConstrained", "0px 40px");
     321testGridColumnsValues("gridMaxContentAndMinContentUnsortedConstrained", "0px 70px");
     322testGridColumnsValues("gridFixedMinContentAndMaxContentUnsortedConstrained", "10px 70px");
     323testGridColumnsValues("gridFixedMaxContentAndMinContentUnsortedConstrained", "10px 40px");
     324testGridColumnsValues("gridMinContentAndMaxContentFixedUnsortedConstrained", "0px 90px");
     325testGridColumnsValues("gridMaxContentFixedAndAutoUnsortedConstrained", "10px 40px");
     326testGridColumnsValues("gridAutoMinContentUnsortedConstrained", "0px 60px");
     327testGridColumnsValues("gridAutoMaxContentUnsortedConstrained", "0px 90px");
     328testGridColumnsValues("gridMaxContentAndMinContentFixedUnsortedConstrained", "50px 40px");
     329testGridColumnsValues("gridMaxContentAndMaxContentFixedUnsortedConstrained", "40px 70px");
     330
     331debug("");
     332debug("Check that items are processed by ascending span to compute track breadths allowing extra space distribution.");
     333testGridColumnsValues("gridMinContentFixedAndAutoUnsorted", "15px 90px");
     334testGridColumnsValues("gridAutoAndAutoUnsorted", "30px 60px");
     335testGridColumnsValues("gridMinContentAndMinContentFixedUnsorted", "10px 40px");
     336testGridColumnsValues("gridMaxContentAndMinContentUnsorted", "0px 70px");
     337testGridColumnsValues("gridFixedMinContentAndMaxContentUnsorted", "10px 70px");
     338testGridColumnsValues("gridFixedMaxContentAndMinContentUnsorted", "50px 40px");
     339testGridColumnsValues("gridMinContentAndMaxContentFixedUnsorted", "10px 90px");
     340testGridColumnsValues("gridMaxContentFixedAndAutoUnsorted", "15px 70px");
     341testGridColumnsValues("gridAutoMinContentUnsorted", "50px 60px");
     342testGridColumnsValues("gridAutoMaxContentUnsorted", "0px 90px");
     343testGridColumnsValues("gridMaxContentAndMinContentFixedUnsorted", "55px 40px");
     344testGridColumnsValues("gridMaxContentAndMaxContentFixedUnsorted", "75px 70px");
     345
    154346testGridColumnsValues("gridMinContentFixedAndAutoAboveLimits", "15px 95px");
    155347testGridColumnsValues("gridMaxContentFixedAndAutoAboveLimits", "65px 85px");
  • trunk/LayoutTests/fast/css-grid-layout/grid-preferred-logical-widths.html

    r168416 r178893  
    128128    <div class="firstRowBothColumn">XX XX XX</div>
    129129</div>
    130 <div class="grid gridAutoContent max-content" data-expected-height="10" data-expected-width="120">
     130<div class="grid gridAutoContent max-content" data-expected-height="10" data-expected-width="80">
    131131    <div class="firstRowBothColumn">XX XX XX</div>
    132132    <div class="firstRowSecondColumn">XX XX XX</div>
  • trunk/Source/WebCore/ChangeLog

    r178874 r178893  
     12015-01-19  Sergio Villar Senin  <svillar@igalia.com>
     2
     3        [CSS Grid Layout] Size tracks using a list of all items sorted by span
     4        https://bugs.webkit.org/show_bug.cgi?id=140615
     5
     6        Reviewed by Andreas Kling.
     7
     8        In r173620 we fixed
     9        RenderGrid::resolveContentBasedTrackSizingFunctions() so that it
     10        now collects all items spanning content-sized tracks and process
     11        them one by one after sorting them by ascending span.
     12
     13        The problem is that it was incorrectly implemented, it has two
     14        important bugs. First one is that the hash table that collects
     15        items is regenerated after processing each track, so it's actually
     16        doing nothing. Secondly we're only sorting the items on each
     17        track, instead of all the items in the grid.
     18
     19        * rendering/RenderGrid.cpp:
     20        (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
     21
    1222015-01-21  Daniel Bates  <dabates@apple.com>
    223
  • trunk/Source/WebCore/rendering/RenderGrid.cpp

    r178701 r178893  
    184184    Vector<GridTrack*> filteredTracks;
    185185    Vector<unsigned> growAboveMaxBreadthTrackIndexes;
     186    Vector<GridItemWithSpan> itemsSortedByIncreasingSpan;
    186187};
    187188
     
    562563{
    563564    // FIXME: Split the grid tracks into groups that doesn't overlap a <flex> grid track.
    564 
     565    sizingData.itemsSortedByIncreasingSpan.shrink(0);
     566    HashSet<RenderBox*> itemsSet;
    565567    for (auto trackIndex : sizingData.contentSizedTracksIndex) {
    566568        GridIterator iterator(m_grid, direction, trackIndex);
    567         HashSet<RenderBox*> itemsSet;
    568         Vector<GridItemWithSpan> itemsSortedByIncreasingSpan;
    569569
    570570        while (RenderBox* gridItem = iterator.nextGridItem()) {
    571571            if (itemsSet.add(gridItem).isNewEntry)
    572                 itemsSortedByIncreasingSpan.append(GridItemWithSpan(*gridItem, cachedGridCoordinate(*gridItem), direction));
    573         }
    574         std::stable_sort(itemsSortedByIncreasingSpan.begin(), itemsSortedByIncreasingSpan.end());
    575 
    576         for (auto& itemWithSpan : itemsSortedByIncreasingSpan) {
    577             resolveContentBasedTrackSizingFunctionsForItems(direction, sizingData, itemWithSpan, &GridTrackSize::hasMinOrMaxContentMinTrackBreadth, &RenderGrid::minContentForChild, &GridTrack::usedBreadth, &GridTrack::growUsedBreadth, &GridTrackSize::hasMinContentMinTrackBreadthAndMinOrMaxContentMaxTrackBreadth);
    578             resolveContentBasedTrackSizingFunctionsForItems(direction, sizingData, itemWithSpan, &GridTrackSize::hasMaxContentMinTrackBreadth, &RenderGrid::maxContentForChild, &GridTrack::usedBreadth, &GridTrack::growUsedBreadth, &GridTrackSize::hasMaxContentMinTrackBreadthAndMaxContentMaxTrackBreadth);
    579             resolveContentBasedTrackSizingFunctionsForItems(direction, sizingData, itemWithSpan, &GridTrackSize::hasMinOrMaxContentMaxTrackBreadth, &RenderGrid::minContentForChild, &GridTrack::maxBreadthIfNotInfinite, &GridTrack::growMaxBreadth);
    580             resolveContentBasedTrackSizingFunctionsForItems(direction, sizingData, itemWithSpan, &GridTrackSize::hasMaxContentMaxTrackBreadth, &RenderGrid::maxContentForChild, &GridTrack::maxBreadthIfNotInfinite, &GridTrack::growMaxBreadth);
    581         }
    582 
     572                sizingData.itemsSortedByIncreasingSpan.append(GridItemWithSpan(*gridItem, cachedGridCoordinate(*gridItem), direction));
     573        }
     574    }
     575    std::sort(sizingData.itemsSortedByIncreasingSpan.begin(), sizingData.itemsSortedByIncreasingSpan.end());
     576
     577    for (auto& itemWithSpan : sizingData.itemsSortedByIncreasingSpan) {
     578        resolveContentBasedTrackSizingFunctionsForItems(direction, sizingData, itemWithSpan, &GridTrackSize::hasMinOrMaxContentMinTrackBreadth, &RenderGrid::minContentForChild, &GridTrack::usedBreadth, &GridTrack::growUsedBreadth, &GridTrackSize::hasMinContentMinTrackBreadthAndMinOrMaxContentMaxTrackBreadth);
     579        resolveContentBasedTrackSizingFunctionsForItems(direction, sizingData, itemWithSpan, &GridTrackSize::hasMaxContentMinTrackBreadth, &RenderGrid::maxContentForChild, &GridTrack::usedBreadth, &GridTrack::growUsedBreadth, &GridTrackSize::hasMaxContentMinTrackBreadthAndMaxContentMaxTrackBreadth);
     580        resolveContentBasedTrackSizingFunctionsForItems(direction, sizingData, itemWithSpan, &GridTrackSize::hasMinOrMaxContentMaxTrackBreadth, &RenderGrid::minContentForChild, &GridTrack::maxBreadthIfNotInfinite, &GridTrack::growMaxBreadth);
     581        resolveContentBasedTrackSizingFunctionsForItems(direction, sizingData, itemWithSpan, &GridTrackSize::hasMaxContentMaxTrackBreadth, &RenderGrid::maxContentForChild, &GridTrack::maxBreadthIfNotInfinite, &GridTrack::growMaxBreadth);
     582    }
     583
     584    for (auto trackIndex : sizingData.contentSizedTracksIndex) {
    583585        GridTrack& track = (direction == ForColumns) ? sizingData.columnTracks[trackIndex] : sizingData.rowTracks[trackIndex];
    584586        if (track.m_maxBreadth == infinity)
Note: See TracChangeset for help on using the changeset viewer.