diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/core/layout/multi_column_fragmentainer_group.cc')
-rw-r--r-- | chromium/third_party/blink/renderer/core/layout/multi_column_fragmentainer_group.cc | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/chromium/third_party/blink/renderer/core/layout/multi_column_fragmentainer_group.cc b/chromium/third_party/blink/renderer/core/layout/multi_column_fragmentainer_group.cc index aee79c33aeb..f808c669e5c 100644 --- a/chromium/third_party/blink/renderer/core/layout/multi_column_fragmentainer_group.cc +++ b/chromium/third_party/blink/renderer/core/layout/multi_column_fragmentainer_group.cc @@ -329,11 +329,25 @@ unsigned MultiColumnFragmentainerGroup::ActualColumnCount() const { void MultiColumnFragmentainerGroup::SetColumnBlockSizeFromNG( LayoutUnit block_size) { - DCHECK(!is_logical_height_known_ || logical_height_ == block_size); + // We clamp the fragmentainer block size from 0 to 1 for legacy write-back + // if there is content that overflows the zero-height fragmentainer. However, + // if the last fragmentainer contains no overflow, while previous + // fragmentainers do, the known height may be different than the |block_size| + // passed in. Don't override the stored height if this is the case. + DCHECK(!is_logical_height_known_ || logical_height_ == block_size || + block_size == LayoutUnit()); + if (is_logical_height_known_) + return; logical_height_ = block_size; is_logical_height_known_ = true; } +void MultiColumnFragmentainerGroup::ExtendColumnBlockSizeFromNG( + LayoutUnit block_size) { + DCHECK(is_logical_height_known_); + logical_height_ += block_size; +} + LayoutUnit MultiColumnFragmentainerGroup::HeightAdjustedForRowOffset( LayoutUnit height) const { LayoutUnit adjusted_height = |