Further changes required by Servo

This commit is contained in:
Oriol Brufau 2023-05-16 09:40:29 +02:00
parent 4cee8cf937
commit 108c50c6df
3 changed files with 16 additions and 4 deletions

View file

@ -272,8 +272,8 @@ impl<'a, 'b> ResolveGeneratedContentFragmentMutator<'a, 'b> {
self.traversal.quote -= 1 self.traversal.quote -= 1
} }
}, },
GeneratedContentInfo::ContentItem(ContentItem::Url(..)) => { GeneratedContentInfo::ContentItem(ContentItem::Image(..)) => {
unreachable!("Servo doesn't parse content: url(..) yet") unreachable!("Servo doesn't parse content: url(..) nor image-set(..) yet")
}, },
} }
}; };

View file

@ -354,9 +354,9 @@ where
attr_val.map_or("".to_string(), |s| s.to_string()), attr_val.map_or("".to_string(), |s| s.to_string()),
)); ));
}, },
ContentItem::Url(image_url) => { ContentItem::Image(image) => {
if let Some(replaced_content) = if let Some(replaced_content) =
ReplacedContent::from_image_url(element, context, image_url) ReplacedContent::from_image(element, context, image)
{ {
vec.push(PseudoElementContentItem::Replaced(replaced_content)); vec.push(PseudoElementContentItem::Replaced(replaced_content));
} }

View file

@ -21,6 +21,7 @@ use std::fmt;
use std::sync::{Arc, Mutex}; use std::sync::{Arc, Mutex};
use style::properties::ComputedValues; use style::properties::ComputedValues;
use style::servo::url::ComputedUrl; use style::servo::url::ComputedUrl;
use style::values::computed::image::Image as ComputedImage;
use style::values::computed::{Length, LengthOrAuto}; use style::values::computed::{Length, LengthOrAuto};
use style::values::CSSFloat; use style::values::CSSFloat;
use style::Zero; use style::Zero;
@ -184,6 +185,17 @@ impl ReplacedContent {
None None
} }
pub fn from_image<'dom>(
element: impl NodeExt<'dom>,
context: &LayoutContext,
image: &ComputedImage,
) -> Option<Self> {
match image {
ComputedImage::Url(image_url) => Self::from_image_url(element, context, image_url),
_ => None, // TODO
}
}
fn flow_relative_intrinsic_size(&self, style: &ComputedValues) -> Vec2<Option<Length>> { fn flow_relative_intrinsic_size(&self, style: &ComputedValues) -> Vec2<Option<Length>> {
let intrinsic_size = PhysicalSize::new(self.intrinsic.width, self.intrinsic.height); let intrinsic_size = PhysicalSize::new(self.intrinsic.width, self.intrinsic.height);
Vec2::from_physical_size(&intrinsic_size, style.writing_mode) Vec2::from_physical_size(&intrinsic_size, style.writing_mode)