summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/layout/multi_column_fragmentainer_group.cc
diff options
context:
space:
mode:
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.cc16
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 =