diff --git a/src/components/layout/block.rs b/src/components/layout/block.rs index e72515088c2..50dfd7e3a3e 100644 --- a/src/components/layout/block.rs +++ b/src/components/layout/block.rs @@ -1574,10 +1574,11 @@ impl Flow for BlockFlow { } fn assign_block_size<'a>(&mut self, ctx: &'a LayoutContext<'a>) { - // Assign block-size for fragment if it is an image fragment. - self.fragment.assign_replaced_block_size_if_necessary(); - if self.is_float() { + if self.is_replaced_content() { + // Assign block-size for fragment if it is an image fragment. + self.fragment.assign_replaced_block_size_if_necessary(); + } else if self.is_float() { debug!("assign_block_size_float: assigning block_size for float"); self.assign_block_size_float(ctx); } else { diff --git a/src/test/ref/basic.list b/src/test/ref/basic.list index d40f1b1456c..3a36b86aa4f 100644 --- a/src/test/ref/basic.list +++ b/src/test/ref/basic.list @@ -91,3 +91,5 @@ flaky_cpu == linebreak_simple_a.html linebreak_simple_b.html == inline_whitespace_b.html inline_whitespace_ref.html == inline_whitespace_a.html inline_whitespace_ref.html == line_height_a.html line_height_ref.html +== block_replaced_content_a.html block_replaced_content_ref.html +== block_replaced_content_b.html block_replaced_content_ref.html diff --git a/src/test/ref/block_replaced_content_a.html b/src/test/ref/block_replaced_content_a.html new file mode 100644 index 00000000000..24dd273c908 --- /dev/null +++ b/src/test/ref/block_replaced_content_a.html @@ -0,0 +1,18 @@ + + + + + + + + + diff --git a/src/test/ref/block_replaced_content_b.html b/src/test/ref/block_replaced_content_b.html new file mode 100644 index 00000000000..b021434ba20 --- /dev/null +++ b/src/test/ref/block_replaced_content_b.html @@ -0,0 +1,18 @@ + + + + + + + + + diff --git a/src/test/ref/block_replaced_content_ref.html b/src/test/ref/block_replaced_content_ref.html new file mode 100644 index 00000000000..4d48d763eb7 --- /dev/null +++ b/src/test/ref/block_replaced_content_ref.html @@ -0,0 +1,15 @@ + + + + + + + + +