diff --git a/components/layout/block.rs b/components/layout/block.rs index 351b0dba9d9..00759909063 100644 --- a/components/layout/block.rs +++ b/components/layout/block.rs @@ -1263,7 +1263,8 @@ impl BlockFlow { // TODO: Right now, this content block-size value includes the // margin because of erroneous block-size calculation in fragment. // Check this when that has been fixed. - let block_size_used_val = self.fragment.border_box.size.block; + let block_size_used_val = self.fragment.border_box.size.block - + self.fragment.border_padding.block_start_end(); solution = Some(BSizeConstraintSolution::solve_vertical_constraints_abs_replaced( block_size_used_val, margin_block_start, @@ -1305,6 +1306,7 @@ impl BlockFlow { } let block_size = solution.block_size + self.fragment.border_padding.block_start_end(); + self.fragment.border_box.size.block = block_size; self.base.position.size.block = block_size; diff --git a/tests/wpt/mozilla/meta/MANIFEST.json b/tests/wpt/mozilla/meta/MANIFEST.json index 116d3578ba0..f84e9ff6323 100644 --- a/tests/wpt/mozilla/meta/MANIFEST.json +++ b/tests/wpt/mozilla/meta/MANIFEST.json @@ -73,6 +73,18 @@ {} ] ], + "css/absolute_div_with_padding.html": [ + [ + "/_mozilla/css/absolute_div_with_padding.html", + [ + [ + "/_mozilla/css/absolute_div_with_padding_ref.html", + "==" + ] + ], + {} + ] + ], "css/absolute_hypothetical_float.html": [ [ "/_mozilla/css/absolute_hypothetical_float.html", @@ -109,6 +121,18 @@ {} ] ], + "css/absolute_img_with_padding.html": [ + [ + "/_mozilla/css/absolute_img_with_padding.html", + [ + [ + "/_mozilla/css/absolute_img_with_padding_ref.html", + "==" + ] + ], + {} + ] + ], "css/absolute_inline_containing_block_a.html": [ [ "/_mozilla/css/absolute_inline_containing_block_a.html", @@ -7339,6 +7363,11 @@ {} ] ], + "css/absolute_div_with_padding_ref.html": [ + [ + {} + ] + ], "css/absolute_hypothetical_float_ref.html": [ [ {} @@ -7354,6 +7383,11 @@ {} ] ], + "css/absolute_img_with_padding_ref.html": [ + [ + {} + ] + ], "css/absolute_inline_containing_block_ref.html": [ [ {} @@ -60016,6 +60050,14 @@ "e38f77f3a7691b11abeece839aba62ce9246ff6a", "support" ], + "css/absolute_div_with_padding.html": [ + "a3f85092cde2ff19120d95be8edb834a8db97b39", + "reftest" + ], + "css/absolute_div_with_padding_ref.html": [ + "794a23ea9ff6597273cad61ec9755df727d58f3f", + "support" + ], "css/absolute_hypothetical_float.html": [ "1abe08648b55df2390cb2b6561923aa576212fbf", "reftest" @@ -60040,6 +60082,14 @@ "400117a1d118ee05db150877aa81bb414f4e7200", "support" ], + "css/absolute_img_with_padding.html": [ + "ae552f695fabf59becc33a274e5b3e2f5ad2d92e", + "reftest" + ], + "css/absolute_img_with_padding_ref.html": [ + "3f949e99ab09c5f8ce352a7987330d99023d7f0d", + "support" + ], "css/absolute_inline_containing_block_a.html": [ "8174a236497815db250a3b11aeb322e0e9c7c74f", "reftest" diff --git a/tests/wpt/mozilla/tests/css/absolute_div_with_padding.html b/tests/wpt/mozilla/tests/css/absolute_div_with_padding.html new file mode 100644 index 00000000000..cddbbba8def --- /dev/null +++ b/tests/wpt/mozilla/tests/css/absolute_div_with_padding.html @@ -0,0 +1,24 @@ + + +