From 859f002bf2efa64a97c14b512307f14978be6357 Mon Sep 17 00:00:00 2001 From: Pyfisch Date: Fri, 5 Jan 2018 10:45:26 +0100 Subject: [PATCH] Correctly place images with background-position: center Add a regression ref test. See also #19680. --- components/layout/display_list_builder.rs | 2 +- tests/wpt/metadata/MANIFEST.json | 25 +++++++++++++++++++ .../background-image-centered-ref.html | 16 ++++++++++++ .../background-image-centered.html | 18 +++++++++++++ 4 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 tests/wpt/web-platform-tests/css/css-backgrounds/background-image-centered-ref.html create mode 100644 tests/wpt/web-platform-tests/css/css-backgrounds/background-image-centered.html diff --git a/components/layout/display_list_builder.rs b/components/layout/display_list_builder.rs index e544567250c9..d5bb6a903c8f 100644 --- a/components/layout/display_list_builder.rs +++ b/components/layout/display_list_builder.rs @@ -1581,7 +1581,7 @@ impl FragmentDisplayListBuilding for Fragment { let mut tile_size = compute_background_image_size(bg_size, bounds.size, intrinsic_size); let mut tile_spacing = Size2D::zero(); - let own_position = bounds.size - intrinsic_size.unwrap_or(Size2D::zero()); + let own_position = bounds.size - tile_size; let pos_x = bg_position_x.to_used_value(own_position.width); let pos_y = bg_position_y.to_used_value(own_position.height); tile_image_axis( diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index a1f61f548ea3..8470db373c3b 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -96597,6 +96597,18 @@ {} ] ], + "css/css-backgrounds/background-image-centered.html": [ + [ + "/css/css-backgrounds/background-image-centered.html", + [ + [ + "/css/css-backgrounds/background-image-centered-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-backgrounds/background-image-first-letter.html": [ [ "/css/css-backgrounds/background-image-first-letter.html", @@ -228200,6 +228212,11 @@ {} ] ], + "css/css-backgrounds/background-image-centered-ref.html": [ + [ + {} + ] + ], "css/css-backgrounds/background-origin/list.txt": [ [ {} @@ -463909,6 +463926,14 @@ "b0231f487c5d467ac707eb91dcdd561462a54ca1", "reftest" ], + "css/css-backgrounds/background-image-centered-ref.html": [ + "655c4a1f457630f0788d4d4eae465d757b26c6df", + "support" + ], + "css/css-backgrounds/background-image-centered.html": [ + "dfb5aed73f04867336a353a53698ba851b2a1da8", + "reftest" + ], "css/css-backgrounds/background-image-first-letter.html": [ "7e296a53a2abebcd5fcee2431b182efe6f148c64", "reftest" diff --git a/tests/wpt/web-platform-tests/css/css-backgrounds/background-image-centered-ref.html b/tests/wpt/web-platform-tests/css/css-backgrounds/background-image-centered-ref.html new file mode 100644 index 000000000000..f52cd963ad25 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-backgrounds/background-image-centered-ref.html @@ -0,0 +1,16 @@ + + +Centered Background Gradient + + +
+ diff --git a/tests/wpt/web-platform-tests/css/css-backgrounds/background-image-centered.html b/tests/wpt/web-platform-tests/css/css-backgrounds/background-image-centered.html new file mode 100644 index 000000000000..7051aa359c8c --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-backgrounds/background-image-centered.html @@ -0,0 +1,18 @@ + + +Centered Background Gradient + + + + +
+