diff --git a/Cargo.lock b/Cargo.lock index f36f6e00407..aea44ff3eaf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1198,7 +1198,7 @@ dependencies = [ [[package]] name = "derive_common" version = "0.0.1" -source = "git+https://github.com/servo/stylo?branch=2023-10-16#c22dd97c7a826c04a8fb18f99fde5921ec2eea82" +source = "git+https://github.com/servo/stylo?branch=2023-10-16#273f49fc586a02ff7601725924d2e30f95cfd9d3" dependencies = [ "darling", "proc-macro2", @@ -3448,7 +3448,7 @@ dependencies = [ [[package]] name = "malloc_size_of" version = "0.0.1" -source = "git+https://github.com/servo/stylo?branch=2023-10-16#c22dd97c7a826c04a8fb18f99fde5921ec2eea82" +source = "git+https://github.com/servo/stylo?branch=2023-10-16#273f49fc586a02ff7601725924d2e30f95cfd9d3" dependencies = [ "accountable-refcell", "app_units", @@ -5061,7 +5061,7 @@ dependencies = [ [[package]] name = "selectors" version = "0.24.0" -source = "git+https://github.com/servo/stylo?branch=2023-10-16#c22dd97c7a826c04a8fb18f99fde5921ec2eea82" +source = "git+https://github.com/servo/stylo?branch=2023-10-16#273f49fc586a02ff7601725924d2e30f95cfd9d3" dependencies = [ "bitflags 2.5.0", "cssparser", @@ -5349,7 +5349,7 @@ dependencies = [ [[package]] name = "servo_arc" version = "0.2.0" -source = "git+https://github.com/servo/stylo?branch=2023-10-16#c22dd97c7a826c04a8fb18f99fde5921ec2eea82" +source = "git+https://github.com/servo/stylo?branch=2023-10-16#273f49fc586a02ff7601725924d2e30f95cfd9d3" dependencies = [ "nodrop", "serde", @@ -5359,7 +5359,7 @@ dependencies = [ [[package]] name = "servo_atoms" version = "0.0.1" -source = "git+https://github.com/servo/stylo?branch=2023-10-16#c22dd97c7a826c04a8fb18f99fde5921ec2eea82" +source = "git+https://github.com/servo/stylo?branch=2023-10-16#273f49fc586a02ff7601725924d2e30f95cfd9d3" dependencies = [ "string_cache", "string_cache_codegen", @@ -5557,7 +5557,7 @@ checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" [[package]] name = "size_of_test" version = "0.0.1" -source = "git+https://github.com/servo/stylo?branch=2023-10-16#c22dd97c7a826c04a8fb18f99fde5921ec2eea82" +source = "git+https://github.com/servo/stylo?branch=2023-10-16#273f49fc586a02ff7601725924d2e30f95cfd9d3" dependencies = [ "static_assertions", ] @@ -5683,7 +5683,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "static_prefs" version = "0.1.0" -source = "git+https://github.com/servo/stylo?branch=2023-10-16#c22dd97c7a826c04a8fb18f99fde5921ec2eea82" +source = "git+https://github.com/servo/stylo?branch=2023-10-16#273f49fc586a02ff7601725924d2e30f95cfd9d3" [[package]] name = "strict-num" @@ -5720,7 +5720,7 @@ dependencies = [ [[package]] name = "style" version = "0.0.1" -source = "git+https://github.com/servo/stylo?branch=2023-10-16#c22dd97c7a826c04a8fb18f99fde5921ec2eea82" +source = "git+https://github.com/servo/stylo?branch=2023-10-16#273f49fc586a02ff7601725924d2e30f95cfd9d3" dependencies = [ "app_units", "arrayvec", @@ -5779,7 +5779,7 @@ dependencies = [ [[package]] name = "style_config" version = "0.0.1" -source = "git+https://github.com/servo/stylo?branch=2023-10-16#c22dd97c7a826c04a8fb18f99fde5921ec2eea82" +source = "git+https://github.com/servo/stylo?branch=2023-10-16#273f49fc586a02ff7601725924d2e30f95cfd9d3" dependencies = [ "lazy_static", ] @@ -5787,7 +5787,7 @@ dependencies = [ [[package]] name = "style_derive" version = "0.0.1" -source = "git+https://github.com/servo/stylo?branch=2023-10-16#c22dd97c7a826c04a8fb18f99fde5921ec2eea82" +source = "git+https://github.com/servo/stylo?branch=2023-10-16#273f49fc586a02ff7601725924d2e30f95cfd9d3" dependencies = [ "darling", "derive_common", @@ -5818,7 +5818,7 @@ dependencies = [ [[package]] name = "style_traits" version = "0.0.1" -source = "git+https://github.com/servo/stylo?branch=2023-10-16#c22dd97c7a826c04a8fb18f99fde5921ec2eea82" +source = "git+https://github.com/servo/stylo?branch=2023-10-16#273f49fc586a02ff7601725924d2e30f95cfd9d3" dependencies = [ "app_units", "bitflags 2.5.0", @@ -6172,7 +6172,7 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "to_shmem" version = "0.0.1" -source = "git+https://github.com/servo/stylo?branch=2023-10-16#c22dd97c7a826c04a8fb18f99fde5921ec2eea82" +source = "git+https://github.com/servo/stylo?branch=2023-10-16#273f49fc586a02ff7601725924d2e30f95cfd9d3" dependencies = [ "cssparser", "servo_arc", @@ -6185,7 +6185,7 @@ dependencies = [ [[package]] name = "to_shmem_derive" version = "0.0.1" -source = "git+https://github.com/servo/stylo?branch=2023-10-16#c22dd97c7a826c04a8fb18f99fde5921ec2eea82" +source = "git+https://github.com/servo/stylo?branch=2023-10-16#273f49fc586a02ff7601725924d2e30f95cfd9d3" dependencies = [ "darling", "derive_common", diff --git a/components/gfx/font_context.rs b/components/gfx/font_context.rs index 7c379f72b26..c7f2eaef530 100644 --- a/components/gfx/font_context.rs +++ b/components/gfx/font_context.rs @@ -93,12 +93,20 @@ impl FontContext { /// Font groups are cached, so subsequent calls with the same `style` will return a reference /// to an existing `FontGroup`. pub fn font_group(&mut self, style: Arc) -> Rc> { + let font_size = style.font_size.computed_size().into(); + self.font_group_with_size(style, font_size) + } + + /// Like [`Self::font_group`], but overriding the size found in the [`FontStyleStruct`] with the given size + /// in pixels. + pub fn font_group_with_size( + &mut self, + style: Arc, + size: Au, + ) -> Rc> { self.expire_font_caches_if_necessary(); - let cache_key = FontGroupCacheKey { - size: Au::from_f32_px(style.font_size.computed_size().px()), - style, - }; + let cache_key = FontGroupCacheKey { size, style }; if let Some(font_group) = self.font_group_cache.get(&cache_key) { return font_group.clone(); diff --git a/components/layout_2020/context.rs b/components/layout_2020/context.rs index ae480e5dd5f..8ffc3386e3e 100644 --- a/components/layout_2020/context.rs +++ b/components/layout_2020/context.rs @@ -12,7 +12,7 @@ use msg::constellation_msg::PipelineId; use net_traits::image_cache::{ ImageCache, ImageCacheResult, ImageOrMetadataAvailable, UsePlaceholder, }; -use parking_lot::RwLock; +use parking_lot::{ReentrantMutex, RwLock}; use script_layout_interface::{PendingImage, PendingImageState}; use servo_url::{ImmutableOrigin, ServoUrl}; use style::context::SharedStyleContext; @@ -20,6 +20,8 @@ use style::dom::OpaqueNode; use crate::display_list::WebRenderImageInfo; +thread_local!(static FONT_CONTEXT: RefCell>> = RefCell::new(None)); + pub struct LayoutContext<'a> { pub id: PipelineId, pub use_rayon: bool, @@ -28,8 +30,8 @@ pub struct LayoutContext<'a> { /// Bits shared by the layout and style system. pub style_context: SharedStyleContext<'a>, - /// Interface to the font cache thread. - pub font_cache_thread: Mutex, + /// A FontContext to be used during layout. + pub font_cache_thread: Arc>, /// Reference to the script thread image cache. pub image_cache: Arc, @@ -131,19 +133,27 @@ impl<'a> LayoutContext<'a> { None | Some(ImageOrMetadataAvailable::MetadataAvailable(_)) => None, } } + + pub fn with_font_context(&self, callback: F) -> R + where + F: FnOnce(&mut FontContext) -> R, + { + with_thread_local_font_context(&self.font_cache_thread, callback) + } } -pub(crate) type LayoutFontContext = FontContext; - -thread_local!(static FONT_CONTEXT: RefCell> = RefCell::new(None)); - -pub(crate) fn with_thread_local_font_context(layout_context: &LayoutContext, f: F) -> R +pub fn with_thread_local_font_context( + font_cache_thread: &ReentrantMutex, + callback: F, +) -> R where - F: FnOnce(&mut LayoutFontContext) -> R, + F: FnOnce(&mut FontContext) -> R, { FONT_CONTEXT.with(|font_context| { - f(font_context.borrow_mut().get_or_insert_with(|| { - FontContext::new(layout_context.font_cache_thread.lock().unwrap().clone()) - })) + callback( + font_context + .borrow_mut() + .get_or_insert_with(|| FontContext::new(font_cache_thread.lock().clone())), + ) }) } diff --git a/components/layout_2020/flow/inline.rs b/components/layout_2020/flow/inline.rs index bf90a9532f6..76dc2fea701 100644 --- a/components/layout_2020/flow/inline.rs +++ b/components/layout_2020/flow/inline.rs @@ -1597,11 +1597,10 @@ impl InlineFormattingContext { // It's unfortunate that it isn't possible to get this during IFC text processing, but in // that situation the style of the containing block is unknown. - let default_font_metrics = - crate::context::with_thread_local_font_context(layout_context, |font_context| { - get_font_for_first_font_for_style(style, font_context) - .map(|font| font.borrow().metrics.clone()) - }); + let default_font_metrics = layout_context.with_font_context(|font_context| { + get_font_for_first_font_for_style(style, font_context) + .map(|font| font.borrow().metrics.clone()) + }); let mut ifc = InlineFormattingContextState { positioning_context, @@ -1725,7 +1724,7 @@ impl InlineFormattingContext { // For the purposes of `text-transform: capitalize` the start of the IFC is a word boundary. let mut on_word_boundary = true; - crate::context::with_thread_local_font_context(layout_context, |font_context| { + layout_context.with_font_context(|font_context| { let mut linebreaker = None; self.foreach(|iter_item| match iter_item { InlineFormattingContextIterItem::Item(InlineLevelBox::TextRun( diff --git a/components/layout_thread/lib.rs b/components/layout_thread/lib.rs index 1ed1db20a91..7fec0013cc2 100644 --- a/components/layout_thread/lib.rs +++ b/components/layout_thread/lib.rs @@ -92,6 +92,7 @@ use style::media_queries::{Device, MediaList, MediaType}; use style::properties::style_structs::Font; use style::properties::PropertyId; use style::selector_parser::{PseudoElement, SnapshotMap}; +use style::servo::media_queries::FontMetricsProvider; use style::servo::restyle_damage::ServoRestyleDamage; use style::shared_lock::{SharedRwLock, SharedRwLockReadGuard, StylesheetGuards}; use style::stylesheets::{ @@ -263,6 +264,10 @@ impl Layout for LayoutThread { self.handle_request(Request::FromFontCache); } + fn device<'a>(&'a self) -> &'a Device { + self.stylist.device() + } + fn waiting_for_web_fonts_to_load(&self) -> bool { self.outstanding_web_fonts.load(Ordering::SeqCst) != 0 } @@ -506,6 +511,7 @@ impl LayoutThread { QuirksMode::NoQuirks, window_size.initial_viewport, window_size.device_pixel_ratio, + Box::new(LayoutFontMetricsProvider), ); // Ask the router to proxy IPC messages from the font cache thread to layout. @@ -1477,6 +1483,7 @@ impl LayoutThread { self.stylist.quirks_mode(), window_size_data.initial_viewport, window_size_data.device_pixel_ratio, + Box::new(LayoutFontMetricsProvider), ); // Preserve any previously computed root font size. @@ -1684,3 +1691,19 @@ impl RegisteredPainters for RegisteredPaintersImpl { .map(|painter| painter as &dyn RegisteredPainter) } } + +#[derive(Debug)] +struct LayoutFontMetricsProvider; + +impl FontMetricsProvider for LayoutFontMetricsProvider { + fn query_font_metrics( + &self, + _vertical: bool, + _font: &Font, + _base_size: style::values::computed::CSSPixelLength, + _in_media_query: bool, + _retrieve_math_scales: bool, + ) -> style::font_metrics::FontMetrics { + Default::default() + } +} diff --git a/components/layout_thread_2020/lib.rs b/components/layout_thread_2020/lib.rs index 9e4a0fe74a5..6e06f87479e 100644 --- a/components/layout_thread_2020/lib.rs +++ b/components/layout_thread_2020/lib.rs @@ -42,7 +42,7 @@ use malloc_size_of::{MallocSizeOf, MallocSizeOfOps}; use metrics::{PaintTimeMetrics, ProfilerMetadataFactory}; use msg::constellation_msg::{BrowsingContextId, PipelineId}; use net_traits::image_cache::{ImageCache, UsePlaceholder}; -use parking_lot::RwLock; +use parking_lot::{ReentrantMutex, RwLock}; use profile_traits::mem::{Report, ReportKind, ReportsChan}; use profile_traits::path; use profile_traits::time::{ @@ -69,14 +69,15 @@ use style::context::{ QuirksMode, RegisteredSpeculativePainter, RegisteredSpeculativePainters, SharedStyleContext, }; use style::dom::{OpaqueNode, TElement, TNode}; -use style::driver; use style::error_reporting::RustLogReporter; +use style::font_metrics::FontMetrics; use style::global_style_data::{GLOBAL_STYLE_DATA, STYLE_THREAD_POOL}; use style::invalidation::element::restyle_hints::RestyleHint; use style::media_queries::{Device, MediaList, MediaType}; use style::properties::style_structs::Font; use style::properties::PropertyId; use style::selector_parser::{PseudoElement, SnapshotMap}; +use style::servo::media_queries::FontMetricsProvider; use style::shared_lock::{SharedRwLock, SharedRwLockReadGuard, StylesheetGuards}; use style::stylesheets::{ DocumentStyleSheet, Origin, Stylesheet, StylesheetInDocument, UrlExtraData, @@ -85,6 +86,8 @@ use style::stylesheets::{ use style::stylist::Stylist; use style::traversal::DomTraversal; use style::traversal_flags::TraversalFlags; +use style::values::computed::CSSPixelLength; +use style::{driver, Zero}; use style_traits::{CSSPixel, DevicePixel, SpeculativePainter}; use url::Url; use webrender_api::units::LayoutPixel; @@ -119,8 +122,9 @@ pub struct LayoutThread { /// Reference to the script thread image cache. image_cache: Arc, - /// Public interface to the font cache thread. - font_cache_thread: FontCacheThread, + /// Public interface to the font cache thread. This needs to be behind a [`ReentrantMutex`], + /// because some font cache operations can trigger others. + font_cache_thread: Arc>, /// Is this the first reflow in this LayoutThread? first_reflow: Cell, @@ -236,6 +240,10 @@ impl Layout for LayoutThread { self.handle_request(Request::FromFontCache); } + fn device<'a>(&'a self) -> &'a Device { + self.stylist.device() + } + fn waiting_for_web_fonts_to_load(&self) -> bool { self.outstanding_web_fonts.load(Ordering::SeqCst) != 0 } @@ -448,11 +456,13 @@ impl LayoutThread { // The device pixel ratio is incorrect (it does not have the hidpi value), // but it will be set correctly when the initial reflow takes place. + let font_cache_thread = Arc::new(ReentrantMutex::new(font_cache_thread)); let device = Device::new( MediaType::screen(), QuirksMode::NoQuirks, window_size.initial_viewport, window_size.device_pixel_ratio, + Box::new(LayoutFontMetricsProvider(font_cache_thread.clone())), ); // Ask the router to proxy IPC messages from the font cache thread to layout. @@ -546,7 +556,7 @@ impl LayoutThread { traversal_flags, ), image_cache: self.image_cache.clone(), - font_cache_thread: Mutex::new(self.font_cache_thread.clone()), + font_cache_thread: self.font_cache_thread.clone(), webrender_image_cache: self.webrender_image_cache.clone(), pending_images: Mutex::new(vec![]), use_rayon, @@ -629,8 +639,10 @@ impl LayoutThread { // Find all font-face rules and notify the font cache of them. // GWTODO: Need to handle unloading web fonts. if stylesheet.is_effective_for_device(self.stylist.device(), &guard) { - let newly_loading_font_count = - self.font_cache_thread.add_all_web_fonts_from_stylesheet( + let newly_loading_font_count = self + .font_cache_thread + .lock() + .add_all_web_fonts_from_stylesheet( &*stylesheet, &guard, self.stylist.device(), @@ -1092,6 +1104,7 @@ impl LayoutThread { self.stylist.quirks_mode(), window_size_data.initial_viewport, window_size_data.device_pixel_ratio, + Box::new(LayoutFontMetricsProvider(self.font_cache_thread.clone())), ); // Preserve any previously computed root font size. @@ -1248,3 +1261,44 @@ impl RegisteredSpeculativePainters for RegisteredPaintersImpl { .map(|painter| painter as &dyn RegisteredSpeculativePainter) } } + +#[derive(Debug)] +struct LayoutFontMetricsProvider(Arc>); + +impl FontMetricsProvider for LayoutFontMetricsProvider { + fn query_font_metrics( + &self, + _vertical: bool, + font: &Font, + base_size: CSSPixelLength, + _in_media_query: bool, + _retrieve_math_scales: bool, + ) -> FontMetrics { + layout::context::with_thread_local_font_context(&self.0, move |font_context| { + let Some(servo_metrics) = font_context + .font_group_with_size(ServoArc::new(font.clone()), base_size.into()) + .borrow_mut() + .first(font_context) + .map(|font| font.borrow().metrics.clone()) + else { + return Default::default(); + }; + + // Only use the x-height of this font if it is non-zero. Some fonts return + // inaccurate metrics, which shouldn't be used. + let x_height = Some(servo_metrics.x_height) + .filter(|x_height| !x_height.is_zero()) + .map(CSSPixelLength::from); + + FontMetrics { + x_height, + zero_advance_measure: None, + cap_height: None, + ic_width: None, + ascent: servo_metrics.ascent.into(), + script_percent_scale_down: None, + script_script_percent_scale_down: None, + } + }) + } +} diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index dd16ae22ae0..dbf0c3b3381 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -58,7 +58,7 @@ use servo_url::{ImmutableOrigin, MutableOrigin, ServoUrl}; use style::attr::AttrValue; use style::context::QuirksMode; use style::invalidation::element::restyle_hints::RestyleHint; -use style::media_queries::{Device, MediaType}; +use style::media_queries::Device; use style::selector_parser::Snapshot; use style::shared_lock::SharedRwLock as StyleSharedRwLock; use style::str::{split_html_space_chars, str_join}; @@ -3476,20 +3476,14 @@ impl Document { have_changed } - /// Returns a `Device` suitable for media query evaluation. + /// Runs the given closure using the Stylo `Device` suitable for media query evaluation. /// - /// FIXME(emilio): This really needs to be somehow more in sync with layout. - /// Feels like a hack. - pub fn device(&self) -> Device { - let window_size = self.window().window_size(); - let viewport_size = window_size.initial_viewport; - let device_pixel_ratio = window_size.device_pixel_ratio; - Device::new( - MediaType::screen(), - self.quirks_mode(), - viewport_size, - device_pixel_ratio, - ) + /// TODO: This can just become a getter when each Layout is more strongly associated with + /// its given Document and Window. + pub fn with_device(&self, call: impl FnOnce(&Device) -> T) -> T { + self.window + .with_layout(move |layout| call(layout.device())) + .unwrap() } pub fn salvageable(&self) -> bool { diff --git a/components/script/dom/htmlimageelement.rs b/components/script/dom/htmlimageelement.rs index 536a4ee608d..90a4a981710 100644 --- a/components/script/dom/htmlimageelement.rs +++ b/components/script/dom/htmlimageelement.rs @@ -669,10 +669,8 @@ impl HTMLImageElement { _width: Option, ) -> Au { let document = document_from_node(self); - let device = document.device(); let quirks_mode = document.quirks_mode(); - //FIXME https://github.com/whatwg/html/issues/3832 - source_size_list.evaluate(&device, quirks_mode) + document.with_device(move |device| source_size_list.evaluate(device, quirks_mode)) } /// @@ -698,7 +696,7 @@ impl HTMLImageElement { let mut parserInput = ParserInput::new(&media_query); let mut parser = Parser::new(&mut parserInput); let media_list = MediaList::parse(&context, &mut parser); - media_list.evaluate(&document.device(), quirks_mode) + document.with_device(move |device| media_list.evaluate(device, quirks_mode)) } /// @@ -769,11 +767,14 @@ impl HTMLImageElement { // Step 5 let mut best_candidate = max; - let device = document_from_node(self).device(); - let device_den = device.device_pixel_ratio().get() as f64; + let device_pixel_ratio = document_from_node(self) + .window() + .window_size() + .device_pixel_ratio + .get() as f64; for (index, image_source) in img_sources.iter().enumerate() { let current_den = image_source.descriptor.den.unwrap(); - if current_den < best_candidate.0 && current_den >= device_den { + if current_den < best_candidate.0 && current_den >= device_pixel_ratio { best_candidate = (current_den, index); } } diff --git a/components/script/dom/mediaquerylist.rs b/components/script/dom/mediaquerylist.rs index 18c2c4a7d3d..685e66f0390 100644 --- a/components/script/dom/mediaquerylist.rs +++ b/components/script/dom/mediaquerylist.rs @@ -72,8 +72,9 @@ impl MediaQueryList { } pub fn evaluate(&self) -> bool { - self.media_query_list - .evaluate(&self.document.device(), self.document.quirks_mode()) + let quirks_mode = self.document.quirks_mode(); + self.document + .with_device(move |device| self.media_query_list.evaluate(device, quirks_mode)) } } diff --git a/components/shared/script_layout/lib.rs b/components/shared/script_layout/lib.rs index a09e0fcf1aa..3279f993820 100644 --- a/components/shared/script_layout/lib.rs +++ b/components/shared/script_layout/lib.rs @@ -40,6 +40,7 @@ use servo_url::{ImmutableOrigin, ServoUrl}; use style::animation::DocumentAnimationSet; use style::data::ElementData; use style::dom::OpaqueNode; +use style::media_queries::Device; use style::properties::style_structs::Font; use style::properties::PropertyId; use style::selector_parser::PseudoElement; @@ -179,6 +180,10 @@ pub trait Layout { /// Handle a a single mesasge from the FontCacheThread. fn handle_font_cache_msg(&mut self); + /// Get a reference to this Layout's Stylo `Device` used to handle media queries and + /// resolve font metrics. + fn device<'a>(&'a self) -> &'a Device; + /// Whether or not this layout is waiting for fonts from loaded stylesheets to finish loading. fn waiting_for_web_fonts_to_load(&self) -> bool; diff --git a/tests/unit/style/custom_properties.rs b/tests/unit/style/custom_properties.rs index f1c62210218..1cf0b62c028 100644 --- a/tests/unit/style/custom_properties.rs +++ b/tests/unit/style/custom_properties.rs @@ -9,13 +9,33 @@ use style::context::QuirksMode; use style::custom_properties::{ ComputedCustomProperties, CustomPropertiesBuilder, Name, SpecifiedValue, }; +use style::font_metrics::FontMetrics; use style::media_queries::{Device, MediaType}; +use style::properties::style_structs::Font; use style::properties::{CustomDeclaration, CustomDeclarationValue}; use style::rule_tree::CascadeLevel; +use style::servo::media_queries::FontMetricsProvider; use style::stylesheets::layer_rule::LayerOrder; use style::stylist::Stylist; +use style::values::computed::Length; use test::{self, Bencher}; +#[derive(Debug)] +struct DummyMetricsProvider; + +impl FontMetricsProvider for DummyMetricsProvider { + fn query_font_metrics( + &self, + _vertical: bool, + _font: &Font, + _base_size: Length, + _in_media_query: bool, + _retrieve_math_scales: bool, + ) -> FontMetrics { + Default::default() + } +} + fn cascade( name_and_value: &[(&str, &str)], inherited: &ComputedCustomProperties, @@ -36,6 +56,7 @@ fn cascade( QuirksMode::NoQuirks, Size2D::new(800., 600.), Scale::new(1.0), + Box::new(DummyMetricsProvider), ); let stylist = Stylist::new(device, QuirksMode::NoQuirks); let mut builder = CustomPropertiesBuilder::new(inherited, &stylist, false); diff --git a/tests/unit/style/stylist.rs b/tests/unit/style/stylist.rs index a1f2701411d..a6be5c5fe77 100644 --- a/tests/unit/style/stylist.rs +++ b/tests/unit/style/stylist.rs @@ -8,18 +8,38 @@ use selectors::parser::{AncestorHashes, Selector}; use servo_arc::Arc; use servo_atoms::Atom; use style::context::QuirksMode; +use style::font_metrics::FontMetrics; use style::media_queries::{Device, MediaType}; +use style::properties::style_structs::Font; use style::properties::{longhands, Importance, PropertyDeclaration, PropertyDeclarationBlock}; use style::selector_map::SelectorMap; use style::selector_parser::{SelectorImpl, SelectorParser}; +use style::servo::media_queries::FontMetricsProvider; use style::shared_lock::SharedRwLock; use style::stylesheets::StyleRule; use style::stylist::{ needs_revalidation_for_testing, ContainerConditionId, LayerId, Rule, Stylist, }; use style::thread_state::{self, ThreadState}; +use style::values::computed::Length; use url::Url; +#[derive(Debug)] +struct DummyMetricsProvider; + +impl FontMetricsProvider for DummyMetricsProvider { + fn query_font_metrics( + &self, + _vertical: bool, + _font: &Font, + _base_size: Length, + _in_media_query: bool, + _retrieve_math_scales: bool, + ) -> FontMetrics { + Default::default() + } +} + /// Helper method to get some Rules from selector strings. /// Each sublist of the result contains the Rules for one StyleRule. fn get_mock_rules(css_selectors: &[&str]) -> (Vec>, SharedRwLock) { @@ -223,6 +243,7 @@ fn mock_stylist() -> Stylist { QuirksMode::NoQuirks, Size2D::new(0f32, 0f32), Scale::new(1.0), + Box::new(DummyMetricsProvider), ); Stylist::new(device, QuirksMode::NoQuirks) } diff --git a/tests/wpt/meta/css/CSS2/backgrounds/background-position-001.xht.ini b/tests/wpt/meta/css/CSS2/backgrounds/background-position-001.xht.ini deleted file mode 100644 index 9a4543af8a1..00000000000 --- a/tests/wpt/meta/css/CSS2/backgrounds/background-position-001.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[background-position-001.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/backgrounds/background-position-002.xht.ini b/tests/wpt/meta/css/CSS2/backgrounds/background-position-002.xht.ini deleted file mode 100644 index c582c1e3979..00000000000 --- a/tests/wpt/meta/css/CSS2/backgrounds/background-position-002.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[background-position-002.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/borders/border-bottom-width-080.xht.ini b/tests/wpt/meta/css/CSS2/borders/border-bottom-width-080.xht.ini deleted file mode 100644 index a8f4fb682b3..00000000000 --- a/tests/wpt/meta/css/CSS2/borders/border-bottom-width-080.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[border-bottom-width-080.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/borders/border-bottom-width-083.xht.ini b/tests/wpt/meta/css/CSS2/borders/border-bottom-width-083.xht.ini deleted file mode 100644 index 499efd43b6a..00000000000 --- a/tests/wpt/meta/css/CSS2/borders/border-bottom-width-083.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[border-bottom-width-083.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/borders/border-bottom-width-084.xht.ini b/tests/wpt/meta/css/CSS2/borders/border-bottom-width-084.xht.ini deleted file mode 100644 index 2d001e1a0bd..00000000000 --- a/tests/wpt/meta/css/CSS2/borders/border-bottom-width-084.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[border-bottom-width-084.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/borders/border-left-width-080.xht.ini b/tests/wpt/meta/css/CSS2/borders/border-left-width-080.xht.ini deleted file mode 100644 index c39d62d273e..00000000000 --- a/tests/wpt/meta/css/CSS2/borders/border-left-width-080.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[border-left-width-080.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/borders/border-left-width-083.xht.ini b/tests/wpt/meta/css/CSS2/borders/border-left-width-083.xht.ini deleted file mode 100644 index ac4c4d16841..00000000000 --- a/tests/wpt/meta/css/CSS2/borders/border-left-width-083.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[border-left-width-083.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/borders/border-left-width-084.xht.ini b/tests/wpt/meta/css/CSS2/borders/border-left-width-084.xht.ini deleted file mode 100644 index b99627d307f..00000000000 --- a/tests/wpt/meta/css/CSS2/borders/border-left-width-084.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[border-left-width-084.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/borders/border-right-width-080.xht.ini b/tests/wpt/meta/css/CSS2/borders/border-right-width-080.xht.ini deleted file mode 100644 index fd044d0f6f3..00000000000 --- a/tests/wpt/meta/css/CSS2/borders/border-right-width-080.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[border-right-width-080.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/borders/border-right-width-083.xht.ini b/tests/wpt/meta/css/CSS2/borders/border-right-width-083.xht.ini deleted file mode 100644 index 03433caa554..00000000000 --- a/tests/wpt/meta/css/CSS2/borders/border-right-width-083.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[border-right-width-083.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/borders/border-right-width-084.xht.ini b/tests/wpt/meta/css/CSS2/borders/border-right-width-084.xht.ini deleted file mode 100644 index 4b6e7fc2f15..00000000000 --- a/tests/wpt/meta/css/CSS2/borders/border-right-width-084.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[border-right-width-084.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/borders/border-top-width-080.xht.ini b/tests/wpt/meta/css/CSS2/borders/border-top-width-080.xht.ini deleted file mode 100644 index 3e233ebf2c9..00000000000 --- a/tests/wpt/meta/css/CSS2/borders/border-top-width-080.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[border-top-width-080.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/borders/border-top-width-083.xht.ini b/tests/wpt/meta/css/CSS2/borders/border-top-width-083.xht.ini deleted file mode 100644 index e70c26c98c7..00000000000 --- a/tests/wpt/meta/css/CSS2/borders/border-top-width-083.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[border-top-width-083.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/borders/border-top-width-084.xht.ini b/tests/wpt/meta/css/CSS2/borders/border-top-width-084.xht.ini deleted file mode 100644 index b225776080c..00000000000 --- a/tests/wpt/meta/css/CSS2/borders/border-top-width-084.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[border-top-width-084.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/css1/c526-font-sz-002.xht.ini b/tests/wpt/meta/css/CSS2/css1/c526-font-sz-002.xht.ini deleted file mode 100644 index a76da75e88d..00000000000 --- a/tests/wpt/meta/css/CSS2/css1/c526-font-sz-002.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[c526-font-sz-002.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/css1/c541-word-sp-000.xht.ini b/tests/wpt/meta/css/CSS2/css1/c541-word-sp-000.xht.ini deleted file mode 100644 index 06355b1cd98..00000000000 --- a/tests/wpt/meta/css/CSS2/css1/c541-word-sp-000.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[c541-word-sp-000.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/css1/c542-letter-sp-000.xht.ini b/tests/wpt/meta/css/CSS2/css1/c542-letter-sp-000.xht.ini deleted file mode 100644 index 85b5482725f..00000000000 --- a/tests/wpt/meta/css/CSS2/css1/c542-letter-sp-000.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[c542-letter-sp-000.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/css1/c547-indent-000.xht.ini b/tests/wpt/meta/css/CSS2/css1/c547-indent-000.xht.ini deleted file mode 100644 index 90c0d634795..00000000000 --- a/tests/wpt/meta/css/CSS2/css1/c547-indent-000.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[c547-indent-000.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/css1/c548-ln-ht-002.xht.ini b/tests/wpt/meta/css/CSS2/css1/c548-ln-ht-002.xht.ini deleted file mode 100644 index f6b5174c57b..00000000000 --- a/tests/wpt/meta/css/CSS2/css1/c548-ln-ht-002.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[c548-ln-ht-002.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/css1/c61-ex-len-000.xht.ini b/tests/wpt/meta/css/CSS2/css1/c61-ex-len-000.xht.ini deleted file mode 100644 index 2d803c855fa..00000000000 --- a/tests/wpt/meta/css/CSS2/css1/c61-ex-len-000.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[c61-ex-len-000.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/css1/c61-rel-len-000.xht.ini b/tests/wpt/meta/css/CSS2/css1/c61-rel-len-000.xht.ini deleted file mode 100644 index d14b23c5a52..00000000000 --- a/tests/wpt/meta/css/CSS2/css1/c61-rel-len-000.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[c61-rel-len-000.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/fonts/font-size-124.xht.ini b/tests/wpt/meta/css/CSS2/fonts/font-size-124.xht.ini deleted file mode 100644 index 77bca2b8835..00000000000 --- a/tests/wpt/meta/css/CSS2/fonts/font-size-124.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[font-size-124.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/linebox/line-height-080.xht.ini b/tests/wpt/meta/css/CSS2/linebox/line-height-080.xht.ini deleted file mode 100644 index 5b529a90290..00000000000 --- a/tests/wpt/meta/css/CSS2/linebox/line-height-080.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[line-height-080.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/linebox/line-height-083.xht.ini b/tests/wpt/meta/css/CSS2/linebox/line-height-083.xht.ini deleted file mode 100644 index 517e54996bb..00000000000 --- a/tests/wpt/meta/css/CSS2/linebox/line-height-083.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[line-height-083.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/linebox/line-height-084.xht.ini b/tests/wpt/meta/css/CSS2/linebox/line-height-084.xht.ini deleted file mode 100644 index 51d62b98c5c..00000000000 --- a/tests/wpt/meta/css/CSS2/linebox/line-height-084.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[line-height-084.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/linebox/vertical-align-091.xht.ini b/tests/wpt/meta/css/CSS2/linebox/vertical-align-091.xht.ini deleted file mode 100644 index 6b7e6c35b6f..00000000000 --- a/tests/wpt/meta/css/CSS2/linebox/vertical-align-091.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[vertical-align-091.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/linebox/vertical-align-092.xht.ini b/tests/wpt/meta/css/CSS2/linebox/vertical-align-092.xht.ini deleted file mode 100644 index 428934b84e7..00000000000 --- a/tests/wpt/meta/css/CSS2/linebox/vertical-align-092.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[vertical-align-092.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/margin-padding-clear/margin-bottom-091.xht.ini b/tests/wpt/meta/css/CSS2/margin-padding-clear/margin-bottom-091.xht.ini deleted file mode 100644 index 1e537ef8fd4..00000000000 --- a/tests/wpt/meta/css/CSS2/margin-padding-clear/margin-bottom-091.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[margin-bottom-091.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/margin-padding-clear/margin-bottom-092.xht.ini b/tests/wpt/meta/css/CSS2/margin-padding-clear/margin-bottom-092.xht.ini deleted file mode 100644 index dbed7a6477b..00000000000 --- a/tests/wpt/meta/css/CSS2/margin-padding-clear/margin-bottom-092.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[margin-bottom-092.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/margin-padding-clear/margin-left-091.xht.ini b/tests/wpt/meta/css/CSS2/margin-padding-clear/margin-left-091.xht.ini deleted file mode 100644 index c16d020993b..00000000000 --- a/tests/wpt/meta/css/CSS2/margin-padding-clear/margin-left-091.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[margin-left-091.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/margin-padding-clear/margin-left-092.xht.ini b/tests/wpt/meta/css/CSS2/margin-padding-clear/margin-left-092.xht.ini deleted file mode 100644 index 46878856d89..00000000000 --- a/tests/wpt/meta/css/CSS2/margin-padding-clear/margin-left-092.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[margin-left-092.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/margin-padding-clear/margin-right-091.xht.ini b/tests/wpt/meta/css/CSS2/margin-padding-clear/margin-right-091.xht.ini deleted file mode 100644 index 231beff30b6..00000000000 --- a/tests/wpt/meta/css/CSS2/margin-padding-clear/margin-right-091.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[margin-right-091.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/margin-padding-clear/margin-right-092.xht.ini b/tests/wpt/meta/css/CSS2/margin-padding-clear/margin-right-092.xht.ini deleted file mode 100644 index 11532c1db95..00000000000 --- a/tests/wpt/meta/css/CSS2/margin-padding-clear/margin-right-092.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[margin-right-092.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/margin-padding-clear/margin-top-091.xht.ini b/tests/wpt/meta/css/CSS2/margin-padding-clear/margin-top-091.xht.ini deleted file mode 100644 index d8aade0b259..00000000000 --- a/tests/wpt/meta/css/CSS2/margin-padding-clear/margin-top-091.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[margin-top-091.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/margin-padding-clear/margin-top-092.xht.ini b/tests/wpt/meta/css/CSS2/margin-padding-clear/margin-top-092.xht.ini deleted file mode 100644 index c781f48f04c..00000000000 --- a/tests/wpt/meta/css/CSS2/margin-padding-clear/margin-top-092.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[margin-top-092.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-bottom-080.xht.ini b/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-bottom-080.xht.ini deleted file mode 100644 index 3daf153f463..00000000000 --- a/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-bottom-080.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[padding-bottom-080.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-bottom-083.xht.ini b/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-bottom-083.xht.ini deleted file mode 100644 index 778188b1571..00000000000 --- a/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-bottom-083.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[padding-bottom-083.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-bottom-084.xht.ini b/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-bottom-084.xht.ini deleted file mode 100644 index d782803602b..00000000000 --- a/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-bottom-084.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[padding-bottom-084.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-left-080.xht.ini b/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-left-080.xht.ini deleted file mode 100644 index 93913daabe6..00000000000 --- a/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-left-080.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[padding-left-080.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-left-083.xht.ini b/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-left-083.xht.ini deleted file mode 100644 index 098beeb1db6..00000000000 --- a/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-left-083.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[padding-left-083.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-left-084.xht.ini b/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-left-084.xht.ini deleted file mode 100644 index da08fdf0727..00000000000 --- a/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-left-084.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[padding-left-084.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-right-080.xht.ini b/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-right-080.xht.ini deleted file mode 100644 index a6200506cda..00000000000 --- a/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-right-080.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[padding-right-080.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-right-083.xht.ini b/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-right-083.xht.ini deleted file mode 100644 index f63c477b342..00000000000 --- a/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-right-083.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[padding-right-083.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-right-084.xht.ini b/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-right-084.xht.ini deleted file mode 100644 index 20edc83f200..00000000000 --- a/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-right-084.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[padding-right-084.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-top-080.xht.ini b/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-top-080.xht.ini deleted file mode 100644 index 759cfe7040b..00000000000 --- a/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-top-080.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[padding-top-080.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-top-083.xht.ini b/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-top-083.xht.ini deleted file mode 100644 index 9fa74751a3e..00000000000 --- a/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-top-083.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[padding-top-083.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-top-084.xht.ini b/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-top-084.xht.ini deleted file mode 100644 index b384dd719ec..00000000000 --- a/tests/wpt/meta/css/CSS2/margin-padding-clear/padding-top-084.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[padding-top-084.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/normal-flow/height-080.xht.ini b/tests/wpt/meta/css/CSS2/normal-flow/height-080.xht.ini deleted file mode 100644 index 9cd3c2d1df3..00000000000 --- a/tests/wpt/meta/css/CSS2/normal-flow/height-080.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[height-080.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/normal-flow/height-083.xht.ini b/tests/wpt/meta/css/CSS2/normal-flow/height-083.xht.ini deleted file mode 100644 index abe4bad2417..00000000000 --- a/tests/wpt/meta/css/CSS2/normal-flow/height-083.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[height-083.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/normal-flow/height-084.xht.ini b/tests/wpt/meta/css/CSS2/normal-flow/height-084.xht.ini deleted file mode 100644 index eb236539a8d..00000000000 --- a/tests/wpt/meta/css/CSS2/normal-flow/height-084.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[height-084.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/normal-flow/max-height-080.xht.ini b/tests/wpt/meta/css/CSS2/normal-flow/max-height-080.xht.ini deleted file mode 100644 index 351db055b7e..00000000000 --- a/tests/wpt/meta/css/CSS2/normal-flow/max-height-080.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[max-height-080.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/normal-flow/max-height-083.xht.ini b/tests/wpt/meta/css/CSS2/normal-flow/max-height-083.xht.ini deleted file mode 100644 index 06624227561..00000000000 --- a/tests/wpt/meta/css/CSS2/normal-flow/max-height-083.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[max-height-083.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/normal-flow/max-height-084.xht.ini b/tests/wpt/meta/css/CSS2/normal-flow/max-height-084.xht.ini deleted file mode 100644 index 0ddf4d68820..00000000000 --- a/tests/wpt/meta/css/CSS2/normal-flow/max-height-084.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[max-height-084.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/normal-flow/max-width-080.xht.ini b/tests/wpt/meta/css/CSS2/normal-flow/max-width-080.xht.ini deleted file mode 100644 index bcd0b2f51b5..00000000000 --- a/tests/wpt/meta/css/CSS2/normal-flow/max-width-080.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[max-width-080.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/normal-flow/max-width-083.xht.ini b/tests/wpt/meta/css/CSS2/normal-flow/max-width-083.xht.ini deleted file mode 100644 index 6e8aa1fd7be..00000000000 --- a/tests/wpt/meta/css/CSS2/normal-flow/max-width-083.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[max-width-083.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/normal-flow/max-width-084.xht.ini b/tests/wpt/meta/css/CSS2/normal-flow/max-width-084.xht.ini deleted file mode 100644 index 74776d945a1..00000000000 --- a/tests/wpt/meta/css/CSS2/normal-flow/max-width-084.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[max-width-084.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/normal-flow/min-height-080.xht.ini b/tests/wpt/meta/css/CSS2/normal-flow/min-height-080.xht.ini deleted file mode 100644 index 67becbac15b..00000000000 --- a/tests/wpt/meta/css/CSS2/normal-flow/min-height-080.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[min-height-080.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/normal-flow/min-height-083.xht.ini b/tests/wpt/meta/css/CSS2/normal-flow/min-height-083.xht.ini deleted file mode 100644 index 39f24aa0cb7..00000000000 --- a/tests/wpt/meta/css/CSS2/normal-flow/min-height-083.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[min-height-083.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/normal-flow/min-height-084.xht.ini b/tests/wpt/meta/css/CSS2/normal-flow/min-height-084.xht.ini deleted file mode 100644 index 07a25410827..00000000000 --- a/tests/wpt/meta/css/CSS2/normal-flow/min-height-084.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[min-height-084.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/normal-flow/min-width-080.xht.ini b/tests/wpt/meta/css/CSS2/normal-flow/min-width-080.xht.ini deleted file mode 100644 index db7e60f5e64..00000000000 --- a/tests/wpt/meta/css/CSS2/normal-flow/min-width-080.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[min-width-080.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/normal-flow/min-width-083.xht.ini b/tests/wpt/meta/css/CSS2/normal-flow/min-width-083.xht.ini deleted file mode 100644 index f9bd03e83fb..00000000000 --- a/tests/wpt/meta/css/CSS2/normal-flow/min-width-083.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[min-width-083.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/normal-flow/min-width-084.xht.ini b/tests/wpt/meta/css/CSS2/normal-flow/min-width-084.xht.ini deleted file mode 100644 index a39591e1fc0..00000000000 --- a/tests/wpt/meta/css/CSS2/normal-flow/min-width-084.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[min-width-084.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/normal-flow/width-080.xht.ini b/tests/wpt/meta/css/CSS2/normal-flow/width-080.xht.ini deleted file mode 100644 index ad2c053dc75..00000000000 --- a/tests/wpt/meta/css/CSS2/normal-flow/width-080.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[width-080.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/normal-flow/width-083.xht.ini b/tests/wpt/meta/css/CSS2/normal-flow/width-083.xht.ini deleted file mode 100644 index b007cc26285..00000000000 --- a/tests/wpt/meta/css/CSS2/normal-flow/width-083.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[width-083.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/normal-flow/width-084.xht.ini b/tests/wpt/meta/css/CSS2/normal-flow/width-084.xht.ini deleted file mode 100644 index 3434e4cbbfc..00000000000 --- a/tests/wpt/meta/css/CSS2/normal-flow/width-084.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[width-084.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/positioning/bottom-091.xht.ini b/tests/wpt/meta/css/CSS2/positioning/bottom-091.xht.ini deleted file mode 100644 index 5569cb72a46..00000000000 --- a/tests/wpt/meta/css/CSS2/positioning/bottom-091.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[bottom-091.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/positioning/bottom-092.xht.ini b/tests/wpt/meta/css/CSS2/positioning/bottom-092.xht.ini deleted file mode 100644 index 295ff899394..00000000000 --- a/tests/wpt/meta/css/CSS2/positioning/bottom-092.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[bottom-092.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/positioning/left-091.xht.ini b/tests/wpt/meta/css/CSS2/positioning/left-091.xht.ini deleted file mode 100644 index 68db091bb5d..00000000000 --- a/tests/wpt/meta/css/CSS2/positioning/left-091.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[left-091.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/positioning/left-092.xht.ini b/tests/wpt/meta/css/CSS2/positioning/left-092.xht.ini deleted file mode 100644 index 99f8b469475..00000000000 --- a/tests/wpt/meta/css/CSS2/positioning/left-092.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[left-092.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/positioning/right-091.xht.ini b/tests/wpt/meta/css/CSS2/positioning/right-091.xht.ini deleted file mode 100644 index 428d03e4a57..00000000000 --- a/tests/wpt/meta/css/CSS2/positioning/right-091.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[right-091.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/positioning/right-092.xht.ini b/tests/wpt/meta/css/CSS2/positioning/right-092.xht.ini deleted file mode 100644 index bff7d29bcb9..00000000000 --- a/tests/wpt/meta/css/CSS2/positioning/right-092.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[right-092.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/positioning/top-091.xht.ini b/tests/wpt/meta/css/CSS2/positioning/top-091.xht.ini deleted file mode 100644 index 4142dfb38f3..00000000000 --- a/tests/wpt/meta/css/CSS2/positioning/top-091.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[top-091.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/positioning/top-092.xht.ini b/tests/wpt/meta/css/CSS2/positioning/top-092.xht.ini deleted file mode 100644 index 6c707330958..00000000000 --- a/tests/wpt/meta/css/CSS2/positioning/top-092.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[top-092.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/values/numbers-units-018.xht.ini b/tests/wpt/meta/css/CSS2/values/numbers-units-018.xht.ini deleted file mode 100644 index c689beea37c..00000000000 --- a/tests/wpt/meta/css/CSS2/values/numbers-units-018.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[numbers-units-018.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/values/numbers-units-019.xht.ini b/tests/wpt/meta/css/CSS2/values/numbers-units-019.xht.ini deleted file mode 100644 index 8dea9768544..00000000000 --- a/tests/wpt/meta/css/CSS2/values/numbers-units-019.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[numbers-units-019.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/values/units-001.xht.ini b/tests/wpt/meta/css/CSS2/values/units-001.xht.ini deleted file mode 100644 index 22362824980..00000000000 --- a/tests/wpt/meta/css/CSS2/values/units-001.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[units-001.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/values/units-002.xht.ini b/tests/wpt/meta/css/CSS2/values/units-002.xht.ini deleted file mode 100644 index 17c17365095..00000000000 --- a/tests/wpt/meta/css/CSS2/values/units-002.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[units-002.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/values/units-003.xht.ini b/tests/wpt/meta/css/CSS2/values/units-003.xht.ini deleted file mode 100644 index c7a695cb3c6..00000000000 --- a/tests/wpt/meta/css/CSS2/values/units-003.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[units-003.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/values/units-004.xht.ini b/tests/wpt/meta/css/CSS2/values/units-004.xht.ini deleted file mode 100644 index e681ef86863..00000000000 --- a/tests/wpt/meta/css/CSS2/values/units-004.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[units-004.xht] - expected: FAIL diff --git a/tests/wpt/meta/css/css-fonts/first-available-font-001.html.ini b/tests/wpt/meta/css/css-fonts/first-available-font-001.html.ini new file mode 100644 index 00000000000..41157d704e3 --- /dev/null +++ b/tests/wpt/meta/css/css-fonts/first-available-font-001.html.ini @@ -0,0 +1,2 @@ +[first-available-font-001.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-values/cap-invalidation.html.ini b/tests/wpt/meta/css/css-values/cap-invalidation.html.ini deleted file mode 100644 index fe359e79ece..00000000000 --- a/tests/wpt/meta/css/css-values/cap-invalidation.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[cap-invalidation.html] - [CSS Values and Units Test: cap invalidation] - expected: FAIL diff --git a/tests/wpt/meta/css/css-values/cap-unit-001.html.ini b/tests/wpt/meta/css/css-values/cap-unit-001.html.ini deleted file mode 100644 index 3acdfcbb0cf..00000000000 --- a/tests/wpt/meta/css/css-values/cap-unit-001.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[cap-unit-001.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-values/ex-unit-001.html.ini b/tests/wpt/meta/css/css-values/ex-unit-001.html.ini new file mode 100644 index 00000000000..8d58f6b9a91 --- /dev/null +++ b/tests/wpt/meta/css/css-values/ex-unit-001.html.ini @@ -0,0 +1,2 @@ +[ex-unit-001.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-values/ex-unit-002.html.ini b/tests/wpt/meta/css/css-values/ex-unit-002.html.ini deleted file mode 100644 index 570b68a0668..00000000000 --- a/tests/wpt/meta/css/css-values/ex-unit-002.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[ex-unit-002.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-values/ex-unit-003.html.ini b/tests/wpt/meta/css/css-values/ex-unit-003.html.ini deleted file mode 100644 index 86d8c8c05b4..00000000000 --- a/tests/wpt/meta/css/css-values/ex-unit-003.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[ex-unit-003.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-values/ex-unit-004.html.ini b/tests/wpt/meta/css/css-values/ex-unit-004.html.ini new file mode 100644 index 00000000000..8413546e68a --- /dev/null +++ b/tests/wpt/meta/css/css-values/ex-unit-004.html.ini @@ -0,0 +1,2 @@ +[ex-unit-004.html] + expected: FAIL