From fe8b23d14a006de5569f967d6d6a78a46d48f367 Mon Sep 17 00:00:00 2001 From: Martin Robinson Date: Thu, 4 Apr 2024 14:35:15 +0200 Subject: [PATCH] layout: Add a `FontMetricsProvider` for resolving font-relative units (#31966) The only font relative unit that Servo knows how to resolve currently is `rem` (relative to the root font size). This is because Stylo cannot do any font queries. This adds a mechanism to allow this, exposing the ability to properly render `ex` units in Servo. This change only allows resolving some font size relative units thoug, as Servo doesn't collect all the FontMetrics it needs to resolve them all. This capability will be added in followup changes. Some new tests fail: - ex-unit-001.html: This test fails because Servo does not yet have support for setting the weight using @font-face rules on web fonts. - ex-unit-004.html: This test fails because Servo does not yet have support for setting the Unicode range of a web font using @font-face rules. - first-available-font-001.html: This test fails because the above two feature are missing. --- Cargo.lock | 26 +++---- components/gfx/font_context.rs | 16 +++-- components/layout_2020/context.rs | 34 ++++++---- components/layout_2020/flow/inline.rs | 11 ++- components/layout_thread/lib.rs | 23 +++++++ components/layout_thread_2020/lib.rs | 68 +++++++++++++++++-- components/script/dom/document.rs | 22 +++--- components/script/dom/htmlimageelement.rs | 15 ++-- components/script/dom/mediaquerylist.rs | 5 +- components/shared/script_layout/lib.rs | 5 ++ tests/unit/style/custom_properties.rs | 21 ++++++ tests/unit/style/stylist.rs | 21 ++++++ .../background-position-001.xht.ini | 2 - .../background-position-002.xht.ini | 2 - .../borders/border-bottom-width-080.xht.ini | 2 - .../borders/border-bottom-width-083.xht.ini | 2 - .../borders/border-bottom-width-084.xht.ini | 2 - .../borders/border-left-width-080.xht.ini | 2 - .../borders/border-left-width-083.xht.ini | 2 - .../borders/border-left-width-084.xht.ini | 2 - .../borders/border-right-width-080.xht.ini | 2 - .../borders/border-right-width-083.xht.ini | 2 - .../borders/border-right-width-084.xht.ini | 2 - .../CSS2/borders/border-top-width-080.xht.ini | 2 - .../CSS2/borders/border-top-width-083.xht.ini | 2 - .../CSS2/borders/border-top-width-084.xht.ini | 2 - .../css/CSS2/css1/c526-font-sz-002.xht.ini | 2 - .../css/CSS2/css1/c541-word-sp-000.xht.ini | 2 - .../css/CSS2/css1/c542-letter-sp-000.xht.ini | 2 - .../css/CSS2/css1/c547-indent-000.xht.ini | 2 - .../meta/css/CSS2/css1/c548-ln-ht-002.xht.ini | 2 - .../meta/css/CSS2/css1/c61-ex-len-000.xht.ini | 2 - .../css/CSS2/css1/c61-rel-len-000.xht.ini | 2 - .../meta/css/CSS2/fonts/font-size-124.xht.ini | 2 - .../css/CSS2/linebox/line-height-080.xht.ini | 2 - .../css/CSS2/linebox/line-height-083.xht.ini | 2 - .../css/CSS2/linebox/line-height-084.xht.ini | 2 - .../CSS2/linebox/vertical-align-091.xht.ini | 2 - .../CSS2/linebox/vertical-align-092.xht.ini | 2 - .../margin-bottom-091.xht.ini | 2 - .../margin-bottom-092.xht.ini | 2 - .../margin-left-091.xht.ini | 2 - .../margin-left-092.xht.ini | 2 - .../margin-right-091.xht.ini | 2 - .../margin-right-092.xht.ini | 2 - .../margin-top-091.xht.ini | 2 - .../margin-top-092.xht.ini | 2 - .../padding-bottom-080.xht.ini | 2 - .../padding-bottom-083.xht.ini | 2 - .../padding-bottom-084.xht.ini | 2 - .../padding-left-080.xht.ini | 2 - .../padding-left-083.xht.ini | 2 - .../padding-left-084.xht.ini | 2 - .../padding-right-080.xht.ini | 2 - .../padding-right-083.xht.ini | 2 - .../padding-right-084.xht.ini | 2 - .../padding-top-080.xht.ini | 2 - .../padding-top-083.xht.ini | 2 - .../padding-top-084.xht.ini | 2 - .../css/CSS2/normal-flow/height-080.xht.ini | 2 - .../css/CSS2/normal-flow/height-083.xht.ini | 2 - .../css/CSS2/normal-flow/height-084.xht.ini | 2 - .../CSS2/normal-flow/max-height-080.xht.ini | 2 - .../CSS2/normal-flow/max-height-083.xht.ini | 2 - .../CSS2/normal-flow/max-height-084.xht.ini | 2 - .../CSS2/normal-flow/max-width-080.xht.ini | 2 - .../CSS2/normal-flow/max-width-083.xht.ini | 2 - .../CSS2/normal-flow/max-width-084.xht.ini | 2 - .../CSS2/normal-flow/min-height-080.xht.ini | 2 - .../CSS2/normal-flow/min-height-083.xht.ini | 2 - .../CSS2/normal-flow/min-height-084.xht.ini | 2 - .../CSS2/normal-flow/min-width-080.xht.ini | 2 - .../CSS2/normal-flow/min-width-083.xht.ini | 2 - .../CSS2/normal-flow/min-width-084.xht.ini | 2 - .../css/CSS2/normal-flow/width-080.xht.ini | 2 - .../css/CSS2/normal-flow/width-083.xht.ini | 2 - .../css/CSS2/normal-flow/width-084.xht.ini | 2 - .../css/CSS2/positioning/bottom-091.xht.ini | 2 - .../css/CSS2/positioning/bottom-092.xht.ini | 2 - .../css/CSS2/positioning/left-091.xht.ini | 2 - .../css/CSS2/positioning/left-092.xht.ini | 2 - .../css/CSS2/positioning/right-091.xht.ini | 2 - .../css/CSS2/positioning/right-092.xht.ini | 2 - .../meta/css/CSS2/positioning/top-091.xht.ini | 2 - .../meta/css/CSS2/positioning/top-092.xht.ini | 2 - .../css/CSS2/values/numbers-units-018.xht.ini | 2 - .../css/CSS2/values/numbers-units-019.xht.ini | 2 - .../meta/css/CSS2/values/units-001.xht.ini | 2 - .../meta/css/CSS2/values/units-002.xht.ini | 2 - .../meta/css/CSS2/values/units-003.xht.ini | 2 - .../meta/css/CSS2/values/units-004.xht.ini | 2 - .../first-available-font-001.html.ini | 2 + .../css/css-values/cap-invalidation.html.ini | 3 - .../meta/css/css-values/cap-unit-001.html.ini | 2 - .../meta/css/css-values/ex-unit-001.html.ini | 2 + .../meta/css/css-values/ex-unit-002.html.ini | 2 - .../meta/css/css-values/ex-unit-003.html.ini | 2 - .../meta/css/css-values/ex-unit-004.html.ini | 2 + 98 files changed, 208 insertions(+), 232 deletions(-) delete mode 100644 tests/wpt/meta/css/CSS2/backgrounds/background-position-001.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/backgrounds/background-position-002.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/borders/border-bottom-width-080.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/borders/border-bottom-width-083.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/borders/border-bottom-width-084.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/borders/border-left-width-080.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/borders/border-left-width-083.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/borders/border-left-width-084.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/borders/border-right-width-080.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/borders/border-right-width-083.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/borders/border-right-width-084.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/borders/border-top-width-080.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/borders/border-top-width-083.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/borders/border-top-width-084.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/css1/c526-font-sz-002.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/css1/c541-word-sp-000.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/css1/c542-letter-sp-000.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/css1/c547-indent-000.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/css1/c548-ln-ht-002.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/css1/c61-ex-len-000.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/css1/c61-rel-len-000.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/fonts/font-size-124.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/linebox/line-height-080.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/linebox/line-height-083.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/linebox/line-height-084.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/linebox/vertical-align-091.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/linebox/vertical-align-092.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/margin-padding-clear/margin-bottom-091.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/margin-padding-clear/margin-bottom-092.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/margin-padding-clear/margin-left-091.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/margin-padding-clear/margin-left-092.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/margin-padding-clear/margin-right-091.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/margin-padding-clear/margin-right-092.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/margin-padding-clear/margin-top-091.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/margin-padding-clear/margin-top-092.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/margin-padding-clear/padding-bottom-080.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/margin-padding-clear/padding-bottom-083.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/margin-padding-clear/padding-bottom-084.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/margin-padding-clear/padding-left-080.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/margin-padding-clear/padding-left-083.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/margin-padding-clear/padding-left-084.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/margin-padding-clear/padding-right-080.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/margin-padding-clear/padding-right-083.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/margin-padding-clear/padding-right-084.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/margin-padding-clear/padding-top-080.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/margin-padding-clear/padding-top-083.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/margin-padding-clear/padding-top-084.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/normal-flow/height-080.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/normal-flow/height-083.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/normal-flow/height-084.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/normal-flow/max-height-080.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/normal-flow/max-height-083.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/normal-flow/max-height-084.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/normal-flow/max-width-080.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/normal-flow/max-width-083.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/normal-flow/max-width-084.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/normal-flow/min-height-080.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/normal-flow/min-height-083.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/normal-flow/min-height-084.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/normal-flow/min-width-080.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/normal-flow/min-width-083.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/normal-flow/min-width-084.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/normal-flow/width-080.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/normal-flow/width-083.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/normal-flow/width-084.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/positioning/bottom-091.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/positioning/bottom-092.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/positioning/left-091.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/positioning/left-092.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/positioning/right-091.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/positioning/right-092.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/positioning/top-091.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/positioning/top-092.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/values/numbers-units-018.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/values/numbers-units-019.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/values/units-001.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/values/units-002.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/values/units-003.xht.ini delete mode 100644 tests/wpt/meta/css/CSS2/values/units-004.xht.ini create mode 100644 tests/wpt/meta/css/css-fonts/first-available-font-001.html.ini delete mode 100644 tests/wpt/meta/css/css-values/cap-invalidation.html.ini delete mode 100644 tests/wpt/meta/css/css-values/cap-unit-001.html.ini create mode 100644 tests/wpt/meta/css/css-values/ex-unit-001.html.ini delete mode 100644 tests/wpt/meta/css/css-values/ex-unit-002.html.ini delete mode 100644 tests/wpt/meta/css/css-values/ex-unit-003.html.ini create mode 100644 tests/wpt/meta/css/css-values/ex-unit-004.html.ini 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