| Index: Source/core/layout/LayoutGrid.h
|
| diff --git a/Source/core/layout/LayoutGrid.h b/Source/core/layout/LayoutGrid.h
|
| index e26f163760f510b3d58ffb310747f1ac82081d33..fed06cbfa15926471d83c7bdbecd0f077e3fc581 100644
|
| --- a/Source/core/layout/LayoutGrid.h
|
| +++ b/Source/core/layout/LayoutGrid.h
|
| @@ -37,6 +37,14 @@ struct GridSpan;
|
| class GridTrack;
|
| class GridItemWithSpan;
|
|
|
| +enum TrackSizeComputationPhase {
|
| + ResolveIntrinsicMinimums,
|
| + ResolveMaxContentMinimums,
|
| + ResolveIntrinsicMaximums,
|
| + ResolveMaxContentMaximums,
|
| + MaximizeTracks,
|
| +};
|
| +
|
| class LayoutGrid final : public LayoutBlock {
|
| public:
|
| LayoutGrid(Element*);
|
| @@ -99,13 +107,11 @@ private:
|
| void offsetAndBreadthForPositionedChild(const LayoutBox&, GridTrackSizingDirection, bool startIsAuto, bool endIsAuto, LayoutUnit& offset, LayoutUnit& breadth);
|
| void populateGridPositions(const GridSizingData&);
|
|
|
| - typedef LayoutUnit (LayoutGrid::* SizingFunction)(LayoutBox&, GridTrackSizingDirection, Vector<GridTrack>&);
|
| - typedef const LayoutUnit& (GridTrack::* AccumulatorGetter)() const;
|
| - typedef bool (GridTrackSize::* FilterFunction)() const;
|
| typedef struct GridItemsSpanGroupRange GridItemsSpanGroupRange;
|
| + LayoutUnit currentItemSizeForTrackSizeComputationPhase(TrackSizeComputationPhase, LayoutBox&, GridTrackSizingDirection, Vector<GridTrack>& columnTracks);
|
| void resolveContentBasedTrackSizingFunctionsForNonSpanningItems(GridTrackSizingDirection, const GridCoordinate&, LayoutBox& gridItem, GridTrack&, Vector<GridTrack>& columnTracks);
|
| - void resolveContentBasedTrackSizingFunctionsForItems(GridTrackSizingDirection, GridSizingData&, const GridItemsSpanGroupRange&, FilterFunction, SizingFunction, AccumulatorGetter, AccumulatorGrowFunction, FilterFunction growAboveMaxBreadthFilterFunction = nullptr);
|
| - void distributeSpaceToTracks(Vector<GridTrack*>&, const Vector<GridTrack*>* growBeyondGrowthLimitsTracks, AccumulatorGetter, GridSizingData&, LayoutUnit& availableLogicalSpace);
|
| + template <TrackSizeComputationPhase> void resolveContentBasedTrackSizingFunctionsForItems(GridTrackSizingDirection, GridSizingData&, const GridItemsSpanGroupRange&);
|
| + template <TrackSizeComputationPhase> void distributeSpaceToTracks(Vector<GridTrack*>&, const Vector<GridTrack*>* growBeyondGrowthLimitsTracks, GridSizingData&, LayoutUnit& availableLogicalSpace);
|
|
|
| double computeNormalizedFractionBreadth(Vector<GridTrack>&, const GridSpan& tracksSpan, GridTrackSizingDirection, LayoutUnit availableLogicalSpace) const;
|
|
|
|
|