diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/core/layout/ng/ng_fragmentation_utils.h')
-rw-r--r-- | chromium/third_party/blink/renderer/core/layout/ng/ng_fragmentation_utils.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/chromium/third_party/blink/renderer/core/layout/ng/ng_fragmentation_utils.h b/chromium/third_party/blink/renderer/core/layout/ng/ng_fragmentation_utils.h index c6db2ec0078..4810e58a4e8 100644 --- a/chromium/third_party/blink/renderer/core/layout/ng/ng_fragmentation_utils.h +++ b/chromium/third_party/blink/renderer/core/layout/ng/ng_fragmentation_utils.h @@ -5,6 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_NG_FRAGMENTATION_UTILS_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_NG_FRAGMENTATION_UTILS_H_ +#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/blink/renderer/core/layout/ng/geometry/ng_box_strut.h" #include "third_party/blink/renderer/core/layout/ng/inline/ng_inline_break_token.h" #include "third_party/blink/renderer/core/layout/ng/inline/ng_inline_item.h" @@ -212,6 +213,10 @@ NGBreakStatus FinishFragmentation(NGBlockNode node, LayoutUnit space_left, NGBoxFragmentBuilder*); +// Special rules apply for finishing fragmentation when building fragmentainers. +NGBreakStatus FinishFragmentationForFragmentainer(const NGConstraintSpace&, + NGBoxFragmentBuilder*); + // Insert a fragmentainer break before the child if necessary. In that case, the // previous in-flow position will be updated, we'll return |kBrokeBefore|. If we // don't break inside, we'll consider the appeal of doing so anyway (and store @@ -343,6 +348,26 @@ inline LayoutUnit AdjustedMarginAfterFinalChildFragment( return std::min(block_end_margin, space_left.ClampNegativeToZero()); } +// Note: This should only be used for a builder that represents a +// fragmentation context root. Returns the the break token of the +// previous fragmentainer to the child at |index|. +const NGBlockBreakToken* PreviousFragmentainerBreakToken( + const NGBoxFragmentBuilder& container_builder, + wtf_size_t index); + +// Return the break token that led to the creation of the fragment specified, or +// nullptr if this is the first fragment. Note that this operation is O(n) +// (number of fragments generated from the node), and should be avoided when +// possible. This function should no longer be necessary once everything has +// been properly converted to LayoutNG, and we have also gotten rid of the +// fragment stitching of composited objects (will be fixed by +// CompositeAfterPaint). +const NGBlockBreakToken* FindPreviousBreakToken(const NGPhysicalBoxFragment&); + +// Return the index of the fragmentainer preceding the first fragmentainer +// inside this fragment. Used by nested block fragmentation. +wtf_size_t PreviousInnerFragmentainerIndex(const NGPhysicalBoxFragment&); + } // namespace blink #endif // THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_NG_FRAGMENTATION_UTILS_H_ |