layout: respect image-rendering on border images (#38346)

Properly passes `image-rendering` down to border images.

Testing: Covered by WPT tests.

---------

Signed-off-by: lumiscosity <averyrudelphe@gmail.com>
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
This commit is contained in:
lumiscosity 2025-07-30 14:57:10 +02:00 committed by GitHub
parent c7c33f5f47
commit e5334a64c4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 4 additions and 11 deletions

View file

@ -42,8 +42,8 @@ use style_traits::{CSSPixel as StyloCSSPixel, DevicePixel as StyloDevicePixel};
use webrender_api::units::{DeviceIntSize, DevicePixel, LayoutPixel, LayoutRect, LayoutSize};
use webrender_api::{
self as wr, BorderDetails, BoxShadowClipMode, BuiltDisplayList, ClipChainId, ClipMode,
CommonItemProperties, ComplexClipRegion, ImageRendering, NinePatchBorder,
NinePatchBorderSource, PropertyBinding, SpatialId, SpatialTreeItemKey, units,
CommonItemProperties, ComplexClipRegion, NinePatchBorder, NinePatchBorderSource,
PropertyBinding, SpatialId, SpatialTreeItemKey, units,
};
use wr::units::LayoutVector2D;
@ -1501,7 +1501,8 @@ impl<'a> BuilderForBoxFragment<'a> {
width = size.width;
height = size.height;
NinePatchBorderSource::Image(key, ImageRendering::Auto)
let image_rendering = self.fragment.style.clone_image_rendering().to_webrender();
NinePatchBorderSource::Image(key, image_rendering)
},
Ok(ResolvedImage::Gradient(gradient)) => {
match gradient::build(&self.fragment.style, gradient, border_image_size, builder) {

View file

@ -1,2 +0,0 @@
[border-image-repeat-round-003.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[border-image-repeat-round-stretch-001.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[border-image-repeat-stretch-round-001.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[image-rendering-border-image.html]
expected: FAIL