| Index: third_party/WebKit/Source/core/layout/LayoutGrid.h
|
| diff --git a/third_party/WebKit/Source/core/layout/LayoutGrid.h b/third_party/WebKit/Source/core/layout/LayoutGrid.h
|
| index d491a58eea490dda7508fbf8a25957f1c3546162..015f1a463e4986c9133aff89754a2998f6f24a1f 100644
|
| --- a/third_party/WebKit/Source/core/layout/LayoutGrid.h
|
| +++ b/third_party/WebKit/Source/core/layout/LayoutGrid.h
|
| @@ -26,6 +26,7 @@
|
| #ifndef LayoutGrid_h
|
| #define LayoutGrid_h
|
|
|
| +#include "core/layout/BaselineAlignment.h"
|
| #include "core/layout/LayoutBlock.h"
|
| #include "core/layout/OrderIterator.h"
|
| #include "core/style/GridPositionsResolver.h"
|
| @@ -47,6 +48,7 @@ enum TrackSizeComputationPhase {
|
| MaximizeTracks,
|
| };
|
| enum GridAxisPosition { GridAxisStart, GridAxisEnd, GridAxisCenter };
|
| +enum GridAxis { GridRowAxis, GridColumnAxis };
|
|
|
| class LayoutGrid final : public LayoutBlock {
|
| public:
|
| @@ -318,7 +320,35 @@ class LayoutGrid final : public LayoutBlock {
|
| LinePositionMode = PositionOnContainingLine) const override;
|
| int firstLineBoxBaseline() const override;
|
| int inlineBlockBaseline(LineDirectionMode) const override;
|
| - bool isInlineBaselineAlignedChild(const LayoutBox* child) const;
|
| +
|
| + bool isHorizontalGridAxis(GridAxis) const;
|
| + bool isParallelToBlockAxisForChild(const LayoutBox&, GridAxis) const;
|
| + bool isDescentBaselineForChild(const LayoutBox&, GridAxis) const;
|
| + bool isBaselineAlignmentForChild(const LayoutBox&,
|
| + GridAxis = GridColumnAxis) const;
|
| + const BaselineGroup& getBaselineGroupForChild(const LayoutBox&,
|
| + const GridSizingData&,
|
| + GridAxis) const;
|
| +
|
| + LayoutUnit marginOverForChild(const LayoutBox&, GridAxis) const;
|
| + LayoutUnit logicalAscentForChild(const LayoutBox&, GridAxis) const;
|
| + LayoutUnit ascentForChild(const LayoutBox&, GridAxis) const;
|
| + LayoutUnit descentForChild(const LayoutBox&,
|
| + LayoutUnit ascent,
|
| + GridAxis) const;
|
| +
|
| + bool isBaselineContextComputed(GridAxis) const;
|
| + bool baselineMayAffectIntrinsicWidth() const;
|
| + bool baselineMayAffectIntrinsicHeight() const;
|
| + void computeBaselineAlignmentContext(GridSizingData&);
|
| + void updateBaselineAlignmentContextIfNeeded(LayoutBox&,
|
| + GridSizingData&,
|
| + GridAxis);
|
| +
|
| + LayoutUnit columnAxisBaselineOffsetForChild(const LayoutBox&,
|
| + const GridSizingData&) const;
|
| + LayoutUnit rowAxisBaselineOffsetForChild(const LayoutBox&,
|
| + const GridSizingData&) const;
|
|
|
| #if ENABLE(ASSERT)
|
| bool tracksAreWiderThanMinTrackBreadth(GridTrackSizingDirection,
|
| @@ -347,6 +377,15 @@ class LayoutGrid final : public LayoutBlock {
|
|
|
| size_t numTracks(GridTrackSizingDirection, const Grid&) const;
|
|
|
| + typedef HashMap<unsigned,
|
| + std::unique_ptr<BaselineContext>,
|
| + DefaultHash<unsigned>::Hash,
|
| + WTF::UnsignedWithZeroKeyHashTraits<unsigned>>
|
| + BaselineContextsMap;
|
| +
|
| + BaselineContextsMap m_rowAxisAlignmentContext;
|
| + BaselineContextsMap m_colAxisAlignmentContext;
|
| +
|
| // TODO(svillar): move into this class once GridIterator is added.
|
| typedef Vector<Vector<GridCell>> GridAsMatrix;
|
| class Grid final {
|
|
|